1. вариант суммирования с синхробайтом:
perl -MDevice::SerialPort -le 'my @a=(0xa5,0x09, 0x01, 0xc8, 0x80); my $a = 0; $a += $_ for @a; $a &= 255; push @a, $a; my $rs = Device::SerialPort->new("/dev/ttyUSB0"); $rs->baudrate(9600); $rs->databits(8); $rs->parity("none"); $rs->write(pack "C*", @a)'
2. вариант суммирования без синхробайта:
perl -MDevice::SerialPort -le 'my @a=(0x09, 0x01, 0xc8, 0x80); my $a = 0; $a += $_ for @a; $a &= 255; unshift @a, 0xa5; push @a, $a; my $rs = Device::SerialPort->new("/dev/ttyUSB0"); $rs->baudrate(9600); $rs->databits(8); $rs->parity("none"); $rs->write(pack "C*", @a)'
3. вариант ксора с синхробайтом:
perl -MDevice::SerialPort -le 'my @a=(0xa5,0x09, 0x01, 0xc8, 0x80); my $a = 0; $a ^= $_ for @a; $a &= 255; push @a, $a; my $rs = Device::SerialPort->new("/dev/ttyUSB0"); $rs->baudrate(9600); $rs->databits(8); $rs->parity("none"); $rs->write(pack "C*", @a)'
4. вариант ксора без синхробайта:
perl -MDevice::SerialPort -le 'my @a=(0x09, 0x01, 0xc8, 0x80); my $a = 0; $a ^= $_ for @a; $a &= 255; unshift @a, 0xa5; push @a, $a; my $rs = Device::SerialPort->new("/dev/ttyUSB0"); $rs->baudrate(9600); $rs->databits(8); $rs->parity("none"); $rs->write(pack "C*", @a)'