private static List <List <byte> > CreateRequestCommandByteStreamForFunNum15(List <DataPoint> dataPoints) { List <List <byte> > requestCommandByteStreams = new List <List <byte> >(); FunNum15CustomerRequestData customerRequestData = new FunNum15CustomerRequestData(); DataPoint firstDataPoint = dataPoints.First(); int theFirstRegisterAddress = dataPoints.First().StartRegisterAddress; int theLastRegisterAddress = dataPoints.Last().StartRegisterAddress + RegisterCountCalculator.GetRegisterCount(dataPoints.Last().DataPointDataType) - 1; int registerCount = theLastRegisterAddress - theFirstRegisterAddress + 1; customerRequestData.DeviceAddress = (byte)firstDataPoint.DeviceAddress; customerRequestData.FunctionNum = FunctionNumType.FunctionNum15; customerRequestData.StartingCoilAddress = (ushort)theFirstRegisterAddress; customerRequestData.NumOfCoilToForce = (ushort)registerCount; foreach (var dataPoint in dataPoints) { if (Math.Abs(dataPoint.ValueToSet) > 0) { customerRequestData.ForceData.Add(true); } else { customerRequestData.ForceData.Add(false); } } requestCommandByteStreams = TCPRequesCommandCreator.CreateRequestCommandByteStream(customerRequestData); return(requestCommandByteStreams); }
public void CreateRequestCommandByteStreamForFunNum15() { FunNum15CustomerRequestData customerRequestData = new FunNum15CustomerRequestData(); customerRequestData.DeviceAddress = 1; customerRequestData.FunctionNum = FunctionNumType.FunctionNum15; customerRequestData.StartingCoilAddress = 0; //customerRequestData.NumOfCoilToForce = 20; customerRequestData.ForceData = new List <bool>() { true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, }; List <List <byte> > rtuRequesCmdByteStreams = RTURequesCommandCreator.CreateRequestCommandByteStream <bool>(customerRequestData); }
private static List <List <byte> > CreateRequestCommandByteStreamsForFunNum15(ICustomerRequestData customerRequestData) { List <List <byte> > requesCommandByteStreams = new List <List <byte> >(); FunNum15CustomerRequestData funNum15CustomerRequestData = (FunNum15CustomerRequestData)customerRequestData; List <FunNum15RequestDataBase> funNum15RequestDataBases = funNum15CustomerRequestData.CovertToFunNum15RequestDataBases(); foreach (FunNum15RequestDataBase item in funNum15RequestDataBases) { FunNum15RequestDataRTU funNum15RequestDataRTU = new FunNum15RequestDataRTU(); funNum15RequestDataRTU.FunNum15RequestDataBase = item; requesCommandByteStreams.Add(funNum15RequestDataRTU.ToByteList()); } return(requesCommandByteStreams); }