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();
        }
Example #2
0
        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();
        }