/// <summary> /// /// </summary> /// <param name="d"></param> private void ExecuteDeviceDataTrans(Device d) { if (d.CheckRemoteID()) { Debug.Assert(d.RemoteID > 0, "device.RemoteID must > 0"); while (true) { // 1. get remote device last data datetime // RequestResult r = this.Request.Request(this.ClientID, RequestNameEnum.GetDeviceLastDataDateTime, d.RemoteID); if (r.ResultEnum == RequestResultEnum.OK) { DateTime lastDT = (DateTime)r.Result; LogGetLastDataDateTime(d.RemoteID, lastDT); // 2. get later data then last datetime // DataTable tbl = this.DB.GetWLDataTable(d.ID, lastDT); // 3. trans to remote // object state = new object[] { d.RemoteID, tbl }; RequestResult r2 = this.Request.Request(this.ClientID, RequestNameEnum.SetWLData, state); if (r2.ResultEnum != RequestResultEnum.OK) { //Log("SetWLData fail"); //Log(r2.ToString()); LogSetWLDataFail(d.RemoteID, r2.ResultEnum); } else { int count = tbl.Rows.Count; DateTime b = DateTime.MinValue; DateTime e = DateTime.MinValue; if (count > 0) { b = Convert.ToDateTime(tbl.Rows[0]["DT"]); e = Convert.ToDateTime(tbl.Rows[count - 1]["DT"]); } LogSetLWDataSuccess(d.RemoteID, count, b, e); } // 4. if trans count > 0 continue if (tbl.Rows.Count < 30) break; } else { LogGetLastDataDateTimeError(d.RemoteID); } } } }