/// <summary> /// 엘리베이터에서 수신한 데이터를 체크하여 변동 사항 체크 메소드 /// </summary> /// <param name="status"></param> public Tuple <StatusNotification, DateTime> ReceiveStatus(StatusNotification status) { UnitData unitData = null; //호기 추출 var unitName = Encoding.UTF8.GetString(status.Unit); //호기 정보 조회 unitDataCollection.TryGetValue(unitName, out unitData); Tuple <StatusNotification, DateTime> returnResult = null; //기존에 호기 정보가 있다면, status 비교 if (unitData != null) { var recevieBytesData = Encoding.UTF8.GetString(status.GetByte()); var previewsBytesData = Encoding.UTF8.GetString(unitData.status.GetByte()); if (previewsBytesData.Substring(6, 5) != recevieBytesData.Substring(6, 5)) { unitDataCollection[unitName].recevieDate = DateTime.Now; unitDataCollection[unitName].status = status; returnResult = new Tuple <StatusNotification, DateTime>(status, unitDataCollection[unitName].recevieDate); } } else { UnitData unit = new UnitData(); unit.unitName = unitName; unit.recevieDate = DateTime.Now; unit.status = status; unitDataCollection.TryAdd(unitName, unit); returnResult = new Tuple <StatusNotification, DateTime>(status, unit.recevieDate); } return(returnResult); }