Пример #1
0
        /// <summary>
        /// 接收消息
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private async Task OnMqttMessageReceived(MqttApplicationMessageReceivedEventArgs obj)
        {
            var payload = obj.ApplicationMessage.Payload;
            var topic   = obj.ApplicationMessage.Topic;

            //byte[] hexbytes = new byte[] {
            //    0x95,
            //    0x03,
            //    0x0E,
            //    0x56,0x78,
            //    0x01,
            //    0x00,0x88,
            //    0x00,0x1F,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,
            //    0x00,0x00,0x21,0x04,0x00,0x00,0x0E,0x01,0x00,0x20,
            //    0x04,0x00,0x00,0x0F,0x01,0x00,0x0C,0x04,0x00,0x05,
            //    0x09,0x10,0x00,0x0C,0x04,0x00,0x12,0x76,0x90,0x00,
            //    0x16,0x02,0x00,0x78,0x00,0x08,0x00,0x00,0x09,0x00,
            //    0x00,0x19,0x00,0x00,0x07,0x01,0x08,0x00,0x0A,0x00,
            //    0x00,0x04,0x04,0xBC,0x4D,0xDE,0x5B,0x00,0x05,0x04,
            //    0xC7,0xFF,0x70,0x6F,0x00,0x06,0x02,0x07,0x7A,0x00,
            //    0x2E,0x04,0x00,0x00,0x00,0x00,0x00,0x2F,0x04,0x00,
            //    0x00,0x00,0x01,0x00,0x30,0x04,0x00,0x00,0x00,0x02,
            //    0x00,0x31,0x04,0x00,0x00,0x00,0x03,0x00,0x32,0x04,
            //    0x00,0x00,0x00,0x04,0x00,0x33,0x04,0x00,0x00,0x00,
            //    0x05,0x00,0x34,0x04,0x00,0x00,0x00,0x06,0x00,0x35,
            //    0x04,0x00,0x00,0x00,0x07,
            //    0x01,0xE1,
            //    0x59
            //};
            byte[] hexBytes = new byte[]  {
                0x95, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x1F, 0x04, 0x80, 0x05, 0x05, 0x16, 0x00, 0x20, 0x02, 0x20, 0x06, 0x00, 0x21, 0x02, 0x01, 0x05, 0x00, 0x0C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x78, 0x00, 0x08, 0x0F, 0x38, 0x36, 0x31, 0x34, 0x31, 0x30, 0x30, 0x34, 0x37, 0x36, 0x38, 0x39, 0x36, 0x30, 0x38, 0x00, 0x09, 0x0F, 0x34, 0x36, 0x30, 0x30, 0x31, 0x33, 0x31, 0x30, 0x37, 0x37, 0x30, 0x37, 0x31, 0x35, 0x35, 0x00, 0x19, 0x00, 0x00, 0x07, 0x02, 0x00, 0x14, 0x00, 0x0A, 0x04, 0x63, 0x74, 0x6E, 0x62, 0x00, 0x04, 0x0E, 0x31, 0x30, 0x2E, 0x32, 0x31, 0x32, 0x2E, 0x31, 0x34, 0x31, 0x2E, 0x31, 0x30, 0x35, 0x00, 0x05, 0x04, 0x7A, 0x70, 0xFF, 0xC7, 0x00, 0x06, 0x02, 0x07, 0x5B, 0x00, 0x2E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x59
            };

            byte[] xjsj = new byte[] {
                0x95, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0xE4, 0x06, 0x0B, 0x04, 0x0B, 0x04, 0x16, 0x0E, 0x00, 0x03, 0x00, 0x00, 0x3B, 0x00, 0x0D, 0x01, 0xFF, 0x00, 0x0F, 0x02, 0x00, 0xD5, 0x00, 0x0E, 0x02, 0x01, 0xFC, 0x00, 0x10, 0x02, 0x00, 0x6A, 0x00, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x13, 0x04, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x12, 0x04, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x1B, 0x02, 0x00, 0x1E, 0x00, 0x15, 0x02, 0x00, 0xF0, 0x00, 0x02, 0x01, 0x12, 0x00, 0x28, 0x04, 0x00, 0x00, 0x00, 0x04, 0x52, 0x01, 0x59
            };

            try
            {
                if (topic.Contains("cmdstr"))
                {
                    string payloadstr = Encoding.UTF8.GetString(payload);
                    string padleftStr = string.Empty;
                    payloadstr = payloadstr.Replace("\0", string.Empty);
                    logger.Info(payloadstr);
                    payload = HexFormatHelper.StringConvertHexBytes(payloadstr);
                }
                var uploadOrigin = NBReceivedHelper.AnalyzeMessage(payload);
                if (uploadOrigin != null)
                {
                    if (uploadOrigin.commandCode == 0x04 || uploadOrigin.commandCode == 0x0E)//参数设置和数据上报
                    {
                        uploadOrigin.uploadEntitys = new Dictionary <byte, Dictionary <byte, UploadEntity> >();
                        NBReceivedHelper.GetUploadEntity(uploadOrigin.uploadEntitys, uploadOrigin.data, 0);
                        await UploadContext.GetInstance().GetUploadSchedule().Run(uploadOrigin);
                    }
                }
            }
            catch (Exception ex)
            {
                var strPayLoad = HexFormatHelper.HexBytesConvertString(payload);
                logger.Error(this.GetType().FullName + " Topic:" + topic + ",Payload:" + strPayLoad + ex.ToString());
                UPLogger.Show(ex.Message);
                //throw;
            }
        }