示例#1
0
        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);
            }
        }
示例#2
0
 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];
         }
     }
 }