Example #1
0
		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;
			}
		}
Example #2
0
		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);
			}
		}