private void CreateAgvOrder(SqlDbAGVLocation agv) { int priority = Main.Database.ExecuteScalar <int>("SELECT COALESCE(MAX(Priority), 10) + 10 FROM StorageOrders"); if (priority <= 0) { priority = 110; } // orders should come from AS400 if (agv.direction == "in") { TransportOrder dbn = new TransportOrder() { //ID = TransportOrder.GetNextNegativeID(), ID = TransportOrder.GetNextID(), Priority = priority, // OrderState = item.OrderState, AGV = 0, AGVdest = 0, CylinderState = 1, Diameter = -1, Direction = 1, Label = "##REST##", ItemNumber = "", JobNumber = "test", AGV_location_machinename = agv.machine_name, rewind_code = agv.rewind_code, manual_mode = 0, Inserted = DateTime.UtcNow, LastChange = DateTime.UtcNow, AGVrequested = new DateTime(2000, 1, 1), AGVdone = new DateTime(2000, 1, 1), AGVsource = 0, LSReached = new DateTime(2000, 1, 1), }; dbn.State = TransportOrder.OrderStates.New; dbn.TransportSource = TransportOrder.Destinations.Press; if (dbn.AGV_location_machinename.ToLowerInvariant().Contains("lam")) { dbn.TransportSource = TransportOrder.Destinations.Laminator; } dbn.TransportTarget = TransportOrder.Destinations.Storage; // incoming // unknown diameter var nc = CreateCylinder("##REST##", -1, "", "test"); dbn.Cylinder_ID = nc.Cylinder_ID; dbn.Insert(); agv.storage_order_id = dbn.ID; agv.Update(); } if (agv.direction == "out") { Cylinder cyl = GetRandomCylinder(); TransportOrder dbn = new TransportOrder() { ID = TransportOrder.GetNextID(), Priority = priority, // OrderState = item.OrderState, AGV = 0, AGVdest = 0, Cylinder_ID = cyl.Cylinder_ID, CylinderState = cyl.CylinderState_ID, Diameter = cyl.Diameter, Label = cyl.Number, ItemNumber = cyl.ItemNumber, JobNumber = "test", AGV_location_machinename = agv.machine_name, rewind_code = agv.rewind_code, manual_mode = 0, LoadingStation = 0, Inserted = DateTime.UtcNow, LastChange = DateTime.UtcNow, AGVrequested = new DateTime(2000, 1, 1), AGVdone = new DateTime(2000, 1, 1), AGVsource = 0, LSReached = new DateTime(2000, 1, 1), }; dbn.State = TransportOrder.OrderStates.New; // outgoing dbn.TransportSource = TransportOrder.Destinations.Storage; dbn.TransportTarget = TransportOrder.Destinations.Press; if (dbn.AGV_location_machinename.ToLowerInvariant().Contains("lam")) { dbn.TransportTarget = TransportOrder.Destinations.Laminator; } dbn.Insert(); agv.storage_order_id = dbn.ID; agv.start_wanted = false; agv.Update(); } }
private void Agv_grid_CellClick(object sender, DataGridViewCellEventArgs e) { try { if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } SqlDbAGVLocation row = agv_grid.Rows[e.RowIndex].DataBoundItem as SqlDbAGVLocation; if (e.ColumnIndex == agv_grid.Columns.Count - 1) { CreateAgvOrder(row); } if (agv_grid.Columns[e.ColumnIndex].HeaderText == "pallet") { row.modbus_bit_read = !row.modbus_bit_read; if (row.modbus_bit_read) { row.modbus_bit_last_on = DateTime.UtcNow; } else { row.modbus_bit_last_off = DateTime.UtcNow; } row.modbus_last_exception_date = new DateTime(2000, 1, 1); row.modbus_last_exception_text = ""; row.Update(); foreach (DataGridViewRow drow in agv_grid.Rows) { SqlDbAGVLocation ddrow = drow.DataBoundItem as SqlDbAGVLocation; if (ddrow != null && ddrow.modbus_address == row.modbus_address && ddrow.modbus_bit == row.modbus_bit && ddrow.modbus_bit_read != row.modbus_bit_read) { ddrow.modbus_bit_read = row.modbus_bit_read; if (ddrow.modbus_bit_read) { ddrow.modbus_bit_last_on = DateTime.UtcNow; } else { ddrow.modbus_bit_last_off = DateTime.UtcNow; } ddrow.modbus_last_exception_date = new DateTime(2000, 1, 1); ddrow.modbus_last_exception_text = ""; ddrow.Update(); } } } if (agv_grid.Columns[e.ColumnIndex].HeaderText == "start") { row.start_wanted = !row.start_wanted; row.Update(); } } catch { } }