void mysafetyDll_Events (object sender, MySafetyDll.MySafety.Message message) { switch (message.newEvent) { case MySafetyDll.MySafety.WPEvents.BLE_ON: Console.WriteLine ("Mudança de Estado Bluetooth: Ligado"); SaveEventDatabase (message, null); break; case MySafetyDll.MySafety.WPEvents.BLE_OFF: Console.WriteLine ("Mudança de Estado Bluetooth: Desligado"); SaveEventDatabase (message, null); break; case MySafetyDll.MySafety.WPEvents.ACESS_OK: Console.WriteLine ("Acionamento aceito {0} {1}", message.eventoPortao.ToString (), message.ble); break; case MySafetyDll.MySafety.WPEvents.ACESS_NOK: Console.WriteLine ("Acionamento negado {0} {1}", message.eventoPortao.ToString (), message.ble); break; case MySafetyDll.MySafety.WPEvents.sKey_CONNECTION: if (DadosAlterados) PreparaDll (); Console.WriteLine ("sKey Conectado"); break; case MySafetyDll.MySafety.WPEvents.sKey_DISCONNECTION: Console.WriteLine ("sKey desconectado"); break; case MySafetyDll.MySafety.WPEvents.sKey_LOW_RSSI: Console.WriteLine ("sKey quase desconectando Rssi={0}", message.ble.rssi); break; case MySafetyDll.MySafety.WPEvents.sKey_NEW_NAME: Console.WriteLine ("Nome de sKey atualizado:{0}", message.ble); break; case MySafetyDll.MySafety.WPEvents.FIND_CELL_PHONE: Console.WriteLine ("Procurando Celular..."); break; case MySafetyDll.MySafety.WPEvents.PANIC: if (!Settings.panicActivated) Task.Run (async delegate { await ActivatePanic (); }); else { CrossVibrate.Current.Vibration (400); Console.WriteLine ("Panico ja esta ativo!!"); } break; case MySafetyDll.MySafety.WPEvents.REFUSED_AUTH: Console.WriteLine ("Portao recusou gerenciador {0}", message.ble); break; case MySafetyDll.MySafety.WPEvents.sKey_LOW_BATT: Console.WriteLine (" sKey com bateria baixa"); break; case MySafetyDll.MySafety.WPEvents.STATUS_CONEXAO_PORTAO: if (message.eventoPortao.Equals (MySafetyDll.MySafety.InfosPortao.CONECTANDO)) { EventsList.Clear (); if (DadosAlterados) PreparaDll (true); } EventsList.Add (message.eventoPortao.ToString ()); break; case MySafetyDll.MySafety.WPEvents.GATE_EVENTS: if (message.ble.eventos.Count > 0) { Console.WriteLine ("{0} Novos eventos de Portao", message.ble.eventos.Count); Task.Factory.StartNew (() => { foreach (var evento in message.ble.eventos) { Evento.EventTypeName filtro; //filtro para relatorios no site switch (evento.evento) { case MySafetyDll.Evento.Tipo.PORTAO_SEM_AC: case MySafetyDll.Evento.Tipo.NEGADO_GARAGEM: case MySafetyDll.Evento.Tipo.NEGADO_PEDESTRE: case MySafetyDll.Evento.Tipo.NEGADO_SEM_LISTA: case MySafetyDll.Evento.Tipo.NEGADO_HORARIO: case MySafetyDll.Evento.Tipo.NEGADO_SEM_HORARIO: case MySafetyDll.Evento.Tipo.NEGADO_VALIDADE: case MySafetyDll.Evento.Tipo.NEGADO_ERRO_CONEXAO: case MySafetyDll.Evento.Tipo.NEGADO_FORA_LISTA: filtro = MySafetyDll.Evento.EventTypeName.Gate_RefusedAccess; break; case MySafetyDll.Evento.Tipo.PORTAO_PEDESTRE_CELLx: case MySafetyDll.Evento.Tipo.PORTAO_PEDESTRE_CELL: case MySafetyDll.Evento.Tipo.PORTAO_PEDESTRE_SKEY: case MySafetyDll.Evento.Tipo.PORTAO_PEDESTRE_SKEYx: case MySafetyDll.Evento.Tipo.PORTAO_sKEY: case MySafetyDll.Evento.Tipo.PORTAO_sKEYx: case MySafetyDll.Evento.Tipo.PORTAO_CELL: case MySafetyDll.Evento.Tipo.PORTAO_CELLx: filtro = MySafetyDll.Evento.EventTypeName.Gate_Activation; break; default: filtro = MySafetyDll.Evento.EventTypeName.Gate_Generic; break; } SaveEventDatabase (message, evento); //Evento a ser salvo no DB Console.WriteLine ("Filtro:{0} Portao: {1} Horario:{2} User:{3} Evento:{4}", filtro, message.ble.deviceAddress, String.Format ("{0:dd/MM/yyyy HH:mm}", evento.horario), evento.bleAddress, evento.evento.ToString ()); } message.ble.eventos.Clear (); }); } break; default: Console.WriteLine ("Mensagem com evento ???{0} {1}", message.newEvent.ToString (), message.ble); break; } }
private async void SaveEventDatabase (MySafetyDll.MySafety.Message message, Evento evento) { Events _event = new Events (); _event.UserId = Settings.user_Id; _event.Id = Guid.NewGuid ().ToString (); _event.Type = message.newEvent.ToString (); if (evento != null) { _event.Date = evento.horario; _event.Arg1 = evento.bleAddress; _event.Arg2 = evento.evento.ToString (); } else { _event.Date = DateTime.Now; } await new Repository<Events> ().CreateAsync (_event); }
void mysafetyDll_Scan (object sender, MySafetyDll.MySafety.Message m) { if (m.ble != null && devices.IndexOf (m.ble) < 0 && m.ble != App.meuSkey) { Console.WriteLine ("############# novo sKey em FindBleViewModel:" + m.ble); devices.Add (m.ble); } }