@@ -92,6 +92,8 @@ typedef enum
9292 //List commands in priority order
9393 CMD_ATI30 = 0 , //Get myVC
9494 CMD_ATB , //Break all VC links
95+ CMD_ATI , //Get the device type
96+ CMD_ATI8 , //Get the radio's unique ID
9597 CMD_ATA , //Get VC status
9698
9799 //Connect to the remote radio
@@ -102,18 +104,18 @@ typedef enum
102104 //Get remote radio connection status, type and ID
103105 CMD_AT_CMDVC_2 , //Select target VC
104106 CMD_ATI31 , //Get the VC state
105- CMD_ATI , //Get the device type
106- CMD_ATI8 , //Get the radio's unique ID
107+ CMD_ATI_2 , //Get the device type
108+ CMD_ATI8_2 , //Get the radio's unique ID
107109
108110 //Last in the list
109111 CMD_LIST_SIZE
110112} COMMANDS ;
111113
112114const char * const commandName [] =
113115{
114- "ATI30" , "ATIB" , "ATA" , "AT-CMDVC" , "ATC" ,
116+ "ATI30" , "ATIB" , "ATI" , "ATI8" , " ATA" , "AT-CMDVC" , "ATC" ,
115117 "WAIT_CONNECT" ,
116- "AT-CMDVC_2" , "ATI31" , "ATI " , "ATI8 " ,
118+ "AT-CMDVC_2" , "ATI31" , "ATI_2 " , "ATI8_2 " ,
117119};
118120
119121typedef struct _VIRTUAL_CIRCUIT
@@ -526,9 +528,15 @@ void radioToPcLinkStatus(VC_SERIAL_MESSAGE_HEADER * header, uint8_t * data, uint
526528 {
527529 if (DEBUG_PC_CMD_ISSUE )
528530 printf ("VC %d ALIVE\n" , srcVc );
529- COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].commandTimer , CMD_AT_CMDVC );
530- COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].commandTimer , CMD_ATC );
531- COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].commandTimer , CMD_WAIT_CONNECTED );
531+ COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue ,
532+ virtualCircuitList [srcVc ].commandTimer ,
533+ CMD_AT_CMDVC );
534+ COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue ,
535+ virtualCircuitList [srcVc ].commandTimer ,
536+ CMD_ATC );
537+ COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue ,
538+ virtualCircuitList [srcVc ].commandTimer ,
539+ CMD_WAIT_CONNECTED );
532540 }
533541
534542 if (DISPLAY_VC_STATE )
@@ -567,24 +575,25 @@ void radioToPcLinkStatus(VC_SERIAL_MESSAGE_HEADER * header, uint8_t * data, uint
567575 {
568576 if (virtualCircuitList [srcVc ].activeCommand == CMD_ATC )
569577 COMMAND_COMPLETE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].activeCommand );
570-
571- //Get the device information
572- if (srcVc == VC_SERVER )
573- {
574- COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_ATI );
575- COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_ATI8 );
576- }
577- else
578- {
579- COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].commandTimer , CMD_AT_CMDVC_2 );
580- COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].commandTimer , CMD_ATI31 );
581- COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].commandTimer , CMD_ATI );
582- COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].commandTimer , CMD_ATI8 );
583- }
584578 }
585579 COMMAND_COMPLETE (pcCommandQueue , pcActiveCommand );
586580 if (DISPLAY_VC_STATE )
587581 printf ("======= VC %d CONNECTED ======\n" , srcVc );
582+ if (srcVc != myVc )
583+ {
584+ COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue ,
585+ virtualCircuitList [srcVc ].commandTimer ,
586+ CMD_AT_CMDVC_2 );
587+ COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue ,
588+ virtualCircuitList [srcVc ].commandTimer ,
589+ CMD_ATI31 );
590+ COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue ,
591+ virtualCircuitList [srcVc ].commandTimer ,
592+ CMD_ATI_2 );
593+ COMMAND_ISSUE (virtualCircuitList [srcVc ].commandQueue ,
594+ virtualCircuitList [srcVc ].commandTimer ,
595+ CMD_ATI8_2 );
596+ }
588597 break ;
589598 }
590599
@@ -645,20 +654,23 @@ void radioCommandComplete(VC_SERIAL_MESSAGE_HEADER * header, uint8_t * data, uin
645654 {
646655 if (pcCommandVc < MAX_VC )
647656 {
648- COMMAND_COMPLETE (virtualCircuitList [pcCommandVc ].commandQueue , virtualCircuitList [pcCommandVc ].activeCommand );
657+ COMMAND_COMPLETE (virtualCircuitList [pcCommandVc ].commandQueue ,
658+ virtualCircuitList [pcCommandVc ].activeCommand );
649659 }
650660 COMMAND_COMPLETE (pcCommandQueue , pcActiveCommand );
651661 }
652662 else if (virtualCircuitList [pcCommandVc ].activeCommand < CMD_LIST_SIZE )
653663 {
654664 //This was a VC command
655- COMMAND_COMPLETE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].activeCommand );
665+ COMMAND_COMPLETE (virtualCircuitList [srcVc ].commandQueue ,
666+ virtualCircuitList [srcVc ].activeCommand );
656667 }
657668 }
658669 else
659670 {
660671 //This was a VC command
661- COMMAND_COMPLETE (virtualCircuitList [srcVc ].commandQueue , virtualCircuitList [srcVc ].activeCommand );
672+ COMMAND_COMPLETE (virtualCircuitList [srcVc ].commandQueue ,
673+ virtualCircuitList [srcVc ].activeCommand );
662674 }
663675
664676 vcMsg = (VC_COMMAND_COMPLETE_MESSAGE * )data ;
@@ -835,12 +847,6 @@ void issuePcCommands()
835847 pcActiveCommand = cmd ;
836848 switch (cmd )
837849 {
838- case CMD_ATB : //Break all of the VC links
839- if (DEBUG_PC_CMD_ISSUE )
840- printf ("Issuing ATB command\n" );
841- cmdToRadio ((uint8_t * )BREAK_LINKS_COMMAND , strlen (BREAK_LINKS_COMMAND ));
842- return ;
843-
844850 case CMD_ATI30 : //Get myVC
845851 if (myVc == VC_UNASSIGNED )
846852 {
@@ -856,6 +862,24 @@ void issuePcCommands()
856862 COMMAND_COMPLETE (pcCommandQueue , pcActiveCommand );
857863 break ;
858864
865+ case CMD_ATB : //Break all of the VC links
866+ if (DEBUG_PC_CMD_ISSUE )
867+ printf ("Issuing ATB command\n" );
868+ cmdToRadio ((uint8_t * )BREAK_LINKS_COMMAND , strlen (BREAK_LINKS_COMMAND ));
869+ return ;
870+
871+ case CMD_ATI :
872+ if (DEBUG_PC_CMD_ISSUE )
873+ printf ("Issuing ATI command\n" );
874+ cmdToRadio ((uint8_t * )GET_DEVICE_INFO , strlen (GET_DEVICE_INFO ));
875+ return ;
876+
877+ case CMD_ATI8 :
878+ if (DEBUG_PC_CMD_ISSUE )
879+ printf ("Issuing ATI8 command\n" );
880+ cmdToRadio ((uint8_t * )GET_UNIQUE_ID , strlen (GET_UNIQUE_ID ));
881+ return ;
882+
859883 case CMD_ATA : //Get all the VC states
860884 if (DEBUG_PC_CMD_ISSUE )
861885 printf ("Issuing ATA command\n" );
@@ -884,18 +908,6 @@ void issuePcCommands()
884908 printf ("Issuing ATI31 command\n" );
885909 cmdToRadio ((uint8_t * )GET_VC_STATE , strlen (GET_VC_STATE ));
886910 return ;
887-
888- case CMD_ATI :
889- if (DEBUG_PC_CMD_ISSUE )
890- printf ("Issuing ATI command\n" );
891- cmdToRadio ((uint8_t * )GET_DEVICE_INFO , strlen (GET_DEVICE_INFO ));
892- return ;
893-
894- case CMD_ATI8 :
895- if (DEBUG_PC_CMD_ISSUE )
896- printf ("Issuing ATI8 command\n" );
897- cmdToRadio ((uint8_t * )GET_UNIQUE_ID , strlen (GET_UNIQUE_ID ));
898- return ;
899911 }
900912 }
901913 }
@@ -1050,7 +1062,7 @@ bool issueVcCommands(int vcIndex)
10501062 if (commandProcessorIdle (vcIndex ))
10511063 {
10521064 if (DEBUG_PC_CMD_ISSUE )
1053- printf ("Migrating AT-CMDVC and ATI31 commands to PC command queue\n" );
1065+ printf ("Migrating AT-CMDVC_2 and ATI31 commands to PC command queue\n" );
10541066 COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_AT_CMDVC_2 );
10551067 if (COMMAND_PENDING (virtualCircuitList [vcIndex ].commandQueue , CMD_ATI31 ))
10561068 COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_ATI31 );
@@ -1062,11 +1074,11 @@ bool issueVcCommands(int vcIndex)
10621074 case CMD_ATI31 :
10631075 return true;
10641076
1065- case CMD_ATI :
1077+ case CMD_ATI_2 :
10661078 sendVcCommand (GET_DEVICE_INFO , vcIndex );
10671079 return true;
10681080
1069- case CMD_ATI8 :
1081+ case CMD_ATI8_2 :
10701082 sendVcCommand (GET_UNIQUE_ID , vcIndex );
10711083 return true;
10721084 }
@@ -1185,6 +1197,8 @@ int main(int argc, char **argv)
11851197 //Perform the initialization commands
11861198 pcCommandTimer = 1 ;
11871199 COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_ATI30 ); //Get myVC
1200+ COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_ATI ); //Get Radio type
1201+ COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_ATI8 ); //Get Radio unique ID
11881202 COMMAND_ISSUE (pcCommandQueue , pcCommandTimer , CMD_ATA ); //Get all the VC states
11891203
11901204 //Break the links if requested
0 commit comments