Checksum how to do it.
Germt van de Sande
Junior Member
Hello,
Iam trying to send a file to a dmx player, but i have problem to find out how the checksum works.
In the manuel they see that i have to do a xor with the address and the data bytes.
But i dont know how to do this.
I can send data to the player a capture with a rs232 spy and that works fine, but i don't see how the checksum is bild.
To start i send a $FD, $00, $00, $28, the $28 is the checksum i captured.
Then i send the last 2 bytes with a hextoi :
0000:f0
0001:02
0002:14
0003:00
0004:00
0005:00
0006:01
0007:1f
0008:00
0009:80
000a:1c
000b:00
000c:00
000d:4e
000e:65
000f:77
0010:20
0011:73
0012:63
0013:65
0014:6e
0015:65
0016:20
0017:31
0018:20
0019:20
001a:20
001b:20
001c:1c
001d:00
001e:00
001f:00
0020:14
0021:00
0022:01
0023:00
0024:00
0025:ff
0026:00
0027:00
This is working,
But when i put a other file into the amx it don't and i see that the checksum is changed.
This is what into the manual is:
0xFD(Block transfer header)
address low(0x00 ... 0xFF)
address high(0x00 ... 0xFF)
data byte(0x00 ... 0xFF)
checksum(0xDF xor address low xor address high
xor data byte)
Is there someone that can tell me how this checksum is working.
thanks
Iam trying to send a file to a dmx player, but i have problem to find out how the checksum works.
In the manuel they see that i have to do a xor with the address and the data bytes.
But i dont know how to do this.
I can send data to the player a capture with a rs232 spy and that works fine, but i don't see how the checksum is bild.
To start i send a $FD, $00, $00, $28, the $28 is the checksum i captured.
Then i send the last 2 bytes with a hextoi :
0000:f0
0001:02
0002:14
0003:00
0004:00
0005:00
0006:01
0007:1f
0008:00
0009:80
000a:1c
000b:00
000c:00
000d:4e
000e:65
000f:77
0010:20
0011:73
0012:63
0013:65
0014:6e
0015:65
0016:20
0017:31
0018:20
0019:20
001a:20
001b:20
001c:1c
001d:00
001e:00
001f:00
0020:14
0021:00
0022:01
0023:00
0024:00
0025:ff
0026:00
0027:00
This is working,
But when i put a other file into the amx it don't and i see that the checksum is changed.
This is what into the manual is:
0xFD(Block transfer header)
address low(0x00 ... 0xFF)
address high(0x00 ... 0xFF)
data byte(0x00 ... 0xFF)
checksum(0xDF xor address low xor address high
xor data byte)
Is there someone that can tell me how this checksum is working.
thanks
Comments
-
Volatile CHAR address[2]
Volatile CHAR command
Volatile CHAR checksum
Volatile CHAR theCommand[5]
address = "$00,$00"
command = "$28"
checksum = "$DF^address[1]^address[2]^command"
theCommand = "$FD,address,command,checksum"
Send_string theDev, theCommand
^ == Bitwise XOR
unneccesary steps added for readability
Categories
- All Categories
- 2.5K AMX General Discussion
- 922 AMX Technical Discussion
- 514 AMX Hardware
- 502 AMX Control Products
- 3 AMX Video Distribution Products
- 9 AMX Networked AV (SVSI) Products
- AMX Workspace & Collaboration Products
- 3.4K AMX Software
- 151 AMX Resource Management Suite Software
- 386 AMX Design Tools
- 2.4K NetLinx Studio
- 135 Duet/Cafe Duet
- 248 NetLinx Modules & Duet Modules
- 57 AMX RPM Forum
- 228 MODPEDIA - The Public Repository of Modules for Everyone
- 943 AMX Specialty Forums
- 2.6K AMXForums Archive
- 2.6K AMXForums Archive Threads
- 1.5K AMX Hardware
- 432 AMX Applications and Solutions
- 249 Residential Forum
- 182 Tips and Tricks
- 146 AMX Website/Forums