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); } }
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); } }