public void Request(ref SensorAcqResult sensorAcq) { if (sensorAcq != null) { sensorAcq.ErrorCode = (int)Errors.SUCCESS; sensorAcq.Request = null; } }
private void dtm_OnSensorCollectMsgHandler(CollectState state, DAC.SensorAcqResult acqResult) { switch (state) { case CollectState.Request: Log.InfoFormat("======> Dtu:{4} sensor:{0} p={1},m={2},channel={3}", acqResult.Sensor.SensorID, acqResult.Sensor.ProtocolType, acqResult.Sensor.ModuleNo, acqResult.Sensor.ChannelNo, acqResult.DtuCode); return; case CollectState.Response: Log.InfoFormat("<====== Dtu:{4} result='sensor:{0} m={5},channel={6} [{1}-{2}]', data = [{3}]", acqResult.Sensor.SensorID, acqResult.ErrorCode, acqResult.ErrorMsg, acqResult.Data == null ? "null" : acqResult.Data.JsonResultData, acqResult.DtuCode, acqResult.Sensor.ModuleNo, acqResult.Sensor.ChannelNo); break; } }
public virtual void ParseResult(ref SensorAcqResult rawData) { string raw = System.Text.Encoding.Default.GetString(rawData.Response); string[] d = raw.Split(','); try { double x = Convert.ToDouble(d[this._idxDX]) * 1000; double y = Convert.ToDouble(d[this._idxDY]) * 1000; double height = Convert.ToDouble(d[this._idxDH]) * 1000; DateTime acqTime = Convert.ToDateTime(d[this._idxTime], this._dtformat); // 减去初值 double iniX = rawData.Sensor.Parameters[0].Value; double iniY = rawData.Sensor.Parameters[1].Value; double iniZ = rawData.Sensor.Parameters[2].Value; if (iniX == 0 || iniY == 0 || iniZ == 0) { // 查询第一条数据? } double cx = x - iniX; double cy = y - iniY; double cz = height - iniZ; // 计算偏角 double drift = rawData.Sensor.Parameters[3].Value; cx *= Math.Cos(drift); cy *= Math.Cos(drift); if (rawData.Sensor.TableColums.Split(',').Length == 3) { rawData.ResponseTime = acqTime; rawData.Data = new Gps3dData(x, y, height, cx, cy, cz) { //Sensor = rawData.Sensor, //AcqTime = acqTime, //ResultCode = Errors.SUCCESS, JsonResultData = string.Format( "{0}\"sensorId\":{1},\"data\":\"X方向位移:{2} mm,Y方向位移:{3} mm,Z方向位移:{4} mm\"{5}", '{', rawData.Sensor.SensorID, x, y, height, '}') }; } else { rawData.ResponseTime = acqTime; rawData.Data = new GpsHeightData(height, cz) { JsonResultData = string.Format( "{0}\"sensorId\":{1},\"data\":\"沉降值:{2} mm\"{3}", '{', rawData.Sensor.SensorID, height, '}') }; } } catch (Exception e) { this._log.Warn("Data parse error", e); rawData.ErrorCode = (int)Errors.ERR_DATA_PARSEFAILED; } }