private static List <List <byte> > CreateRequestCommandByteStreamForFunNum05(List <DataPoint> dataPoints) { List <List <byte> > requestCommandByteStreams = new List <List <byte> >(); FunNum05CustomerRequestData customerRequestData = new FunNum05CustomerRequestData(); //功能码05是设置单个线圈的值,所以只有一个寄存器 DataPoint firstDataPoint = dataPoints.First(); int theFirstRegisterAddress = dataPoints.First().StartRegisterAddress; customerRequestData.DeviceAddress = (byte)firstDataPoint.DeviceAddress; customerRequestData.FunctionNum = FunctionNumType.FunctionNum05; customerRequestData.CoilAddress = (ushort)theFirstRegisterAddress; if (Math.Abs(firstDataPoint.ValueToSet) > 0) { customerRequestData.ON = true; } else { customerRequestData.ON = false; } requestCommandByteStreams = TCPRequesCommandCreator.CreateRequestCommandByteStream(customerRequestData); return(requestCommandByteStreams); }
private static List <List <byte> > CreateRequestCommandByteStreamsForFunNum05(ICustomerRequestData customerRequestData) { List <List <byte> > requesCommandByteStreams = new List <List <byte> >(); FunNum05CustomerRequestData funNum05CustomerRequestData = (FunNum05CustomerRequestData)customerRequestData; List <FunNum05RequestDataBase> funNum05RequestDataBases = funNum05CustomerRequestData.CovertToFunNum05RequestDataBases(); foreach (FunNum05RequestDataBase item in funNum05RequestDataBases) { FunNum05RequestDataRTU funNum05RequestDataRTU = new FunNum05RequestDataRTU(); funNum05RequestDataRTU.FunNum05RequestDataBase = item; requesCommandByteStreams.Add(funNum05RequestDataRTU.ToByteList()); } return(requesCommandByteStreams); }