示例#1
0
        private void MakeFullReport()
        {
            MakeMinimalReport();
            if (mFullReportRequired)
            {
                RTTMesg message;
                // set versioning and catalogue data
                if (mDeviceMask != DeviceCatalogueInfo.EquipmentFlages.None)
                {
                    message = RTTMesg.CreateEquipmentMessage(mDeviceMask, mDeviceStatus);
                    CNXLog.WarnFormat("Sending {0}", message);
                    mCommsServer.Send(message);
                }
                if (mCatalogue != null)
                {
                    message = RTTMesg.CreateFirmwareMessage(mCatalogue);
                    CNXLog.WarnFormat("Sending {0}", message);
                    mCommsServer.Send(message);
                }
                if (mResourceMessage != null)
                {
                    if (mResourceMessage.IsResourceBuildPopulated)
                    {
                        CNXLog.WarnFormat("Sending {0}", mResourceMessage);
                        mCommsServer.Send(mResourceMessage);
                    }
                    else
                    {
                        CNXLog.WarnFormat("ResourceMessage not populated {0}", mResourceMessage);
                    }
                }
                else
                {
                    CNXLog.WarnFormat("No ResourceMessage to send");
                }

                mFullReportRequired = (mDeviceMask == DeviceCatalogueInfo.EquipmentFlages.None) || (mCatalogue == null) || (!mResourceMessage.IsResourceBuildPopulated);
            }
        }
示例#2
0
        private void FrameReceivedEventHandler(object o, FrameReceivedEventArgs a)
        {
            switch ((CNXMsgIds)a.Frame.MailboxId)
            {
            case CNXMsgIds.DriverMessageAck:
                mCommsServer.Send(RTTMesg.CreateDriverMessageAck(BitConverter.ToUInt16(a.Frame.Data, 0)));
                break;

            case CNXMsgIds.DriverStatus:
                CNXLog.WarnFormat("Driver status recieved {0}.", (CANLib.DriverStatus)a.Frame.Data[0]);
                RTTMesg.RTTOutMsgIds state = RTTMesg.RTTOutMsgIds.UNKNOWN;
                switch ((CANLib.DriverStatus)a.Frame.Data[0])
                {
                case DriverStatus.Break:
                    state = RTTMesg.RTTOutMsgIds.DriverStatusOnBreak;
                    break;

                case DriverStatus.Normal:
                    state = RTTMesg.RTTOutMsgIds.DriverStatusNormal;
                    break;

                case DriverStatus.OutOfVehicle:
                    state = RTTMesg.RTTOutMsgIds.DriverStatusOutOfVehicle;
                    break;

                default:
                    CNXLog.WarnFormat("CNXMsgIds.DriverStatus {0} out of range.", a.Frame.Data[0]);
                    break;
                }
                if (state != RTTMesg.RTTOutMsgIds.UNKNOWN)
                {
                    mCommsServer.Send(RTTMesg.CreateDriverStatus(state));
                }
                break;

            default:
                break;
            }
        }