#!/usr/bin/perl use warnings; use strict; use IO::Socket; my $SM = "\xfe"; my $ADRDSTN= "\x00\x09\x01\x00"; my $ADRSRC= "\x00\x08\x01\x00"; my $MID= "\x01"; my $MDLH= "\x00"; my $MDLL= "\x18"; my $SUBMID= "\x00"; my $CHreq= "\x00\x61"; my $Pity= "\xFF\x05"; my $Flags= "\x00\x20"; my $Timeout= "\x00\x00"; my $Level= "\x00\x00"; my $NumOfSrcEl= "\x01"; my $SrcEl= "\x00\xFF\x00\x84\x10\x00"; my $NumOfDstnEl= "\x01"; my $DstnEl= "\x08\x10\x00\x01\x01"; my $Rsvd= "\x00"; my @message= $ADRDSTN . $ADRSRC . $MID .$MDLH . $MDLL . $SUBMID . $CHreq . $Pity .$Flags . $Timeout . $Level . $NumOfSrcEl . $SrcEl . $NumOfDstnEl . $DstnEl . $Rsvd; my $EM= "\xfd"; my $count=0; $count += $message[$_] for 0..@message-1 ; $count = 256 - ($count % 256); my $CHECKSUM= chr( $count ); my @VPAP= $SM . @message . $CHECKSUM . $EM; print @VPAP,"\n";