Example #1
0
        private void ParseMonitorData(IProtocolPackage <string> package)
        {
            var ksDevice = ((KsDustClientSource)package.ClientSource).Device;

            if (!package.Command.DeliverParams.Contains("Store"))
            {
                return;
            }
            var monitorData = new KsDustMonitorData
            {
                DeviceId          = Guid.Parse(package.ClientSource.ClientIdentity),
                ProjectId         = ksDevice.ProjectId,
                EnterpriseId      = ksDevice.Project.EnterpriseId,
                DistrictId        = ksDevice.Project.DistrictId,
                ParticulateMatter = double.Parse(package.GetDataValueString(Properties.Resource.TSP)),
                Pm25          = double.Parse(package.GetDataValueString(Properties.Resource.PM25)),
                Pm100         = double.Parse(package.GetDataValueString(Properties.Resource.PM100)),
                Noise         = double.Parse(package.GetDataValueString(Properties.Resource.NOISE)),
                Templeture    = double.Parse(package.GetDataValueString(Properties.Resource.TEMPERATURE)),
                Humidity      = double.Parse(package.GetDataValueString(Properties.Resource.HUMIDITY)),
                WindSpeed     = double.Parse(package.GetDataValueString(Properties.Resource.WINDSPEED)),
                WindDirection = (int)double.Parse(package.GetDataValueString(Properties.Resource.WINDDIRECTION)),
                MonitorType   = ParseMonitorType(package["CmdByte"].ComponentValue),
                UpdateTime    = DateTime.Now
            };
            var ctx = new KsDustDbContext();

            ctx.KsDustMonitorDatas.Add(monitorData);
            ctx.SaveChanges();
            ctx.Dispose();
        }