# # OO version of all the PC protocol stuff # # Here is done all reception, validation and generation of PC # protocol frames # # This uses the Prot class as a basis for all # protocol entities # package PC10; @ISA = qw(Prot); use DXUtil; use strict; sub new { my $pkg = shift; my $self = SUPER->new($pkg); $self->{from} = shift; $self->{to} = shift; # is TO if {to} is blank $self->{text} = shift; $self->{flag} = shift; my $auxto = shift; $self->{origin} = shift; # sort out the to/via dillema and do some validation if (is_callsign($auxto)) { $self->{via} = $self->{to}; $self->{to} = $auxto; return undef unless is_callsign($self->{via}); } return undef unless is_callsign($self->{from}) && is_callsign($self->{to}) && is_callsign($self->{origin}) && is_pctext($self->{text}) && is_pcflag($self->{flag}); return $self; } sub out { my $self = shift; my $addra = $self->{via} || $self->{to}; my $addrb = exists $self->{via} ? $self->{to} : ' '; return "PC10^$self->{from}^$addra^$self->{text}^$self->{flag}^$addrb^$self->{origin}^~"; } 1; __END__