mirror of
https://github.com/jwetzell/artnet-go.git
synced 2026-07-26 10:28:41 +00:00
rework byte array calculation in marshal functions
This commit is contained in:
+1
-1
@@ -127,7 +127,7 @@ func (aa *ArtAddress) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (aa *ArtAddress) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+99)
|
||||
data := make([]byte, 12+95)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpAddress)
|
||||
data[10] = 0
|
||||
|
||||
+2
-2
@@ -51,7 +51,7 @@ func (ac *ArtCommand) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (ac *ArtCommand) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+8)
|
||||
data := make([]byte, 12+4+len(ac.Data))
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpCommand)
|
||||
data[10] = 0
|
||||
@@ -62,6 +62,6 @@ func (ac *ArtCommand) MarshalBinary() ([]byte, error) {
|
||||
return nil, errors.New("data length must be less than or equal to 512 bytes")
|
||||
}
|
||||
binary.BigEndian.PutUint16(data[14:16], dataLength)
|
||||
data = append(data, ac.Data...)
|
||||
copy(data[16:], ac.Data)
|
||||
return data, nil
|
||||
}
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ func (adr *ArtDataRequest) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (adr *ArtDataRequest) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+32)
|
||||
data := make([]byte, 12+28)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpDataRequest)
|
||||
data[10] = 0
|
||||
|
||||
+2
-2
@@ -59,7 +59,7 @@ func (add *ArtDiagData) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (add *ArtDiagData) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+10)
|
||||
data := make([]byte, 12+6+len(add.Data))
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpDiagData)
|
||||
data[10] = 0
|
||||
@@ -73,6 +73,6 @@ func (add *ArtDiagData) MarshalBinary() ([]byte, error) {
|
||||
return nil, errors.New("data length must be less than or equal to 512 bytes")
|
||||
}
|
||||
binary.BigEndian.PutUint16(data[16:18], dataLength)
|
||||
data = append(data, add.Data...)
|
||||
copy(data[18:], add.Data)
|
||||
return data, nil
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ func (ad *ArtDmx) UnmarshalBinary(data []byte) error {
|
||||
|
||||
func (ad *ArtDmx) MarshalBinary() ([]byte, error) {
|
||||
// TODO(jwetzell): check max data length
|
||||
data := make([]byte, 8+10+len(ad.Data))
|
||||
data := make([]byte, 12+6+len(ad.Data))
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpDmx)
|
||||
data[10] = 0
|
||||
|
||||
@@ -83,7 +83,7 @@ func (aip *ArtIpProg) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (aip *ArtIpProg) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+26)
|
||||
data := make([]byte, 12+22)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpIpProg)
|
||||
data[10] = 0
|
||||
|
||||
+1
-1
@@ -84,7 +84,7 @@ func (aipr *ArtIpProgReply) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (aipr *ArtIpProgReply) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+26)
|
||||
data := make([]byte, 12+22)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpIpProgReply)
|
||||
data[10] = 0
|
||||
|
||||
@@ -50,7 +50,7 @@ func (an *ArtNzs) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (an *ArtNzs) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+8)
|
||||
data := make([]byte, 12+6+len(an.Data))
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpNzs)
|
||||
data[10] = 0
|
||||
|
||||
@@ -55,7 +55,7 @@ func (ap *ArtPoll) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (ap *ArtPoll) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+14)
|
||||
data := make([]byte, 12+10)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpPoll)
|
||||
data[10] = 0
|
||||
|
||||
+9
-9
@@ -28,9 +28,9 @@ type ArtPollReply struct {
|
||||
AcnPriority uint8
|
||||
SwMacro uint8
|
||||
SwRemote uint8
|
||||
Spare1 uint8
|
||||
Spare2 uint8
|
||||
Spare3 uint8
|
||||
spare1 uint8
|
||||
spare2 uint8
|
||||
spare3 uint8
|
||||
Style uint8
|
||||
MAC [6]uint8
|
||||
// TODO(jwetzell): support extended poll fields
|
||||
@@ -89,9 +89,9 @@ func (ap *ArtPollReply) UnmarshalBinary(data []byte) error {
|
||||
ap.AcnPriority = data[194]
|
||||
ap.SwMacro = data[195]
|
||||
ap.SwRemote = data[196]
|
||||
ap.Spare1 = data[197]
|
||||
ap.Spare2 = data[198]
|
||||
ap.Spare3 = data[199]
|
||||
ap.spare1 = data[197]
|
||||
ap.spare2 = data[198]
|
||||
ap.spare3 = data[199]
|
||||
ap.Style = data[200]
|
||||
copy(ap.MAC[:], data[201:207])
|
||||
return nil
|
||||
@@ -128,9 +128,9 @@ func (ap *ArtPollReply) MarshalBinary() ([]byte, error) {
|
||||
data[194] = ap.AcnPriority
|
||||
data[195] = ap.SwMacro
|
||||
data[196] = ap.SwRemote
|
||||
data[197] = ap.Spare1
|
||||
data[198] = ap.Spare2
|
||||
data[199] = ap.Spare3
|
||||
data[197] = ap.spare1
|
||||
data[198] = ap.spare2
|
||||
data[199] = ap.spare3
|
||||
data[200] = ap.Style
|
||||
copy(data[201:207], ap.MAC[:])
|
||||
copy(data[207:211], ap.BindIp[:])
|
||||
|
||||
@@ -37,7 +37,7 @@ func (as *ArtSync) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (as *ArtSync) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+6)
|
||||
data := make([]byte, 12+2)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpSync)
|
||||
data[10] = 0
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ func (atc *ArtTimeCode) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (atc *ArtTimeCode) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+11)
|
||||
data := make([]byte, 12+7)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpTimeCode)
|
||||
data[10] = 0
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ func (adr *ArtTodControl) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (adr *ArtTodControl) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+16)
|
||||
data := make([]byte, 12+12)
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpTodControl)
|
||||
data[10] = 0
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ func (adr *ArtTodRequest) MarshalBinary() ([]byte, error) {
|
||||
if len(adr.Address) > 32 {
|
||||
return nil, errors.New("address count must not be greater than 32")
|
||||
}
|
||||
data := make([]byte, 8+16+len(adr.Address))
|
||||
data := make([]byte, 12+12+len(adr.Address))
|
||||
copy(data[0:8], ArtNetID[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], OpTodRequest)
|
||||
data[10] = 0
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ func (at *ArtTrigger) UnmarshalBinary(data []byte) error {
|
||||
}
|
||||
|
||||
func (at *ArtTrigger) MarshalBinary() ([]byte, error) {
|
||||
data := make([]byte, 8+10)
|
||||
data := make([]byte, 12+6)
|
||||
copy(data[0:8], at.id[:])
|
||||
binary.LittleEndian.PutUint16(data[8:10], at.opCode)
|
||||
data[10] = at.ProtVerHi
|
||||
|
||||
Reference in New Issue
Block a user