Loading ...
Sorry, an error occurred while loading the content.

My learning experience with IPC Perl gMFSK

Expand Messages
  • kc4ums
    #!/usr/bin/perl -w # #Thanks Dave(W1HKJ) for your help - Tim KC4UMS # #Save all of this with the name ipc_rcv.pl #From your shell type chmod 777 ipc_rcv.pl
    Message 1 of 2 , Feb 25, 2006
    • 0 Attachment
      #!/usr/bin/perl -w
      #
      #Thanks Dave(W1HKJ) for your help - Tim KC4UMS
      #
      #Save all of this with the name "ipc_rcv.pl"
      #From your shell type "chmod 777 ipc_rcv.pl"
      #Run from the shell by typing "./ipc_rcv.pl"
      #Log entry from gMFSK will display the fields in the shell
      #
      #This is the output after running the ipcs command from the shell
      #With gMFSK running key 0x000004d6 decimal 1238 is the queue for gMFSK
      #
      #------ Message Queues --------
      #key msqid owner perms used-bytes messages
      #0x000004d6 753664 kc4ums 666 0 0
      #

      use IPC::SysV qw(IPC_PRIVATE IPC_RMID IPC_CREAT S_IRWXU);

      #intialize the id same as msqid above to -1

      $id = -1;

      # Connect to the queue or create one(gMFSK not running)

      my $id = msgget(1238,0666|IPC_CREAT);

      # If $id is not a -1 we are ok

      if ($id != -1)
      {
      print "Press CTL-C to terminate \n \n ";

      # start a loop to receive mesaages

      while(){

      msgrcv($id, $rcvd, 1200, 0, 0) || die "Error queue $id";

      # Split the string into an array by the "\1" character

      @rcvd = split("\1",$rcvd,100);

      print "$rcvd[0] \n"; #Xprogram
      print "$rcvd[1] \n"; #version
      print "$rcvd[2] \n"; #date
      print "$rcvd[3] \n"; #time
      print "$rcvd[4] \n"; #endtime
      print "$rcvd[5] \n"; #call
      print "$rcvd[6] \n"; #mhz
      print "$rcvd[7] \n"; #mode
      print "$rcvd[8] \n"; #tx
      print "$rcvd[9] \n"; #rx
      print "$rcvd[10] \n"; #name
      print "$rcvd[11] \n"; #qth
      print "$rcvd[12] \n"; #locator
      print "$rcvd[13] \n"; #notes
      print "\n\n";

      };
      };
    • w1hkj
      Very nice Tim. The same kind of thing can be accomplished using tcltk (wish), or python. Perhaps some one would like to try their hand at either of those.
      Message 2 of 2 , Feb 25, 2006
      • 0 Attachment
        Very nice Tim. The same kind of thing can be accomplished using tcltk
        (wish), or python. Perhaps some one would like to try their hand at
        either of those. Wish has a very easy to use gui interface and you can
        build some pretty slick applications that are all scripts.

        Dave (hkj)
      Your message has been successfully submitted and would be delivered to recipients shortly.