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); }
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); }
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); }
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); }