Beispiel #1
0
        /// <summary>
        /// 解析倾角仪上报的数据
        /// </summary>
        /// <param name="msg"></param>
        public static void ParseInclinometerMsg(byte[] msg)
        {
            try
            {
                string code       = msg[5].ToString("X2") + msg[6].ToString("X2") + msg[7].ToString("X2") + msg[8].ToString("X2");
                string serialPort = msg[10].ToString("X2");
                string address    = msg[11].ToString("X2") + msg[12].ToString("X2");
                string producer   = msg[13].ToString("X2");
                byte[] newArr     = new byte[] { msg[14], msg[15], msg[16], msg[17] };
                float  x          = BitConverter.ToSingle(newArr, 0);
                newArr[0] = msg[18];
                newArr[1] = msg[19];
                newArr[2] = msg[20];
                newArr[3] = msg[21];
                float  y    = BitConverter.ToSingle(newArr, 0);
                string time = ExplainUtils.oneByteToInteger(msg[22]).ToString().PadLeft(2, '0') + ExplainUtils.oneByteToInteger(msg[23]).ToString().PadLeft(2, '0')
                              + ExplainUtils.oneByteToInteger(msg[24]).ToString().PadLeft(2, '0') + ExplainUtils.oneByteToInteger(msg[25]).ToString().PadLeft(2, '0')
                              + ExplainUtils.oneByteToInteger(msg[26]).ToString().PadLeft(2, '0') + ExplainUtils.oneByteToInteger(msg[27]).ToString().PadLeft(2, '0');//时标

                Console.WriteLine("code:{0},serialPort:{1},address:{2},producer:{3},X:{4},Y:{5},timestamp:{6}", code, serialPort, address, producer, x, y, time);
                logger.Info("parse inclinometer data >> code:" + code + ",serialPort:" + serialPort + ",address:" + address + ",producer:" + producer + ",X:" + x + ",Y:" + y + ",timestamp:" + time);
            }
            catch (Exception e)
            {
                String content = BitConverter.ToString(msg).Replace("-", " ");
                logger.Error("<<Method-ParseInclinometerMsg>>" + e.Message + "Data:" + content);
            }
        }