Ejemplo n.º 1
0
        /// <summary>
        /// 动作命令
        /// </summary>
        /// <param name="struReceiveTelegram"></param>
        /// <param name="objTelegram"></param>
        private void UnpackTelegramMove(out struTelegram struReceiveTelegram, Int16[] objTelegram)
        {
            struReceiveTelegram = new struTelegram();

            struReceiveTelegram.nEMSSendFlag  = objTelegram[0];
            struReceiveTelegram.nPLCSendFlag  = objTelegram[1];
            struReceiveTelegram.nTelegramType = objTelegram[2];
            struReceiveTelegram.nSubTypeEMS   = objTelegram[3];
            struReceiveTelegram.nSubTypePLC   = objTelegram[4];
            //CBaseMethods.MyBase.StringToUInt32(Int16sToString(objTelegram, 6, 10, 4), out struReceiveTelegram.nEquipID);
            //struReceiveTelegram.strICCardID = Int16sToStringByASCII(objTelegram, 11, 22, 4);
            struReceiveTelegram.nEquipID       = objTelegram[6];
            struReceiveTelegram.strICCardID    = (Convert.ToString(objTelegram[11])).PadLeft(4, '0');
            struReceiveTelegram.strCarSize     = Convert.ToString(objTelegram[23]);
            struReceiveTelegram.offCenter      = objTelegram[24];
            struReceiveTelegram.nWheelbase     = objTelegram[25];
            struReceiveTelegram.carWeight      = objTelegram[26];
            struReceiveTelegram.rearWheelDis   = objTelegram[28];
            struReceiveTelegram.nDirection     = objTelegram[29];
            struReceiveTelegram.strSrcLocAddr  = Int16sToString(objTelegram, 30, 34, 2);
            struReceiveTelegram.strDestLocAddr = Int16sToString(objTelegram, 35, 39, 2);
            struReceiveTelegram.overallLg      = objTelegram[45];
            struReceiveTelegram.overHang       = objTelegram[46];
            struReceiveTelegram.nTelegramID    = objTelegram[48];
            struReceiveTelegram.nEndFlag       = objTelegram[49];
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 状态命令
        /// </summary>
        /// <param name="objTelegram"></param>
        /// <param name="struSendTelegram"></param>
        private void PackTelegramStatus(out Int16[] objTelegram, struTelegram struSendTelegram)
        {
            objTelegram = new Int16[m_nTelegramLen];

            objTelegram[0] = (Int16)struSendTelegram.nEMSSendFlag;
            objTelegram[1] = (Int16)struSendTelegram.nPLCSendFlag;
            objTelegram[2] = (Int16)struSendTelegram.nTelegramType;
            objTelegram[3] = (Int16)struSendTelegram.nSubTypeEMS;
            objTelegram[4] = (Int16)struSendTelegram.nSubTypePLC;
            StringToInt16s(ref objTelegram, 6, 10, 4, struSendTelegram.nEquipID.ToString());
            StringToInt16s(ref objTelegram, 17, 18, 4, struSendTelegram.nSMGValidity.ToString());
            objTelegram[48] = (Int16)struSendTelegram.nTelegramID;
            objTelegram[49] = (Int16)struSendTelegram.nEndFlag;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 状态命令
        /// </summary>
        /// <param name="struReceiveTelegram"></param>
        /// <param name="objTelegram"></param>
        private void UnpackTelegramStatus(out struTelegram struReceiveTelegram, Int16[] objTelegram)
        {
            struReceiveTelegram = new struTelegram();

            struReceiveTelegram.nEMSSendFlag  = objTelegram[0];
            struReceiveTelegram.nPLCSendFlag  = objTelegram[1];
            struReceiveTelegram.nTelegramType = objTelegram[2];
            struReceiveTelegram.nSubTypeEMS   = objTelegram[3];
            struReceiveTelegram.nSubTypePLC   = objTelegram[4];
            CBaseMethods.MyBase.StringToUInt32(Int16sToString(objTelegram, 6, 10, 4), out struReceiveTelegram.nEquipID);
            CBaseMethods.MyBase.StringToUInt32(Int16sToString(objTelegram, 17, 18, 4), out struReceiveTelegram.nSMGValidity);
            struReceiveTelegram.nTelegramID = objTelegram[48];
            struReceiveTelegram.nEndFlag    = objTelegram[49];
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 打包报文
        /// </summary>
        /// <param name="objTelegram"></param>
        /// <param name="struSendTelegram"></param>
        public void PackTelegram(out Int16[] objTelegram, struTelegram struSendTelegram)
        {
            StruSendTelegram = struSendTelegram;
            //m_nStatusCommandType---1074
            if (struSendTelegram.nTelegramType != m_nStatusCommandType - 1000)
            {
                // 动作命令
                PackTelegramMove(out objTelegram, struSendTelegram);
            }
            else
            {
                // 状态命令
                PackTelegramStatus(out objTelegram, struSendTelegram);
            }

            TelegramSend.Initialize();
            objTelegram.CopyTo(TelegramSend, 0);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 动作命令
        /// </summary>
        /// <param name="objTelegram"></param>
        /// <param name="struSendTelegram"></param>
        private void PackTelegramMove(out Int16[] objTelegram, struTelegram struSendTelegram)
        {
            objTelegram = new Int16[m_nTelegramLen];

            objTelegram[0] = (Int16)struSendTelegram.nEMSSendFlag;
            objTelegram[1] = (Int16)struSendTelegram.nPLCSendFlag;
            objTelegram[2] = (Int16)struSendTelegram.nTelegramType;
            objTelegram[3] = (Int16)struSendTelegram.nSubTypeEMS;
            objTelegram[4] = (Int16)struSendTelegram.nSubTypePLC;

            objTelegram[6] = (Int16)struSendTelegram.nEquipID;
            if (!string.IsNullOrEmpty(struSendTelegram.strICCardID))
            {
                objTelegram[11] = Convert.ToInt16(struSendTelegram.strICCardID);
            }
            if (!string.IsNullOrEmpty(struSendTelegram.strCarSize))
            {
                objTelegram[23] = Convert.ToInt16(struSendTelegram.strCarSize);
            }
            objTelegram[24] = (Int16)struSendTelegram.offCenter;
            objTelegram[25] = (Int16)struSendTelegram.nWheelbase;
            objTelegram[26] = (Int16)struSendTelegram.carWeight;
            objTelegram[28] = (Int16)struSendTelegram.rearWheelDis;

            if (!string.IsNullOrEmpty(struSendTelegram.strSrcLocAddr))
            {
                objTelegram[30] = Convert.ToInt16(struSendTelegram.strSrcLocAddr.Substring(0, 1));
                objTelegram[31] = Convert.ToInt16(struSendTelegram.strSrcLocAddr.Substring(1, 2));
                objTelegram[32] = Convert.ToInt16(struSendTelegram.strSrcLocAddr.Substring(3));
            }
            if (!string.IsNullOrEmpty(struSendTelegram.strDestLocAddr))
            {
                objTelegram[35] = Convert.ToInt16(struSendTelegram.strDestLocAddr.Substring(0, 1));
                objTelegram[36] = Convert.ToInt16(struSendTelegram.strDestLocAddr.Substring(1, 2));
                objTelegram[37] = Convert.ToInt16(struSendTelegram.strDestLocAddr.Substring(3));
            }

            objTelegram[45] = (Int16)struSendTelegram.overallLg;
            objTelegram[46] = (Int16)struSendTelegram.overHang;

            objTelegram[48] = (Int16)struSendTelegram.nTelegramID;
            objTelegram[49] = (Int16)struSendTelegram.nEndFlag;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 解析报文
        /// </summary>
        /// <param name="struReceiveTelegram"></param>
        /// <param name="objTelegram"></param>
        public void UnpackTelegram(out struTelegram struReceiveTelegram, Int16[] objTelegram)
        {
            if (objTelegram.Count() < m_nTelegramLen)
            {
                struReceiveTelegram = new struTelegram();
                return;
            }

            if (objTelegram[2] != m_nStatusCommandType)
            {
                // 动作命令
                UnpackTelegramMove(out struReceiveTelegram, objTelegram);
            }
            else
            {
                // 状态命令
                UnpackTelegramStatus(out struReceiveTelegram, objTelegram);
            }

            StruRecvTelegram = struReceiveTelegram;
        }
Ejemplo n.º 7
0
        public struTelegram StruSendTelegram;    //解析后收到的报文

        public CTelegramParse()
        {
            TelegramSend     = new Int16[m_nTelegramLen];
            StruRecvTelegram = new struTelegram();
        }