Example #1
0
        public static MessageBase Parse(string data)
        {
            //var allControls = Enum.GetValues(typeof(eControl)).OfType<byte>().ToList();
            //if(!allControls.Contains((byte)data[3])) return null;

            var         ctrl = (eControl)(byte)data[3];
            MessageBase msg  = null;

            switch (ctrl)
            {
            case eControl.ACK:
            case eControl.NAK:
            case eControl.DialCompleted:
            case eControl.LP_Update:
            case eControl.LP_ACK:
            case eControl.LP_NAK:
                //case eControl.TSL_ENQ:
                //case eControl.TSL_EOT:
                //case eControl.TSL_Prepare:
                //case eControl.TSL_ResultEnd:
                //case eControl.TSL_ResultRequest:
                msg = new SimpleMessage(ctrl);
                break;

            case eControl.LineStatus:
                msg = LineStatusMessageBase.Parse(data);
                break;

            case eControl.AllStatus:
                var allStatus = new AllStatusMessage();
                msg = allStatus;
                break;

            case eControl.StartAlarm:
            case eControl.EndAlarm:
                msg = StartAlarmMessage.Parse(data);
                break;

                //case eControl.TSL_ResultData:
                //    msg = TSL_ResultMessage.Parse(data);
                //    break;
            }

            if (msg != null)
            {
                msg.Address = (byte)data[2];
            }
            return(msg);
        }
Example #2
0
        public static new StartAlarmMessage Parse(string data)
        {
            StartAlarmMessage msg = null;

            if ((eControl)(byte)data[3] == eControl.StartAlarm)
            {
                msg = new StartAlarmMessage();
            }
            else if ((eControl)(byte)data[3] == eControl.EndAlarm)
            {
                msg = new EndAlarmMessage();
            }

            if (msg == null)
            {
                return(null);
            }

            msg.Period = (byte)data[4];
            msg.Hour   = (byte)data[5];
            msg.Times  = (byte)data[6];
            return(msg);
        }