Exemple #1
0
        public virtual IDataCollect CreateStatusDataCollect(string groupName, List <AddressMap> maps)
        {
            var statusAddressMaps = maps.Where(m => m.DataCategory == DataCategory.Status).ToList();

            if (statusAddressMaps?.Count > 0)
            {
                int statusInterval = 1000;
                if (Controller?.MetaDatas?.ContainsKey("StatusInterval") == true)
                {
                    int.TryParse(Controller.MetaDatas["StatusInterval"], out statusInterval);
                }
                var statusTimerDataCollect = new TimerDataCollect(Driver, statusAddressMaps, statusInterval, $"Status-{groupName}");

                return(statusTimerDataCollect);
            }

            return(null);
        }
Exemple #2
0
        public virtual IDataCollect CreateAlarmDataCollect(string groupName, List <AddressMap> maps)
        {
            var alarmAddressMaps = maps.Where(m => m.DataCategory == DataCategory.Alarm).ToList();

            if (alarmAddressMaps?.Count > 0)
            {
                int alarmInterval = 10000;
                if (Controller?.MetaDatas?.ContainsKey("AlarmInterval") == true)
                {
                    int.TryParse(Controller.MetaDatas["AlarmInterval"], out alarmInterval);
                }
                var alarmTimerDataCollect = new TimerDataCollect(Driver, alarmAddressMaps, alarmInterval, $"Alarm-{groupName}");

                return(alarmTimerDataCollect);
            }

            return(null);
        }
Exemple #3
0
        public virtual IDataCollect CreateDataTypeDataCollect(string groupName, List <AddressMap> maps)
        {
            var dataAddressMaps = maps.Where(m => m.DataCategory == DataCategory.Data).ToList();

            if (dataAddressMaps?.Count > 0)
            {
                int dataInterval = 5000;
                if (Controller?.MetaDatas?.ContainsKey("DataInterval") == true)
                {
                    int.TryParse(Controller.MetaDatas["DataInterval"], out dataInterval);
                }
                var dataTimerDataCollect = new TimerDataCollect(Driver, dataAddressMaps, dataInterval, $"Data-{groupName}");

                return(dataTimerDataCollect);
            }

            return(null);
        }
Exemple #4
0
        public async Task Modbus_ReadAddressMap_Test()
        {
            string deviceName = "Device";
            var    controller = new Controller {
                Name = deviceName
            };
            var addressMaps = new List <AddressMap>
            {
                new AddressMap("Lami", "1", "1", 1, 0, null, 1, dataType: DataType.Word16, functionCode: FunctionCode.HoldingRegister),
                new AddressMap("Lami", "2", "2", 1, 0, null, 1, dataType: DataType.Word16, functionCode: FunctionCode.HoldingRegister),
                new AddressMap("Lami", "3", "3", 1, 0, null, 1, dataType: DataType.Word16, functionCode: FunctionCode.HoldingRegister),
                new AddressMap("Lami", "4", "4", 1, 0, null, 1, dataType: DataType.Word16, functionCode: FunctionCode.HoldingRegister),
                new AddressMap("Lami", "5", "5", 1, 0, null, 1, dataType: DataType.Word16, functionCode: FunctionCode.HoldingRegister),
                new AddressMap("Lami", "6", "7.1", 1, 0, null, 1, dataType: DataType.Bit, functionCode: FunctionCode.Coil),
                new AddressMap("Lami", "7", "7.2", 1, 0, null, 1, dataType: DataType.Bit, functionCode: FunctionCode.Coil),
                new AddressMap("Lami", "8", "7.3", 1, 0, null, 1, dataType: DataType.Bit, functionCode: FunctionCode.Coil),
            };
            //var client = new ControllerManager(controller, addressMaps);

            //await client.ReadAddressMap(addressMaps, true);
            var timer = new TimerDataCollect(new FakeDriver(), addressMaps, 1000, null);
            var a     = timer.GroupingAddressMapsByFunctionCode(addressMaps);
        }