public string fnGetAlarm(string pstrHost, string pbytPosId, string pscompany, string pstoreID, string psUserID, string pstrMaquina, Forecourt fc0, IFCConfig ifc0) { AlarmTank objAlarmTank = null; List <AlarmTank> lstAlarmTank = null; TankGaugeCollection tgcSondaa = null; string json = ""; string strFechaIso = ""; TgMainStates tmsMainState = 0; byte bytStatus = 0; int intAlarmStatus = 0; try { Thread.Sleep(5000); fc0.EventsDisabled = false; tgcSondaa = (TankGaugeCollection)ifc0.TankGauges; if (tgcSondaa.Count > 0) { lstAlarmTank = new List <AlarmTank>(); strFechaIso = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); foreach (PSS_Forecourt_Lib.TankGauge tgesondaa2 in tgcSondaa) { tgesondaa2.GetStatus(out tmsMainState, out bytStatus, out intAlarmStatus); if (Convert.ToByte(TgStatusBits.TGS_ALARM) == bytStatus) { objAlarmTank = new AlarmTank(); objAlarmTank.Ncompany = pscompany; objAlarmTank.StoreID = pstoreID; objAlarmTank.Date = strFechaIso; objAlarmTank.UserID = psUserID; objAlarmTank.TgID = tgesondaa2.Id; objAlarmTank.bitAlarm = bytStatus; objAlarmTank.AlarmStatus = intAlarmStatus; lstAlarmTank.Add(objAlarmTank); } } json = TransformJson(lstAlarmTank); } else { json = ""; } return(json); } catch (Exception ex) { throw new Exception(ex.Message); } }
public static Boolean fnIniciarLectorSonda(string bytPosID, string strHost, out Forecourt fc, out IFCConfig ifc, string idmaquina) { fc = new Forecourt(); ifc = null; //fc.TankGaugeCfgChanged += new _IForecourtEvents_TankGaugeCfgChangedEventHandler(FC_TankGaugeCfgChanged); string logon = "POS,UNSO_FPSTA_2,APPL_ID=" + idmaquina; fc.PosId = Convert.ToByte(bytPosID); fc.HostName = strHost; fc.Disconnect(); string strEstadoSonda = "Initialize"; fc.Initialize(); strEstadoSonda = "Logon"; ifc = (IFCConfig)fc; int cnt = 0; bool auxLogon = false; FcLogonParms objParametro = new FcLogonParms(); do { cnt++; try { objParametro.EnableFcEvent(FcEvents.xxxxCfgChanged); fc.FcLogon2(logon, objParametro); auxLogon = true; } catch { if (cnt == 3) { throw new Exception("Intento de Conexión 3 veces fallida" + strEstadoSonda); } Thread.Sleep(1000); // Pausa de 1 segundo para reintentar el Logon } } while ((cnt < 3) && !auxLogon); return(auxLogon); }