public IHttpActionResult GetReadTagOPCOfGun() { try { List <Gun> list = client.ReadTagOPCOfGun(); if (list == null) { return(NotFound()); } return(Ok(list)); } catch (Exception e) { String.Format("Ошибка выполнения метода API:GetReadTagOPCOfGun()").SaveError(e); return(NotFound()); } }
public void Test_ClientTRK_ReadTagOPCOfGun() { try { ClientTRK client = new ClientTRK(); List <Gun> list = client.ReadTagOPCOfGun(); if (list == null) { Console.WriteLine("List<Gun> list =null"); return; } foreach (Gun gun in list) { Console.WriteLine("gun.num_tank - {0}", gun.num_trk); Console.WriteLine("gun.side - {0}", gun.side); Console.WriteLine("gun.num_gun - {0}", gun.num_gun); Console.WriteLine("gun.current_volume - {0}", gun.current_volume); Console.WriteLine("gun.density - {0}", gun.density); Console.WriteLine("gun.last_out_volume - {0}", gun.last_out_volume); Console.WriteLine("gun.online - {0}", gun.online); Console.WriteLine("gun.passage - {0}", gun.passage); Console.WriteLine("gun.price_to_write - {0}", gun.price_to_write); Console.WriteLine("gun.start - {0}", gun.start); Console.WriteLine("gun.state - {0}", gun.state); Console.WriteLine("gun.stop - {0}", gun.stop); Console.WriteLine("gun.taken - {0}", gun.taken); Console.WriteLine("gun.total_volume - {0}", gun.total_volume); Console.WriteLine("gun.status - {0}", gun.status); Console.WriteLine("gun.volume_to_write - {0}", gun.volume_to_write); Console.WriteLine("gun.write_price - {0}", gun.write_price); Console.WriteLine("gun.type_fuel - {0}", gun.type_fuel); } } catch (Exception e) { Console.WriteLine(e); } }
public int Test_ClientTRK_addCounters() { int res = 0; ClientTRK client = new ClientTRK(); EFGunsCnts ef_gc = new EFGunsCnts(); List <Gun> guns = client.ReadTagOPCOfGun(); if (guns != null) { EFUsersActions efua = new EFUsersActions(); UsersActions user_action = efua.GetCurrentUsersActions(); if (user_action != null) { GunsCnts gc = new GunsCnts(); gc.ID = 0; gc.Operator = user_action.UserName; gc.SmenaID = user_action.SessionID; gc.TimeStamp = DateTime.Now; foreach (Gun g in guns) { switch (g.num_gun) { case 1: gc.C1_1 = (int?)g.total_volume; break; case 2: gc.C1_2 = (int?)g.total_volume; break; case 3: gc.C2_1 = (int?)g.total_volume; break; case 4: gc.C2_2 = (int?)g.total_volume; break; case 5: gc.C3_1 = (int?)g.total_volume; break; case 6: gc.C3_2 = (int?)g.total_volume; break; case 7: gc.C4_1 = (int?)g.total_volume; break; case 8: gc.C4_2 = (int?)g.total_volume; break; case 9: gc.C5_1 = (int?)g.total_volume; break; case 10: gc.C5_2 = (int?)g.total_volume; break; case 11: gc.C6_1 = (int?)g.total_volume; break; case 12: gc.C6_2 = (int?)g.total_volume; break; case 13: gc.C7_1 = (int?)g.total_volume; break; case 14: gc.C7_2 = (int?)g.total_volume; break; case 15: gc.C7_3 = (int?)g.total_volume; break; case 16: gc.C7_4 = (int?)g.total_volume; break; case 17: gc.C7_5 = (int?)g.total_volume; break; case 18: gc.C7_6 = (int?)g.total_volume; break; case 19: gc.C7_7 = (int?)g.total_volume; break; case 20: gc.C7_8 = (int?)g.total_volume; break; case 21: gc.C8_1 = (int?)g.total_volume; break; case 22: gc.C8_2 = (int?)g.total_volume; break; case 23: gc.C8_3 = (int?)g.total_volume; break; case 24: gc.C8_4 = (int?)g.total_volume; break; case 25: gc.C8_5 = (int?)g.total_volume; break; case 26: gc.C8_6 = (int?)g.total_volume; break; case 27: gc.C8_7 = (int?)g.total_volume; break; case 28: gc.C8_8 = (int?)g.total_volume; break; case 29: gc.C9_1 = (int?)g.total_volume; break; } } ef_gc.Add(gc); res = ef_gc.Save(); } } return(res); }
public void OnTimerServices(object sender, System.Timers.ElapsedEventArgs args) { try { //String.Format("Сервис TRKServices - чтение RFID").SaveInformation(); ClientTRK client = new ClientTRK(); EFTRKLogs trk_log = new EFTRKLogs(); EFOPC_RFID ef_opc_rfid = new EFOPC_RFID(); List <RFID> list = client.ReadTagsOPSOfRFID(true); List <Gun> guns = client.ReadTagOPCOfGun(); string log_mes; // Сравним масив с памятью (выставим сообщения foreach (Gun gn in guns) { int num = gn.num_trk > 9 ? gn.num_gun + 29 : gn.num_gun; if (gn.taken != null && gn.taken != guns_taken[num]) { if (gn.num_trk > 9) { log_mes = String.Format("Наливной стояк № {0} заземлен : {1}", gn.num_gun, gn.taken); } else { log_mes = String.Format("Пистолет № {0} снят : {1}", gn.num_gun, gn.taken); } log_mes.SaveWarning(); // Запишим в лог // Пистолет подняли trk_log.AddTRKLogs(new TRKLogs() { ID = 0, DateTime = DateTime.Now, Level = 4, UserName = "******", Log = log_mes }); // Отобразим световую индикацию if (gn.num_trk <= 9) { if (gn.taken == true && trk_rfid[gn.num_trk, gn.side] == false) { // Блымкнем client.WritePulseTagsRFID(gn.num_trk, gn.side == 0 ? 1 : 2, 99, 1); trk_rfid[gn.num_trk, gn.side] = true; } //else //{ // // Перестаним блымкать // client.WritePulseTagsRFID(gn.num_trk, gn.side == 0 ? 1 : 2, 0, 1); //} } guns_taken[num] = (bool)gn.taken; } } // Проверим на выключение if (guns_taken[1] == false && trk_rfid[1, 0] == true) { client.WritePulseTagsRFID(1, 1, 0, 1); trk_rfid[1, 0] = false; } if (guns_taken[2] == false && trk_rfid[1, 1] == true) { client.WritePulseTagsRFID(1, 2, 0, 1); trk_rfid[1, 1] = false; } if (guns_taken[3] == false && trk_rfid[2, 0] == true) { client.WritePulseTagsRFID(2, 1, 0, 1); trk_rfid[2, 0] = false; } if (guns_taken[4] == false && trk_rfid[2, 1] == true) { client.WritePulseTagsRFID(2, 2, 0, 1); trk_rfid[2, 1] = false; } if (guns_taken[5] == false && trk_rfid[3, 0] == true) { client.WritePulseTagsRFID(3, 1, 0, 1); trk_rfid[3, 0] = false; } if (guns_taken[6] == false && trk_rfid[3, 1] == true) { client.WritePulseTagsRFID(3, 2, 0, 1); trk_rfid[3, 1] = false; } if (guns_taken[7] == false && trk_rfid[4, 0] == true) { client.WritePulseTagsRFID(4, 1, 0, 1); trk_rfid[4, 0] = false; } if (guns_taken[8] == false && trk_rfid[4, 1] == true) { client.WritePulseTagsRFID(4, 2, 0, 1); trk_rfid[4, 1] = false; } if (guns_taken[9] == false && trk_rfid[5, 0] == true) { client.WritePulseTagsRFID(5, 1, 0, 1); trk_rfid[5, 0] = false; } if (guns_taken[10] == false && trk_rfid[5, 1] == true) { client.WritePulseTagsRFID(5, 2, 0, 1); trk_rfid[5, 1] = false; } if (guns_taken[11] == false && trk_rfid[6, 0] == true) { client.WritePulseTagsRFID(6, 1, 0, 1); trk_rfid[6, 0] = false; } if (guns_taken[12] == false && trk_rfid[6, 1] == true) { client.WritePulseTagsRFID(6, 2, 0, 1); trk_rfid[6, 1] = false; } if (guns_taken[13] == false && guns_taken[14] == false && guns_taken[15] == false && guns_taken[16] == false && trk_rfid[7, 0] == true) { client.WritePulseTagsRFID(7, 1, 0, 1); trk_rfid[7, 0] = false; } if (guns_taken[17] == false && guns_taken[18] == false && guns_taken[19] == false && guns_taken[20] == false && trk_rfid[7, 1] == true) { client.WritePulseTagsRFID(7, 2, 0, 1); trk_rfid[7, 1] = false; } if (guns_taken[21] == false && guns_taken[22] == false && guns_taken[23] == false && guns_taken[24] == false && trk_rfid[8, 0] == true) { client.WritePulseTagsRFID(8, 1, 0, 1); trk_rfid[8, 0] = false; } if (guns_taken[25] == false && guns_taken[26] == false && guns_taken[27] == false && guns_taken[28] == false && trk_rfid[8, 1] == true) { client.WritePulseTagsRFID(8, 2, 0, 1); trk_rfid[8, 1] = false; } if (guns_taken[29] == false && trk_rfid[9, 0] == true) { client.WritePulseTagsRFID(9, 1, 0, 1); trk_rfid[9, 0] = false; } // Можно добавить НС if (list != null && guns != null) { // String.Format("Список считаных RFID-карт = {0}",list.Count()).SaveWarning(); // Проверим RFID foreach (RFID rfid in list) { // Определим сторону bool side = rfid.side == 0 ? false : true; // Получим список пистолетов относящихся к RFID List <Gun> guns_trk = guns.Where(g => g.num_trk == rfid.num_trk && g.side == rfid.side).ToList(); // Если все пистолеты опущены и это колонка - тогда удалим карточку if ((guns_trk == null || !IsTaken(guns_trk)) && rfid.num_trk < 10) { SqlParameter trk = new SqlParameter("@trk", rfid.num_trk); SqlParameter bside = new SqlParameter("@side", side); int res = ef_opc_rfid.Database.ExecuteSqlCommand("DELETE FROM [dbo].[OPC_RFID] where [num_trk]=@trk and [side]=@side", trk, bside); } //// Пистолет поднят //if (guns_trk != null && IsTaken(guns_trk)) //{ // // Блымкнем // client.WritePulseTagsRFID(rfid.num_trk, side == false ? 1 : 2, 99, 1); // //String.Format("Пистолет поднят RFID-карту TRK={0}, сторона {1}, результат={2}", rfid.num_trk, side == false ? 1 : 2, res).SaveWarning(); //} //else { // if (rfid.num_trk < 10) // { // SqlParameter trk = new SqlParameter("@trk", rfid.num_trk); // SqlParameter bside = new SqlParameter("@side", side); // int res = ef_opc_rfid.Database.ExecuteSqlCommand("DELETE FROM [dbo].[OPC_RFID] where [num_trk]=@trk and [side]=@side", trk, bside); // client.WritePulseTagsRFID(rfid.num_trk, side == false ? 1 : 2, 0, 1); // //String.Format("Сбросим RFID-карту TRK={0}, сторона {1}, результат={2}", rfid.num_trk, side == false ? 1 : 2, res).SaveWarning(); // } //} // Проверим RFID поднесена if (rfid.hi != null && rfid.lo != null && rfid.hi >= 0 && rfid.lo > 0) { // Да, поднесена String.Format("Сервис TRKServices - Считана RFID-Карта ТРК={0}, сторона={1}, id_card={2}, hi={3}, lo={4}", rfid.num_trk, rfid.side, rfid.card != null ? (int?)rfid.card.Id : null, rfid.hi, rfid.lo).SaveInformation(); // Проверим эта карта есть в базе OPC_RFID rfid_old = ef_opc_rfid.OPC_RFID.Where(o => o.id_hi == (int)rfid.hi && o.id_lo == rfid.lo && o.side == side).OrderByDescending(o => o.id).FirstOrDefault(); // Карты в базе нет? if (rfid_old == null) { // проверим по колонке есть снятый пистолет if (guns_trk != null && ((rfid.num_trk < 10 && IsTaken(guns_trk)) || (rfid.num_trk >= 10 && rfid.num_trk <= 12))) { int res = ef_opc_rfid.AddOPC_RFID(rfid.num_trk, rfid.side == 0 ? false : true, rfid.card != null ? (int?)rfid.card.Id : null, (int)rfid.hi, (int)rfid.lo); if (rfid.num_trk > 9) { log_mes = String.Format("Наливной стояк № {0} считана RFID-карта : {1} Код записи в БД - {2}", rfid.num_trk - 10, rfid.card != null ? (int?)rfid.card.Id : null, res); } else { log_mes = String.Format("ТРК № {0}, сторона {1}, считана RFID-карта : {2} Код записи в БД - {3}", rfid.num_trk, rfid.side, rfid.card != null ? (int?)rfid.card.Id : null, res); } log_mes.SaveWarning(); // Запишим в лог trk_log.AddTRKLogs(new TRKLogs() { ID = 0, DateTime = DateTime.Now, Level = 4, UserName = "******", Log = log_mes }); } } } } } else { String.Format("Список считаных RFID-карт = null").SaveWarning(); } } catch (Exception e) { String.Format("OnTimerServices(sender={0}, args={1})", sender, args.ToString()).SaveError(e); } }
public int addCounters() { try { int res = 0; List <Gun> guns = client.ReadTagOPCOfGun(); List <DIORisers> dios = client.ReadTagOPCOfDIORisers(); if (guns != null) { EFUsersActions efua = new EFUsersActions(); UsersActions user_action = efua.GetCurrentUsersActions(); if (user_action != null) { TRK_Counters counters = new TRK_Counters() { ID = 0, Operator = user_action.UserName, SmenaID = user_action.SessionID, TimeStamp = DateTime.Now, note = "Services" }; foreach (Gun g in guns) { switch (g.num_gun) { case 1: counters.C1_1 = (int?)g.total_volume; break; case 2: counters.C1_2 = (int?)g.total_volume; break; case 3: counters.C2_1 = (int?)g.total_volume; break; case 4: counters.C2_2 = (int?)g.total_volume; break; case 5: counters.C3_1 = (int?)g.total_volume; break; case 6: counters.C3_2 = (int?)g.total_volume; break; case 7: counters.C4_1 = (int?)g.total_volume; break; case 8: counters.C4_2 = (int?)g.total_volume; break; case 9: counters.C5_1 = (int?)g.total_volume; break; case 10: counters.C5_2 = (int?)g.total_volume; break; case 11: counters.C6_1 = (int?)g.total_volume; break; case 12: counters.C6_2 = (int?)g.total_volume; break; case 13: counters.C7_1 = (int?)g.total_volume; break; case 14: counters.C7_2 = (int?)g.total_volume; break; case 15: counters.C7_3 = (int?)g.total_volume; break; case 16: counters.C7_4 = (int?)g.total_volume; break; case 17: counters.C7_5 = (int?)g.total_volume; break; case 18: counters.C7_6 = (int?)g.total_volume; break; case 19: counters.C7_7 = (int?)g.total_volume; break; case 20: counters.C7_8 = (int?)g.total_volume; break; case 21: counters.C8_1 = (int?)g.total_volume; break; case 22: counters.C8_2 = (int?)g.total_volume; break; case 23: counters.C8_3 = (int?)g.total_volume; break; case 24: counters.C8_4 = (int?)g.total_volume; break; case 25: counters.C8_5 = (int?)g.total_volume; break; case 26: counters.C8_6 = (int?)g.total_volume; break; case 27: counters.C8_7 = (int?)g.total_volume; break; case 28: counters.C8_8 = (int?)g.total_volume; break; case 29: counters.C9_1 = (int?)g.total_volume; break; } } if (dios != null) { foreach (DIORisers dio in dios) { switch (dio.num) { case 1: counters.as1 = (long?)dio.Counter; break; case 2: counters.as2 = (long?)dio.Counter; break; case 3: counters.as3 = (long?)dio.Counter; break; } } } ef_trkc.Add(counters); res = ef_trkc.Save(); } } String.Format("Сервис ReportTRKServices - Отработал метод addCounters - Код выполнения-1:{0}", res).SaveInformation(); return(res); } catch (Exception e) { String.Format("addCounters()").SaveError(e); return(-1); } }