public bool AddReading(H2Generator generator) { try { //using var this._context = new FacilityContext(); var device = this._context.ModbusDevices.Find(generator.Id); if (device != null) { generator.LastRead.GeneratorId = generator.Id; this._context.GeneratorSystemErrors.Add(generator.LastRead.AllSystemErrors); this._context.GeneratorSystemWarnings.Add(generator.LastRead.AllSystemWarnings); generator.SystemState = generator.LastRead.SystemState; generator.OperationMode = generator.LastRead.OperationMode; this._context.Entry(device).State = EntityState.Modified; this._context.H2GenReadings.Add(generator.LastRead); this._context.SaveChanges(); //GC.Collect(); return(true); } else { return(false); } } catch (Exception e) { StringBuilder builder = new StringBuilder(); builder.AppendFormat("{0} Save Failed", generator.Identifier) .AppendFormat("Exception: {0}", e.Message).AppendLine(); if (e.InnerException != null) { builder.AppendFormat("Inner Exception: {0}", e.InnerException.Message).AppendLine(); } return(false); } }
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); } }
private static void ImportModbusH2(string name, string IpAddress, int slave) { using (FacilityContext context = new FacilityContext()) { H2Generator monitorBox = new H2Generator(); monitorBox.Identifier = name; monitorBox.IpAddress = IpAddress; monitorBox.Port = 502; monitorBox.SlaveAddress = slave; monitorBox.Status = "Okay"; monitorBox.ReadInterval = 10; monitorBox.SaveInterval = 30; context.ModbusDevices.Add(monitorBox); context.SaveChanges(); if (ImportModbusSettings.ImportGeneratorRegisters(monitorBox, context)) { Console.WriteLine("Success: H2 Registers Imported"); } else { Console.WriteLine("Error: Import Failed"); } Console.WriteLine(); Console.WriteLine("Done, Press any key to exit"); Console.ReadKey(); } }
public async Task <bool> AddReadingAsync(H2Generator generator) { try { //this._context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; //this._context.ChangeTracker.LazyLoadingEnabled = false; //this._context.ChangeTracker.AutoDetectChangesEnabled = false; var device = await this._context.ModbusDevices.FindAsync(generator.Id) as H2Generator; if (device != null) { generator.LastRead.GeneratorId = generator.Id; this._context.H2GenReadings.Add(generator.LastRead); this._context.GeneratorSystemErrors.Add(generator.LastRead.AllSystemErrors); this._context.GeneratorSystemWarnings.Add(generator.LastRead.AllSystemWarnings); device.SystemState = generator.LastRead.SystemState; device.OperationMode = generator.LastRead.OperationMode; generator.SystemState = generator.LastRead.SystemState; generator.OperationMode = generator.LastRead.OperationMode; this._context.Entry(device).State = EntityState.Modified; await this._context.SaveChangesAsync(); this._context.Entry(generator).State = EntityState.Detached; //GC.Collect(); return(true); } else { return(false); } } catch (Exception e) { StringBuilder builder = new StringBuilder(); builder.AppendFormat("{0} Save Failed", generator.Identifier) .AppendFormat("Exception: {0}", e.Message).AppendLine(); if (e.InnerException != null) { builder.AppendFormat("Inner Exception: {0}", e.InnerException.Message).AppendLine(); } return(false); } }