Example #1
0
        static void ProcessBytes(object o)
        {
            byte[] bts    = (byte[])o;
            int    length = bts.Length;
            string jstr0  = Encoding.UTF8.GetString(bts, 0, length);

            if (bts.Length > 4 && bts[0] == 0 && bts[1] == 0)
            {
                int jbtlength = bts[2] * 256 + bts[3];
                if (jbtlength != bts.Length - 4)
                {
                    return;
                }
                string jstr = Encoding.UTF8.GetString(bts, 4, jbtlength);
                try
                {
                    JObject.Parse(jstr);
                }
                catch (Exception ex)
                {
                    Utils.WriteEX(ex);
                    return;
                }
                JObject jobj = JObject.Parse(jstr);
                DataParser.ParseJObj(jobj);
                {
                    if (jbtlength + 4 < length)
                    {
                        byte[] btSub = bts.Skip(jbtlength + 4).ToArray();
                        ProcessBytes(btSub);
                    }
                }
            }
        }
Example #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            string  jstr = "{\"state\":\"Stream\",\"parser\":\"MXS1501\",\"raw\":\"7E000B7D1A000001000000330A4081817F01E524226D050100000100B01C00\",\"data\":[{\"name\":\"nodeid\",\"alias\":\"节点编号\",\"type\":\"uint16\",\"raw\":\"0x0100\",\"converted\":\"20\"},{\"name\":\"uid\",\"alias\":\"网关唯一号\",\"type\":\"raw\",\"raw\":\"0x01E6F5DC180000AE\"},{\"name\":\"parent\",\"alias\":\"父级节点\",\"type\":\"uint16\",\"raw\":\"0x0000\",\"converted\":\"0\"},{\"name\":\"port\",\"alias\":\"采集通道\",\"type\":\"uint8\",\"raw\":\"0x01\",\"converted\":\"1\"},{\"name\":\"light\",\"alias\":\"太阳光照(lux)\",\"type\":\"uint32\",\"raw\":\"0x00B01C00\",\"converted\":\"" + textBox1.Text + "\"}]}";
            JObject jobj = JObject.Parse(jstr);

            DataParser.ParseJObj(jobj);
            // int add = r.Next(-20, 20);
            //string jstr;
            //if (b)
            //{
            //    jstr = "{\"state\":\"Stream\",\"parser\":\"MXS1501\",\"raw\":\"7E000B7D1A000001000000330A4081817F01E524226D050100000100B01C00\",\"data\":[{\"name\":\"nodeid\",\"alias\":\"节点编号\",\"type\":\"uint16\",\"raw\":\"0x0100\",\"converted\":\"1\"},{\"name\":\"uid\",\"alias\":\"网关唯一号\",\"type\":\"raw\",\"raw\":\"0x81817F01E524226D\"},{\"name\":\"parent\",\"alias\":\"父级节点\",\"type\":\"uint16\",\"raw\":\"0x0000\",\"converted\":\"0\"},{\"name\":\"port\",\"alias\":\"采集通道\",\"type\":\"uint8\",\"raw\":\"0x01\",\"converted\":\"1\"},{\"name\":\"light\",\"alias\":\"太阳光照(lux)\",\"type\":\"uint32\",\"raw\":\"0x00B01C00\",\"converted\":\"" + value1 + "\"}]}";
            //    b = false;
            //    value1 += add;
            //}
            //else
            //{
            //    jstr = "{\"state\":\"Stream\",\"parser\":\"MXN820\",\"raw\":\"7E000B7D1A000001000000330A5E81817F01E524226DFC000000000000E70D\",\"data\":[{\"name\":\"nodeid\",\"alias\":\"节点编号\",\"type\":\"uint16\",\"raw\":\"0x0100\",\"converted\":\"1\"},{\"name\":\"uid\",\"alias\":\"网关唯一号\",\"type\":\"hex\",\"raw\":\"0x81817F01E524226D\",\"converted\":\"81817F01E524226D\"},{\"name\":\"parent\",\"alias\":\"父级节点\",\"type\":\"uint16\",\"raw\":\"0x0000\",\"converted\":\"0\"},{\"name\":\"port\",\"alias\":\"采集通道\",\"type\":\"uint8\",\"raw\":\"0x00\",\"converted\":\"0\"},{\"name\":\"chargeVol\",\"alias\":\"充电电压(mv)\",\"type\":\"uint16\",\"raw\":\"0x0000\",\"converted\":\"0\"},{\"name\":\"battVol\",\"alias\":\"电池电压(mv)\",\"type\":\"uint16\",\"raw\":\"0xE70D\",\"converted\":\"" + value2 + "\"}]}";
            //    b = true;
            //    value2 += add;
            //}
            //JObject jobj = JObject.Parse(jstr);
            //DataParser.ParseJObj(jobj);
        }