public static void UpdateData(string titleOutput, PairDataParam[] values) { InputM inputM = GetInputByTiile(titleOutput); if (inputM == null) { return; } if (inputM.Input.InputType == InputType.COMText) { SendDataSerial(GetSerialPortByPortName(((Service.InputSerial)inputM.Input).PortName), values, ((Service.InputSerial)inputM.Input).SymbolSplitter); } else { UpdateModbusDataStore(inputM, values); } }
private static void UpdateModbusDataStore(InputM inputM, PairDataParam[] values) { for (int i = 0; i < values.Length; i++) { ushort[] uintData = new ushort[2]; float[] floatData = new float[] { values[i].Value }; Buffer.BlockCopy(floatData, 0, uintData, 0, 4); if (inputM.Input.InputType == InputType.COMModbus) { inputM.SlaveSerial.DataStore.HoldingRegisters[i * 2 + 1] = uintData[0]; inputM.SlaveSerial.DataStore.HoldingRegisters[i * 2 + 2] = uintData[1]; } else { inputM.SlaveTCP.DataStore.HoldingRegisters[i * 2 + 1] = uintData[0]; inputM.SlaveTCP.DataStore.HoldingRegisters[i * 2 + 2] = uintData[1]; } } }