Exemplo n.º 1
0
        private void Handle0x7030(TX300 obj, TB_Tracker tracker)
        {
            _0x7030 x7030 = new _0x7030();

            x7030.Content = obj.MsgContent;
            x7030.Unpackage();
            string provider = "gps";
            var    bin      = "0000000000000000";

            if (obj.TerminalType == TerminalTypes.TX10GAPP)
            {
                bin = CustomConvert.IntToDigit(obj.PackageID, CustomConvert.BIN, 8) +
                      CustomConvert.IntToDigit(obj.TotalPackage, CustomConvert.BIN, 8);
            }
            int cnt = 0;

            foreach (var pos in x7030.Positions)
            {
                if (pos.Available)
                {
                    provider = GetTrackerProvider(bin[cnt]);//bin[cnt] == '0' ? "gps" : "network";
                    SaveTrackerPosition(obj.TerminalID, (null == tracker ? "" : tracker.CarNumber),
                                        (null == tracker ? -1 : tracker.id), provider, pos, "Tracking", tracker.LastActionAt.Value);
                }
                cnt++;
            }
        }
Exemplo n.º 2
0
 private void Handle0x7040(TX300 obj, TB_Tracker tracker)
 {
     //if (null != tracker) { UpdateTrackerCSQ(obj.MsgContent[0], tracker.id); }
 }
Exemplo n.º 3
0
        /// <summary>
        /// 处理报警信息
        /// </summary>
        /// <param name="obj"></param>
        private void Handle0x7020(TX300 obj, TB_Tracker tracker, TrackerBLL bll)
        {
            _0x7020 x7020 = new _0x7020();

            x7020.Content = obj.MsgContent;
            x7020.Unpackage();

            var alarm = x7020.AlarmBIN;

            if (null != tracker)
            {
                bll.Update(f => f.id == tracker.id, act =>
                {
                    act.CSQ = x7020.CSQ;
                    if (alarm[0] == '1')
                    {
                        // 终端后备电池耗光报警
                        act.BatteryAlarm = tracker.LastActionAt;
                    }
                    else if (alarm[1] == '1')
                    {
                        // 停车超时报警
                        act.ParkingAlarm = tracker.LastActionAt;
                    }
                    else if (alarm[2] == '1')
                    {
                        // 充电接线断开报警
                        act.ChargingAlarm = tracker.LastActionAt;
                    }
                    else if (alarm[2] == '0')
                    {
                        // 充电接线链接报警
                        act.ChargingAlarm = null;
                    }
                });
            }
            string type = "";

            if (obj.TerminalType == TerminalTypes.TX10GAPP)
            {
                // app 端报告的报警信息
                type = ((TX10GAlarms)x7020.Alarm).ToString().Replace("TX10GAlarms", "");
            }
            else
            {
                // tx10g 报告的报警信息
                type = alarm[0] == '1' ? "Battery OFF" :
                       (alarm[1] == '1' ? "Parking Timeout" :
                        (alarm[2] == '1' ? "Charge OFF" : (alarm[2] == '0' ? "Charge ON" : "Unknown")));
            }
            string provider = "gps";

            if (obj.TerminalType == TerminalTypes.TX10GAPP)
            {
                // tx10g app 的 packageid 和 packagelength 两个字节可以当作 provider 来区分
                provider = GetTrackerProvider(obj.PackageID);
            }
            if (x7020.Position.Available)
            {
                SaveTrackerPosition(obj.TerminalID, (null == tracker ? "" : tracker.CarNumber),
                                    (null == tracker ? -1 : tracker.id), provider, x7020.Position, type, tracker.LastActionAt.Value);
            }
        }