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++; } }
private void Handle0x7040(TX300 obj, TB_Tracker tracker) { //if (null != tracker) { UpdateTrackerCSQ(obj.MsgContent[0], tracker.id); } }
/// <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); } }