Exemplo n.º 1
0
 public static bool ImportGeneratorRegisters(H2Generator generator, FacilityContext context)
 {
     if (File.Exists(h2File))
     {
         try {
             var lines = File.ReadAllLines(h2File);
             foreach (var line in lines)
             {
                 var row = line.Split('\t');
                 GeneratorRegister register = new GeneratorRegister();
                 register.Name           = row[0];
                 register.FunctionCode   = RegisterConverters.GetFunctionCode(Convert.ToInt32(row[1]));
                 register.RegisterIndex  = Convert.ToInt32(row[2]);
                 register.RegisterLength = Convert.ToInt32(row[3]);
                 register.DataType       = RegisterConverters.GetH2Type(row[4]);
                 register.Connected      = true;
                 register.Bypass         = false;
                 register.PropertyMap    = register.Name;
                 generator.Registers.Add(register);
                 generator.Registers.Add(register);
             }
             context.SaveChanges();
             return(true);
         } catch {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Exemplo n.º 2
0
        public static object GetH2RegisterValue(GeneratorRegister register, ushort[] regData = null, bool[] coilData = null)
        {
            switch (register.DataType)
            {
            case H2Type.WATERLEVEL: {
                return(coilData[0] ? WaterLevel.WET:WaterLevel.DRY);
            }

            case H2Type.WATERFLOW: {
                return(coilData[0] ? WaterFlow.FLOW : WaterFlow.FLOW);
            }

            case H2Type.ONOFF: {
                return(coilData[0] ? ONOFF.ON : ONOFF.OFF);
            }

            case H2Type.INT32: {
                return((int)regData[0]);
            }

            case H2Type.FAULTSTATE: {
                return((FaultState)regData[0]);
            }

            case H2Type.ENABLESTATE: {
                return((EnableState)regData[0]);
            }

            case H2Type.SYSTEMMODE: {
                return((SystemMode)regData[0]);
            }

            case H2Type.OPERATIONMODE: {
                return((OperationMode)regData[0]);
            }

            case H2Type.SYSTEMSTATE: {
                return((SystemState)regData[0]);
            }

            case H2Type.DOUBLE: {
                return(RegisterConverters.ToDouble(regData[0], regData[1]));
            }

            case H2Type.GENERATORSYSTEMWARNING: {
                if (regData != null)
                {
                    return(RegisterConverters.ToGeneratorSystemWarning(regData));
                }
                else
                {
                    return(null);
                }
            }

            case H2Type.GENERATORSYSTEMERROR: {
                if (regData != null)
                {
                    return(RegisterConverters.ToGeneratorSystemError(regData));
                }
                else
                {
                    return(null);
                }
            }

            default:
                return(null);
            }
        }