public static DbModel.Location.Data.LocationCardPosition ToDbModel( this Location.TModel.Location.Data.TagPosition item1) { if (item1 == null) { return(null); } var item2 = new DbModel.Location.Data.LocationCardPosition(); item2.Id = item1.Tag; item2.X = item1.X; item2.Y = item1.Y; item2.Z = item1.Z; item2.DateTime = TimeConvert.ToDateTime(item1.Time); item2.DateTimeStamp = item1.Time; item2.Power = item1.Power; item2.Number = item1.Number; item2.Flag = item1.Flag; item2.Archors = item1.Archors; item2.AreaId = item1.AreaId; item2.AreaState = item1.AreaState; item2.PowerState = item1.PowerState; item2.MoveState = item1.MoveState; return(item2); }
public void SetTime() { DateTime now = DateTime.Now; DateTimeStamp = TimeConvert.ToStamp(now); DateTime now2 = TimeConvert.ToDateTime(DateTimeStamp); }
private static DevAlarm CreateDevAlarm(events recv, DevInfo di, long lTimeStamp, Abutment_DevAlarmLevel adLevel) { DevAlarm da = new DevAlarm(); da.Abutment_Id = recv.id; da.Title = recv.title; da.Msg = recv.msg; da.Level = adLevel; da.Code = recv.code; da.Src = (Abutment_DevAlarmSrc)recv.src; da.DevInfoId = di.Id; da.DevInfo = di;//这个可能导致设备重复,奇怪 da.Device_desc = recv.device_desc; da.AlarmTime = TimeConvert.ToDateTime(lTimeStamp); da.AlarmTimeStamp = lTimeStamp; return(da); }
public bool Parse(string info) { try { string[] parts = info.Split(','); int length = parts.Length; if (length <= 1) { return(false); //心跳包回拨 } Code = parts[0]; X = float.Parse(parts[1]); //平面位置 Z = float.Parse(parts[2]); //平面位置 Y = float.Parse(parts[3]); //高度位置,为了和Unity坐标信息一致,Y为高度轴 Time = long.Parse(parts[4]); DateTime = TimeConvert.ToDateTime(Time / 1000); if (length > 5) { Power = int.Parse(parts[5]); } if (length > 6) { Number = int.Parse(parts[6]); } if (length > 7) { Flag = parts[7]; } if (length > 8) { Archors = parts[8].Split('@').ToList(); } return(true); } catch (Exception ex) { LogEvent.Info(ex.ToString()); return(false); } }
public bool Parse(string info) { try { string[] parts = info.Split(','); int length = parts.Length; if (length <= 1) { return(false); //心跳包回拨 } Code = parts[0]; X = double.Parse(parts[1]); Y = double.Parse(parts[2]); Z = double.Parse(parts[3]); DateTimeStamp = long.Parse(parts[4]); DateTime = TimeConvert.ToDateTime(DateTimeStamp / 1000); if (length > 4) { Power = int.Parse(parts[5]); } if (length > 5) { Number = int.Parse(parts[6]); } if (length > 6) { Flag = parts[7]; } return(true); } catch (Exception ex) { LogEvent.Error(ex); return(false); } }
public string GetText(float offsetX, float offsetY, int timeMode) { DateTime now = DateTime.Now; long t = 0; if (timeMode == 0)//当前时间作为发送时间 { t = TimeConvert.ToStamp(now); } else if (timeMode == 1)//当前日期作为发送时间 { DateTime t1 = TimeConvert.ToDateTime(DateTimeStamp); DateTime tNew = new DateTime(now.Year, now.Month, now.Day, t1.Hour, t1.Minute, t1.Second, t1.Millisecond); t = TimeConvert.ToStamp(tNew); } double x = (X - offsetX) / AppSetting.PositionPower; double y = (Z - offsetY) / AppSetting.PositionPower; double z = Y / AppSetting.PositionPower; return(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", Code, x, y, z, t, Power, Number, Flag, ArchorsText)); }
public override bool TickFunction() { try { DateTime now = DateTime.Now; JsonSerializerSettings setting = new JsonSerializerSettings(); setting.NullValueHandling = NullValueHandling.Ignore; Bll db = Bll.NewBllNoRelation(); List <EntranceGuardCard> cardPersons = db.EntranceGuardCards.ToList(); string strsql = string.Format(@"select Abutment_Id from deventranceguardcardactions where OperateTime>'{0}' ", now.AddDays(-3)); List <int> cardHisListInt = db.EntranceGuardCardHistorys.GetListIntBySql(strsql); foreach (EntranceGuardCard card in cardPersons) { string cardId = card.Abutment_Id.ToString(); DateTime beginTime = now.AddDays(-20); string begin_date = beginTime.Year.ToString() + beginTime.Month.ToString() + beginTime.Day.ToString(); string end_date = now.Year.ToString() + now.Month.ToString() + now.Day.ToString(); string url = "http://" + Ip + ":" + Port + "/api/cards/" + cardId + "/actions"; string result = WebApiHelper.GetString("http://120.25.195.214:18000/api/cards/" + cardId + "/actions?begin_date=" + begin_date + "&end_date=" + end_date); Message <cards_actions> message = JsonConvert.DeserializeObject <Message <cards_actions> >(result, setting); List <cards_actions> cards_actionsList = message.data; if (cards_actionsList != null && cards_actionsList.Count > 0) { //保存到门禁历史记录里 List <DevEntranceGuardCardAction> AddcardHisList = new List <DevEntranceGuardCardAction>(); List <DevEntranceGuardCardAction> EditcardHisList = new List <DevEntranceGuardCardAction>(); foreach (cards_actions cardAction in cards_actionsList) { DevEntranceGuardCardAction cardHis = new DevEntranceGuardCardAction(); cardHis.Abutment_Id = cardAction.id; cardHis.OperateTimeStamp = cardAction.t; cardHis.OperateTime = TimeConvert.ToDateTime((long)cardAction.t * 1000); cardHis.code = cardAction.code; cardHis.description = cardAction.description; cardHis.device_id = cardAction.device_id; cardHis.card_code = cardAction.card_code; cardHis.EntranceGuardCardId = card.Id; cardHis.PersonnelAbutment_Id = card.PersonnelAbutment_Id; if (cardHisListInt.Contains(cardAction.id)) { // EditcardHisList.Add(cardHis); // bool result1= db.DevEntranceGuardCardActions.Edit(cardHis); } else { AddcardHisList.Add(cardHis); // bool result2 = db.DevEntranceGuardCardActions.Add(cardHis); } } bool addResult = db.DevEntranceGuardCardActions.AddRange(AddcardHisList); // bool editResult = db.DevEntranceGuardCardActions.EditRange(EditcardHisList); Log.Info(string.Format("CardsActionsThread:保存门禁历史记录结果,门禁卡号:{0},添加:{1}条,结果:{2}", cardId, AddcardHisList.Count, addResult)); } } } catch (Exception ex) { Log.Error("CardsActionsThread:" + ex.ToString()); } return(true); }
private bool ParseText(string info, float offsetX, float offsetY) { try { _info = info; string[] parts = info.Split(new[] { ',' }); int length = parts.Length; if (length <= 1) { return(false); //心跳包回拨 } Code = parts[0]; //if (Code.StartsWith("1")) //{ // LogEvent.Info("RealPos,", "Code.StartsWith(1):" + info); //} if (parts[1] == "-1.#IND0") { parts[1] = "-1.0"; } if (parts[2] == "-1.#IND0") { parts[2] = "-1.0"; } float x = parts[1].ToFloat() * AppSetting.PositionPower; float y = parts[2].ToFloat() * AppSetting.PositionPower; if (x < offsetX) { X = x + offsetX; //平面位置 Z = y + offsetY; //平面位置 } else //模拟数据是可以没有偏移量的 看模拟程序的版本 { X = x; Z = y; } Y = parts[3].ToFloat() * AppSetting.PositionPower;//高度位置,为了和Unity坐标信息一致,Y为高度轴 DateTimeStamp = parts[4].ToLong(); DateTime = TimeConvert.ToDateTime(DateTimeStamp); //TimeSpan time1 = DateTime.Now - DateTime; //long DateTimeStamp2 = TimeConvert.DateTimeToTimeStamp(DateTime); if (length > 5) { Power = parts[5].ToInt(); if (Power >= AppSetting.LowPowerFlag) { PowerState = 0; } else { PowerState = 1; } } if (length > 6) { Number = parts[6].ToInt(); } if (length > 7) { Flag = parts[7]; } if (length > 8) { ArchorsText = parts[8]; Archors = ArchorsText.Split(new[] { '@' }, StringSplitOptions.RemoveEmptyEntries).ToList(); if (Archors.Count > 1) { Console.Write("Archors.Count > 1"); } IsSimulate = ArchorsText == "@0000" || string.IsNullOrEmpty(ArchorsText); } //if (Code == "092D" && (ArchorsText == null || Archors == null)) //{ // int i = 0; //} if (length > 8) { } //else if(length == 8) //{ //} else { LogEvent.Info("位置信息数据可能被截断!!!!:" + info); //return false; } return(true); } catch (Exception ex) { LogEvent.Info("定位数据解析失败:" + info + "\n" + ex.ToString()); return(false); } }
/// <summary>Handles a message.</summary> public void HandleMessage(IMessage message) { string msg = Encoding.UTF8.GetString(message.Body); events recv = JsonConvert.DeserializeObject <events>(msg); if (recv == null || recv.raw_id == null || recv.raw_id == "" || recv.src != 1) { return; } DevInfo di = DevList.Find(p => p.Abutment_DevID == recv.raw_id); if (di == null) { return; } bool bFlag = false; int nLevel = (int)recv.level; Abutment_DevAlarmLevel adLevel = (Abutment_DevAlarmLevel)nLevel; long lTimeStamp = recv.t * 1000; if (nLevel == 0) { adLevel = Abutment_DevAlarmLevel.未定; } DevAlarm da = DaList.Find(p => p.DevInfoId == di.Id && p.AlarmTimeStamp == lTimeStamp); if (da == null) { if (recv.state == 0) { da = new DevAlarm(); da.Abutment_Id = recv.id; da.Title = recv.title; da.Msg = recv.msg; da.Level = adLevel; da.Code = recv.code; da.Src = (Abutment_DevAlarmSrc)recv.src; da.DevInfoId = di.Id; da.Device_desc = recv.device_desc; da.AlarmTime = TimeConvert.ToDateTime(lTimeStamp); da.AlarmTimeStamp = lTimeStamp; bll.DevAlarms.Add(da); DaList.Add(da); bFlag = true; } } else { if (recv.state == 1 || recv.state == 2) { DevAlarmHistory da_history = da.RemoveToHistory(); DaList.Remove(da); bll.DevAlarms.DeleteById(da.Id); bll.DevAlarmHistorys.Add(da_history); da.Level = Abutment_DevAlarmLevel.无; bFlag = true; } else if (adLevel != da.Level) { da.Level = adLevel; da.Title = recv.title; da.Msg = recv.msg; bll.DevAlarms.Edit(da); bFlag = true; } } if (bFlag) { OnDevAlarmReceived(da); } return; }