コード例 #1
0
            /// <summary>
            /// 胸部推举机上报解析
            /// </summary>
            /// <param name="body"></param>
            public void PaserXall(byte[] body, string idCard, DeviceType deviceType)
            {
                //运动强度
                byte strength = ProtocolUtil.BcdToInt(body[1]);
                //运动时间 1/100秒
                Int32 time = BitConverter.ToInt32(body, 2);

                time = IPAddress.NetworkToHostOrder(time);
                //总移动距离 毫米
                Int32 distance = BitConverter.ToInt32(body, 6);

                distance = IPAddress.NetworkToHostOrder(distance);
                //总功 1/100 焦耳
                Int32 energy = BitConverter.ToInt32(body, 10);

                energy = IPAddress.NetworkToHostOrder(energy);

                //消耗热量 1/100 卡路里
                Int32 heat = BitConverter.ToInt32(body, 14);

                heat = IPAddress.NetworkToHostOrder(heat);
                //指数标识 0 正数 1 负数
                //指数值 1/100
                Int32 singer = BitConverter.ToInt32(body, 19);

                singer = IPAddress.NetworkToHostOrder(singer);
                singer = body[18] == 0x00 ? singer : -1 * singer;
                //动作节奏 0没问题 1 有些许问题 2 有问题
                byte rhythem = body[23];
                //使用者感想
                string think = ProtocolUtil.GetEndString(body, 24);

                PrescriptionResult result = new PrescriptionResult();

                //自觉运动强度
                result.PR_SportStrength     = (byte)(strength - 5);
                result.PR_Time1             = time / 100.0;
                result.PR_Distance          = distance;
                result.PR_CountWorkQuantity = energy / 100.0;
                result.PR_Cal          = heat / 100.0;
                result.PR_Index        = singer / 100.0;
                result.PR_Evaluate     = rhythem;
                result.PR_UserThoughts = think;
                result.Gmt_Create      = DateTime.Now;
                result.Gmt_Modified    = result.Gmt_Create;

                StringBuilder sb = new StringBuilder();

                sb.Append("运动强度:").Append(strength).Append("运动时间:").Append(time).Append("总移动距离:").Append(distance).Append("总功:").Append(energy)
                .Append("消耗热量").Append(heat).Append("指数值:").Append(singer).Append("动作节奏:").Append(rhythem);
                logger.Info("训练上报的解析结果:" + sb.ToString());
                TrainService trainService = new TrainService();

                // 存数据库
                trainService.AddPrescriptionResult(idCard, result, deviceType);
            }