Skip to content

Commit 2ebf7df

Browse files
authored
Merge pull request #570 from LeeLeahy2/vct-reverse-cmds
VCT: Reverse the commands for easier log comparsion
2 parents 03c5d00 + 66c9de0 commit 2ebf7df

File tree

1 file changed

+52
-50
lines changed

1 file changed

+52
-50
lines changed

Firmware/Tools/VcServerTest.c

Lines changed: 52 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -582,13 +582,13 @@ void radioToPcLinkStatus(VC_SERIAL_MESSAGE_HEADER * header, uint8_t * data, uint
582582
printf("VC %d ALIVE\n", srcVc);
583583
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
584584
virtualCircuitList[srcVc].commandTimer,
585-
CMD_AT_CMDVC);
585+
CMD_WAIT_CONNECTED);
586586
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
587587
virtualCircuitList[srcVc].commandTimer,
588588
CMD_ATC);
589589
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
590590
virtualCircuitList[srcVc].commandTimer,
591-
CMD_WAIT_CONNECTED);
591+
CMD_AT_CMDVC);
592592
}
593593

594594
if (DISPLAY_VC_STATE)
@@ -621,38 +621,25 @@ void radioToPcLinkStatus(VC_SERIAL_MESSAGE_HEADER * header, uint8_t * data, uint
621621
break;
622622

623623
case VC_STATE_CONNECTED:
624+
if ((previousState == VC_STATE_LINK_DOWN) && (srcVc < MAX_VC)
625+
&& (!COMMAND_PENDING(virtualCircuitList[srcVc].commandQueue, CMD_WAIT_CONNECTED)))
626+
{
627+
//Issue the necessary commands when the link is connected
628+
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
629+
virtualCircuitList[srcVc].commandTimer,
630+
CMD_WAIT_CONNECTED);
631+
}
624632
if (DEBUG_PC_CMD_ISSUE)
625633
printf("VC %d CONNECTED\n", srcVc);
626-
if (COMMAND_PENDING(pcCommandQueue, CMD_ATC)
627-
&& (pcActiveCommand == CMD_ATC) && (srcVc == pcCommandVc))
634+
if ((pcActiveCommand == CMD_ATC) && COMMAND_PENDING(pcCommandQueue, CMD_ATC))
628635
{
629-
if (virtualCircuitList[srcVc].activeCommand == CMD_ATC)
630-
COMMAND_COMPLETE(virtualCircuitList[srcVc].commandQueue, virtualCircuitList[srcVc].activeCommand);
631-
COMMAND_COMPLETE(pcCommandQueue, pcActiveCommand);
636+
if (srcVc == pcCommandVc)
637+
COMMAND_COMPLETE(pcCommandQueue, pcActiveCommand);
638+
if ((pcCommandVc < MAX_VC) && (virtualCircuitList[pcCommandVc].activeCommand == CMD_ATC))
639+
COMMAND_COMPLETE(virtualCircuitList[pcCommandVc].commandQueue, virtualCircuitList[srcVc].activeCommand);
632640
}
633641
if (DISPLAY_VC_STATE)
634642
printf("======= VC %d CONNECTED ======\n", srcVc);
635-
if (srcVc != myVc)
636-
{
637-
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
638-
virtualCircuitList[srcVc].commandTimer,
639-
CMD_AT_CMDVC_2);
640-
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
641-
virtualCircuitList[srcVc].commandTimer,
642-
CMD_ATI31);
643-
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
644-
virtualCircuitList[srcVc].commandTimer,
645-
CMD_ATI_2);
646-
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
647-
virtualCircuitList[srcVc].commandTimer,
648-
CMD_ATI8_2);
649-
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
650-
virtualCircuitList[srcVc].commandTimer,
651-
CMD_ATI11);
652-
COMMAND_ISSUE(virtualCircuitList[srcVc].commandQueue,
653-
virtualCircuitList[srcVc].commandTimer,
654-
CHECK_FOR_UPDATE);
655-
}
656643
break;
657644
}
658645

@@ -1218,9 +1205,9 @@ bool issueVcCommands(int vcIndex)
12181205
{
12191206
if (DEBUG_PC_CMD_ISSUE)
12201207
printf("Migrating AT-CMDVC=%d and ATC commands to PC command queue\n", vcIndex);
1221-
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_AT_CMDVC);
12221208
if (COMMAND_PENDING(virtualCircuitList[vcIndex].commandQueue, CMD_ATC))
12231209
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATC);
1210+
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_AT_CMDVC);
12241211
return true;
12251212
}
12261213
virtualCircuitList[vcIndex].activeCommand = CMD_LIST_SIZE;
@@ -1242,23 +1229,37 @@ bool issueVcCommands(int vcIndex)
12421229
COMMAND_COMPLETE(virtualCircuitList[vcIndex].commandQueue,
12431230
virtualCircuitList[vcIndex].activeCommand);
12441231

1232+
//Get the sprinkler controller information
1233+
if (vcIndex != myVc)
1234+
{
1235+
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
1236+
virtualCircuitList[vcIndex].commandTimer,
1237+
CHECK_FOR_UPDATE);
1238+
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
1239+
virtualCircuitList[vcIndex].commandTimer,
1240+
CMD_ATI11);
1241+
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
1242+
virtualCircuitList[vcIndex].commandTimer,
1243+
CMD_ATI8_2);
1244+
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
1245+
virtualCircuitList[vcIndex].commandTimer,
1246+
CMD_ATI_2);
1247+
}
1248+
12451249
//Get the VC state
1246-
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_AT_CMDVC_2);
1250+
if (vcIndex != myVc)
1251+
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
1252+
virtualCircuitList[vcIndex].commandTimer,
1253+
CMD_ATI31);
12471254
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI31);
1255+
if (vcIndex != myVc)
1256+
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
1257+
virtualCircuitList[vcIndex].commandTimer,
1258+
CMD_AT_CMDVC_2);
1259+
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_AT_CMDVC_2);
12481260
break;
12491261

12501262
case CMD_AT_CMDVC_2:
1251-
//Determine if the local command processor is idle
1252-
if (commandProcessorIdle(vcIndex))
1253-
{
1254-
if (DEBUG_PC_CMD_ISSUE)
1255-
printf("Migrating AT-CMDVC_2 and ATI31 commands to PC command queue\n");
1256-
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_AT_CMDVC_2);
1257-
if (COMMAND_PENDING(virtualCircuitList[vcIndex].commandQueue, CMD_ATI31))
1258-
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI31);
1259-
return true;
1260-
}
1261-
virtualCircuitList[vcIndex].activeCommand = CMD_LIST_SIZE;
12621263
return true;
12631264

12641265
case CMD_ATI31:
@@ -1277,21 +1278,22 @@ bool issueVcCommands(int vcIndex)
12771278
return true;
12781279

12791280
case CHECK_FOR_UPDATE:
1281+
//Done with the CHECK_FOR_UPDATE command
1282+
COMMAND_COMPLETE(virtualCircuitList[vcIndex].commandQueue,
1283+
virtualCircuitList[vcIndex].activeCommand);
1284+
1285+
//Determine if the sprinkler controller needs to be programmed
12801286
if ((!virtualCircuitList[vcIndex].programUpdated)
12811287
|| (virtualCircuitList[vcIndex].programUpdated > virtualCircuitList[vcIndex].programmed))
12821288
{
12831289
//Complete the programming
12841290
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
12851291
virtualCircuitList[vcIndex].commandTimer,
1286-
CMD_ATI12);
1292+
PROGRAMMING_COMPLETED);
12871293
COMMAND_ISSUE(virtualCircuitList[vcIndex].commandQueue,
12881294
virtualCircuitList[vcIndex].commandTimer,
1289-
PROGRAMMING_COMPLETED);
1295+
CMD_ATI12);
12901296
}
1291-
1292-
//Done with the CHECK_FOR_UPDATE command
1293-
COMMAND_COMPLETE(virtualCircuitList[vcIndex].commandQueue,
1294-
virtualCircuitList[vcIndex].activeCommand);
12951297
return true;
12961298

12971299
case PROGRAMMING_COMPLETED:
@@ -1419,10 +1421,10 @@ int main(int argc, char **argv)
14191421

14201422
//Perform the initialization commands
14211423
pcCommandTimer = 1;
1422-
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI30); //Get myVC
1423-
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI); //Get Radio type
1424-
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI8); //Get Radio unique ID
14251424
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATA); //Get all the VC states
1425+
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI8); //Get Radio unique ID
1426+
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI); //Get Radio type
1427+
COMMAND_ISSUE(pcCommandQueue, pcCommandTimer, CMD_ATI30); //Get myVC
14261428

14271429
//Break the links if requested
14281430
if (breakLinks)

0 commit comments

Comments
 (0)