public void SendCommandToMBed(NAVMBED_CMDS commandIndex) { navIFMutex_.WaitOne(); String msgStr; // Shared Message flag header msgStr = "WMsg "; // Message specific body switch (commandIndex) { case NAVMBED_CMDS.RECORD_DATA_ON: case NAVMBED_CMDS.RECORD_DATA_OFF: { msgStr += "RECORDDATA "; if (commandIndex == NAVMBED_CMDS.RECORD_DATA_ON) { msgStr += "Y"; } else { msgStr += "N"; } } break; case NAVMBED_CMDS.STREAM_POS_ON: case NAVMBED_CMDS.STREAM_POS_OFF: { msgStr += "POSSTREAM "; if (commandIndex == NAVMBED_CMDS.STREAM_POS_ON) { msgStr += "Y"; } else { msgStr += "N"; } } break; case NAVMBED_CMDS.LOG_INFO_ON: case NAVMBED_CMDS.LOG_INFO_OFF: { msgStr += "LOGINFO "; if (commandIndex == NAVMBED_CMDS.LOG_INFO_ON) { msgStr += "Y"; } else { msgStr += "N"; } } break; case NAVMBED_CMDS.POSVEL_MESSAGE: { msgStr += "POSVEL"; } break; case NAVMBED_CMDS.STATUS_MESSAGE: { msgStr += "STATUS"; } break; case NAVMBED_CMDS.FIRE_TRIGGER: { msgStr += "TRIGGER"; LogData("PC sending Trigger Command \n"); } break; case NAVMBED_CMDS.GET_MBED_FILE: { msgStr += "GETFILE"; LogData("send request to the nav data from mbed \n"); } break; } // shared new line character //mbedLogFile.WriteLine(" writing message: " + msgStr + " request from PC"); writeBuffer_.Enqueue(msgStr); navIFMutex_.ReleaseMutex(); }
public void SendCommandToMBed(NAVMBED_CMDS commandIndex) { ///////////////////////////////////////////////////////////////////////////////////////////////// //prepare the ASCII message to send to mbed //message structure: // mbedmessage trig 0000000000/n // preamble, message type (trig) data word (0000000000) -- ending with carriage line-feed ///////////////////////////////////////////////////////////////////////////////////////////////// navIFMutex_.WaitOne(); String msgStr; // Shared Message flag header msgStr = "mbedmessage "; // 12 character preamble expected at the mbed // Message specific body switch (commandIndex) { case NAVMBED_CMDS.FIRE_TRIGGER: { msgStr += "trig "; //five characters message type expected at mbed //mbedLogFile.WriteLine("PC sending Trigger Command \n"); //each message has a 10-numeric-character dataword msgStr += "0000000000"; } break; } // shared new line character writeBuffer_.Enqueue(msgStr); //logFile.WriteLine("writeBufferCount = " + writeBuffer_.Count.ToString() + " PC writing message to mbed: " + msgStr); navIFMutex_.ReleaseMutex(); }