Ejemplo n.º 1
0
        //0000 0071 前四个字节暂时不用
        public override void execute(Tag tag, String devCode, CellTag cellTag,
                                     SystemDateTag systemDateTag, CasicSession session)
        {
            //TODO LIST:解析井盖传感器数据并保存
            UploadTag wellTag    = tag as UploadTag;
            int       itv        = wellTag.CollectInter;
            String    collecTime = wellTag.CollectTime;
            int       len        = wellTag.Len;
            String    dataValue  = wellTag.DataValue;

            session.Logger.Info("井盖数据上传TAG:oid:" + wellTag.Oid + " 采集间隔: " +
                                itv + "采集时间:" + collecTime + "上传数值:" + dataValue);

            int num = len / 1; //上传的井盖数据个数
            List <Model.WellSensorInfo> djs = new List <WellSensorInfo>();

            //井盖数据tag之前,无系统日期tag数据
            // DateTime baseTime = Convert.ToDateTime(CasicCmd.currentSystemDate + " " + collecTime);
            for (int i = 0; i < num; i++)
            {
                //上传的有状态数据、设备ID、可能有电池电量等数据
                WellSensorInfo wellInfo = new WellSensorInfo();
                wellInfo.DEVID   = devCode;
                wellInfo.LOGTIME = DateTime.Now;
                byte   btStatus = byte.Parse(dataValue, System.Globalization.NumberStyles.HexNumber);
                string descn    = "";
                switch (btStatus)
                {
                case 0:
                    descn = "状态正常";
                    new BLL.WellInfo().saveDeviceStatus(wellInfo.DEVID, WellAlarmEnum.NORMAL);
                    break;

                case 1:
                    descn = "井盖开启";
                    saveWellAlarm(wellInfo.DEVID, session);
                    break;

                case 2:
                    descn = "时钟故障";
                    new BLL.WellInfo().saveDeviceStatus(wellInfo.DEVID, WellAlarmEnum.SYS_ERROR);
                    break;

                case 3:
                    descn = "低电压";
                    new BLL.WellInfo().saveDeviceStatus(wellInfo.DEVID, WellAlarmEnum.BATTERY_LOW);
                    break;

                default:
                    descn = "未知状态";
                    break;
                }
                wellInfo.DESCN  = descn;
                wellInfo.STATUS = btStatus + "";
                djs.Add(wellInfo);
            }
            new BLL.WellInfo().insert(djs);
            session.Logger.Info("井盖数据保存成功");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// An internal function to bind values parameters for insert
        /// </summary>
        /// <param name="parms">Database parameters</param>
        /// <param name="noise">Values to bind to parameters</param>
        private void SetAdapterParameters(OracleParameter[] parms, WellSensorInfo wellInfo)
        {
            /*
             *  new OracleParameter(PARM_DEVID, OracleType.VarChar, 19),
             *                          new OracleParameter(PARM_CELL, OracleType.VarChar, 255),
             *                          new OracleParameter(PARM_DESCN, OracleType.VarChar, 255),
             *                          new OracleParameter(PARM_STATUS, OracleType.VarChar, 255),
             *                          new OracleParameter(PARM_LOGTIME, OracleType.DateTime)
             */
            parms[0].Value = wellInfo.DEVID;

            if (null != wellInfo.CELL)
            {
                parms[1].Value = wellInfo.CELL;
            }
            else
            {
                parms[1].Value = DBNull.Value;
            }

            if (null != wellInfo.DESCN)
            {
                parms[2].Value = wellInfo.DESCN;
            }
            else
            {
                parms[2].Value = DBNull.Value;
            }

            if (null != wellInfo.STATUS)
            {
                parms[3].Value = wellInfo.STATUS;
            }
            else
            {
                parms[3].Value = DBNull.Value;
            }

            if (null != wellInfo.LOGTIME)
            {
                parms[4].Value = wellInfo.LOGTIME;
            }
            else
            {
                parms[4].Value = DBNull.Value;
            }
        }