//Envia el serialNum asignado a una alarma LENEL: Mensajes, speed, Panic, etc. public void AsignarSerialAAlarma(int v_alarmID, int v_serialNum, string tipoAlarma) { string organizationID = Helpers.GetInstance().MainOrgID.ToString(); System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); try { try { Helpers.GetInstance().DoLog("Hecho addSetAlarma de: alarmID=" + v_alarmID + " tipoAlarma=" + tipoAlarma + " serialNum=" + v_serialNum); PoolSetAlarma.GetInstance().addSetAlarma(v_alarmID.ToString(), tipoAlarma, v_serialNum.ToString()); if (PoolGetAlarm.GetInstance().isEmpty()) { // Helpers.GetInstance().DoLog("isEmpty de Alarma dio True"); PoolSetAlarma.GetInstance().ContinuarPoolSet(); } //else // Helpers.GetInstance().DoLog("isEmpty dio False"); } catch (Exception ex) { Helpers.GetInstance().DoLog("EXCEPCION en AsignarSerialAAlarma: ALARMID: " + v_alarmID.ToString() + ", SERIALNUM:" + v_serialNum + " - " + ex.Message); } } catch (Exception ex) { Helpers.GetInstance().DoLog("EXCEPCION en AsignarSerialAAlarmaMUTEX: " + ex.Message); } }
/// <summary> /// Mensaje para notificar la dada de baja de Panel. /// Solo se envia deletePanel si realmente se dio de baja y no existe en Lenel- /// Ademas usa DC para eliminar el usuario asociado al panel. /// </summary> public void deletePanel(int PanelID, string panelName) { PoolGetConnStatus.GetInstance().subRefCount(); // Para detener el thread y liberar memoria en caso de ser el ultimo panel que se da de baja. PoolGetAlarm.GetInstance().subRefCount(); PoolGetAcceso.GetInstance().subRefCount(); PoolSetAlarma.GetInstance().subRefCount(); PoolSetAcceso.GetInstance().subRefCount(); System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); string orgID = Helpers.GetInstance().MainOrgID.ToString(); // El configurado en el registro try { //Helpers.GetInstance().mutexTCP_ACCESS.WaitOne(); try { string errDesc = ""; int errCode = -1; if (!WebServiceAPI.GetInstance().ExistePanelEnOnGuard(PanelID.ToString(), out errDesc, out errCode)) { WebServiceAPI.GetInstance().DeleteDevice(PanelID.ToString(), orgID, out errDesc, out errCode); if (errCode == (int)StatusCode.OK) { Employee emp = WebServiceAPI.GetInstance().ObtenerEmpleadoAsociadoAHH(panelName, out errDesc, out errCode); if (emp != null) { Helpers.GetInstance().DoLog("Va a borrar el empleado " + emp.Nombre + " " + emp.Apellido + " con personid: " + emp.PersonID.ToString() + " asociado al panelID: " + PanelID.ToString() + " llamado:" + panelName); WebServiceAPI.GetInstance().EliminarEmpleado(emp.PersonID, out errDesc, out errCode); } else { Helpers.GetInstance().DoLog("emp es NULL en deletePanel. NO borró el empleado asociado al panel " + PanelID.ToString()); } } } } catch (Exception ex) { Helpers.GetInstance().DoLog("EXCEPCION en deletePanel: " + ex.Message); } } catch (Exception ex) { Helpers.GetInstance().DoLog("EXCEPCION en deletePanelMUTEX: " + ex.Message); } //finally //{ // Helpers.GetInstance().mutexTCP_ACCESS.ReleaseMutex(); //} }
public static List <string> ListaPanelNames = new List <string>(); // Lista de todos los PanelNames que levanta este CommServer.. //string m_Name; //int m_PanelID; // Constructor de la clase managed asociada al Translator. // Hay una instancia por cada Translator, y por lo tanto una por cada Panel. public ManagedAccessControl() { PoolGetConnStatus.GetInstance(); // Lanza el thread de actualizacion de connStatusgeneral PoolGetConnStatus.GetInstance().addRefCount(); // Agrega un conteo de referencia PoolGetAcceso.GetInstance(); // Idem get accesos PoolGetAcceso.GetInstance().addRefCount(); PoolGetAlarm.GetInstance(); // Idem get Alarmas PoolGetAlarm.GetInstance().addRefCount(); PoolSetAcceso.GetInstance(); PoolSetAcceso.GetInstance().addRefCount(); // Idem setAccesos PoolSetAlarma.GetInstance(); // Idem SetAlarmas PoolSetAlarma.GetInstance().addRefCount(); }
public string pollAlutrackForAlarm(int v_panelID, int v_serialnum) { string LNLPanelID = v_panelID.ToString(); string orgID = Helpers.GetInstance().MainOrgID.ToString(); try { string datosAlarma = PoolGetAlarm.GetInstance().GetAlarm(int.Parse(LNLPanelID)); if (!String.IsNullOrEmpty(datosAlarma)) { Helpers.GetInstance().DoLog("Datos de Alarma de PanelID=" + LNLPanelID + "=" + datosAlarma); } return(datosAlarma); } catch (Exception ex) { Helpers.GetInstance().DoLog("EXCEPCION en pollAlutrackForAlarm: " + ex.Message); return("FAIL"); } }
void enviarListaSetAlarmas() { Helpers.GetInstance().DoLog("Comienza Task de envio de SET Alarmas..."); while (!finalizarPoolSetAlarmas.WaitOne(2000)) { Helpers.GetInstance().DoLog("Esperando datos de Alarmas..."); continuarPoolSet.WaitOne(); // Espera que haya datos... continuarPoolSet.Reset(); Helpers.GetInstance().DoLog("Hay datos de Alarmas encolados"); if (!finalizarPoolSetAlarmas.WaitOne(0)) { try { if (listaAlarmasIDSerials != null) { List <AlarmaIDSerial> listaToSend = new List <AlarmaIDSerial>(); lock (listaAlarmasIDSerials) { while (listaAlarmasIDSerials.Any()) { AlarmaIDSerial IDS = listaAlarmasIDSerials.Dequeue(); listaToSend.Add(IDS); } } if (listaToSend.Count > 0) { //string errDesc = ""; //int errCode = -1; //WebServiceAPI.GetInstance().AssignSerialnumsAlarmas(listaToSend, out errDesc, out errCode); string errDesc = ""; int errCode = -1; bool done = false; while (!done && !finalizarPoolSetAlarmas.WaitOne(0)) { WebServiceAPI.GetInstance().AssignSerialnumsAlarmas(listaToSend, out errDesc, out errCode); if (errCode == (int)StatusCode.OK) { done = true; } else { Helpers.GetInstance().DoLog("Error al enviar serials de Alarmas: " + listaToSend.ToString() + " " + errDesc); Thread.Sleep(1000); } } Helpers.GetInstance().DoLog("Hecha la asignacion de serialnums en Alarmas."); PoolGetAlarm.GetInstance().ContinuarPoolGet(); // si ya llegaron todos los envios. //Helpers.GetInstance().DoLog("Hizo ContinuarPool de GetAlarm()"); } } } catch (Exception ex) { Helpers.GetInstance().DoLog("EXCEPCION en enviarListaSetAlarmas:" + ex.Message); } } } Helpers.GetInstance().DoLog("Finaliza Thread de actualizacion de SetAlarmas"); }