public IHttpActionResult PostSensorTag(SensorTag sensorTag) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.SensorTags.Add(sensorTag); try { db.SaveChanges(); } catch (DbUpdateException) { if (SensorTagExists(sensorTag.id)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("DefaultApi", new { id = sensorTag.id }, sensorTag)); }
private void BluetoothLEDevices_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { string msg = string.Empty; lock (deviceListLock) { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { foreach (ObservableBluetoothLEDevice newDev in e.NewItems) { if (newDev.Name.Contains("ShokPod")) { SensorTag sensorTag = new SensorTag(newDev); tiles.Add(new TileModel() { Caption = $"{sensorTag.AssignedToName}", Icon = new BitmapImage(new Uri("ms-appx:/Assets/shokpodSensorIcon150x150.png")), UserData = sensorTag }); } } } else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove) { foreach (ObservableBluetoothLEDevice oldDev in e.OldItems) { //DeviceList.Remove(oldDev); } } else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Reset) { //DeviceList.Clear(); } } }
public static async Task <BLETISensor> Sensor(SensorTag sensorType) { switch (sensorType) { case SensorTag.CC2541: sensor = new CC2541.CC2541Sensor(); sensor.tagService = await Initialize(CC2541.SensorTagUuid.UUID_INF_SERV); sensor.manifactureName = await sensor.ReadCharacteristicStringAsync(CC2541.SensorTagUuid.UUID_INF_MANUF_NR); sensor.firmwareRevision = await sensor.ReadCharacteristicStringAsync(CC2541.SensorTagUuid.UUID_INF_FW_NR); Debug.Write("CC2541:" + sensor.manifactureName + "," + sensor.firmwareRevision); break; case SensorTag.CC2650: sensor = new CC2650.CC2650Sensor(); sensor.tagService = await Initialize(CC2650.SensorTagUuid.UUID_INF_SERV); sensor.manifactureName = await sensor.ReadCharacteristicStringAsync(CC2650.SensorTagUuid.UUID_INF_MANUF_NR); sensor.firmwareRevision = await sensor.ReadCharacteristicStringAsync(CC2650.SensorTagUuid.UUID_INF_FW_NR); Debug.Write("CC2650:" + sensor.manifactureName + "," + sensor.firmwareRevision); break; } return(sensor); }
public IHttpActionResult PutSensorTag(string id, SensorTag sensorTag) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != sensorTag.id) { return(BadRequest()); } db.Entry(sensorTag).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!SensorTagExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public TemperaturePage() { this.InitializeComponent(); sensor = SensorTag.SelectedSensor; celcius = Settings.Instance.Celcius; CelciusButton.IsChecked = celcius; FahrenheitButton.IsChecked = !celcius; }
protected async override void OnNavigatedTo(NavigationEventArgs e) { sensor = e.Parameter as SensorTag; SensorList.ItemsSource = tiles; base.OnNavigatedTo(e); await this.ConnectSensors(); }
private void OnItemClick(object sender, ItemClickEventArgs e) { TileModel tile = e.ClickedItem as TileModel; SensorTag sensorTag = (SensorTag)tile.UserData; gattContext.SelectedBluetoothLEDevice = sensorTag.Device; Frame frame = Window.Current.Content as Frame; frame.Navigate(typeof(DevicePage), sensorTag); }
public IHttpActionResult GetSensorTag(string id) { SensorTag sensorTag = db.SensorTags.Find(id); if (sensorTag == null) { return(NotFound()); } return(Ok(sensorTag)); }
public IHttpActionResult DeleteSensorTag(string id) { SensorTag sensorTag = db.SensorTags.Find(id); if (sensorTag == null) { return(NotFound()); } db.SensorTags.Remove(sensorTag); db.SaveChanges(); return(Ok(sensorTag)); }
public static async Task <BLETISensor> Sensor(SensorTag sensorType) { string selector = null; switch (sensorType) { case SensorTag.CC2541: sensor = new CC2541.CC2541Sensor(); sensor.tagService = await Initialize(CC2541.SensorTagUuid.UUID_INF_SERV); if (sensor.tagService == null) { sensor.ConnectionStatus = "Need Pairing"; throw new Exception("Need to make CC2541 Pairing before start!"); } sensor.ManifactureName = await sensor.ReadCharacteristicStringAsync(CC2541.SensorTagUuid.UUID_INF_MANUF_NR); sensor.FirmwareRevision = await sensor.ReadCharacteristicStringAsync(CC2541.SensorTagUuid.UUID_INF_FW_NR); selector = GattDeviceService.GetDeviceSelectorFromUuid(new Guid(CC2541.SensorTagUuid.UUID_INF_SERV)); Debug.WriteLine("CC2541:" + sensor.ManifactureName + "," + sensor.FirmwareRevision); break; case SensorTag.CC2650: sensor = new CC2650.CC2650Sensor(); sensor.tagService = await Initialize(CC2650.SensorTagUuid.UUID_INF_SERV); if (sensor.tagService == null) { sensor.ConnectionStatus = "Need Pairing"; throw new Exception("Need to make CC2650 Pairing before start!"); } sensor.ManifactureName = await sensor.ReadCharacteristicStringAsync(CC2650.SensorTagUuid.UUID_INF_MANUF_NR); sensor.FirmwareRevision = await sensor.ReadCharacteristicStringAsync(CC2650.SensorTagUuid.UUID_INF_FW_NR); selector = GattDeviceService.GetDeviceSelectorFromUuid(new Guid(CC2650.SensorTagUuid.UUID_INF_SERV)); Debug.WriteLine("CC2650:" + sensor.ManifactureName + "," + sensor.FirmwareRevision); break; } sensor.ConnectionStatus = "Waiting to connect..."; Debug.WriteLine(sensor.ConnectionStatus); sensor.deviceNameValue = await ReadDeviceNameAsync(selector); sensor.systemIdValue = await ReadDeviceIdAsync(selector); return(sensor); }
public void SpawnSensorTags(List <RaspberryPi> allRaspberryPis) { _Rpi = Instantiate(Rpi, new Vector3(0, 0, 0), Quaternion.Euler(0, 0, 0)) as GameObject; _Rpi.transform.GetChild(0).GetComponentInChildren <Button> ().GetComponentInChildren <Text> ().text = allSnortData[0].sensor; _Rpi.transform.GetChild(0).GetChild(1).GetComponentInChildren <Text> ().text = "System is safe"; _Rpi.GetComponent <Renderer> ().material.color = Color.green; currentColor = Color.green; float scew = 1.0f; float offset = 0f; int i = 0; foreach (SensorTag sensortag in allRaspberryPis[0].sensorTags) { if (i % 12 == 0) { scew += 1.0f; offset += 30.0f; } var sinOfAngle = scew * 270 * Mathf.Sin(i * (360 / 12) * Mathf.Deg2Rad + offset); var cosOfAngle = scew * 270 * Mathf.Cos(i * (360 / 12) * Mathf.Deg2Rad + offset); GameObject _SensorTag = Instantiate(SensorTag, new Vector3(sinOfAngle, 0, cosOfAngle), Quaternion.Euler(0, 0, 0)) as GameObject; _SensorTag.transform.GetChild(0).GetComponentInChildren <Button> ().GetComponentInChildren <Text> ().text = allRaspberryPis[0].sensorTags [i].shortName; _SensorTag.transform.GetChild(0).GetChild(1).GetComponentInChildren <Text> ().text = sensortag.airtemp; _SensorTag.transform.GetChild(0).GetChild(2).GetComponentInChildren <Text> ().text = sensortag.airpressure; _SensorTag.transform.GetChild(0).GetChild(3).GetComponentInChildren <Text> ().text = sensortag.seq; _SensorTag.GetComponent <Renderer> ().material.color = Color.green; _SensorTag.transform.GetChild(1).GetComponent <ParticleSystem> ().GetComponent <ParticleMovement>().target = _Rpi.transform; float rotate = i * (360 / 12) + 100; _SensorTag.transform.GetChild(1).GetComponent <ParticleSystem> ().transform.rotation = Quaternion.Euler(0, rotate, 0); var em = _SensorTag.transform.GetChild(1).GetComponent <ParticleSystem> ().emission; em.enabled = false; //em.enabled = true; _SensorTag.transform.GetChild(0).GetComponentInChildren <Button> ().onClick.AddListener(delegate() { currentTag = sensortag.tagNumber; currentSensorTag = sensortag; displayCanvas(); displaySensorData(); }); sensorTags.Add(_SensorTag); i++; } InvokeRepeating("getData", 0f, 2f); InvokeRepeating("updateSystemColor", 0f, 5f); }
private async Task FindSensors() { try { if (finding) { return; } finding = true; HideHelp(); tiles.Clear(); // find a matching sensor // todo: let user choose which one to play with. foreach (SensorTag tag in await SensorTag.FindAllDevices()) { string icon = tag.Version == 1 ? "ms-appx:/Assets/SensorTag.png" : "ms-appx:/Assets/ti-sensortag-cc2650.png"; string name = Settings.Instance.FindName(tag.DeviceAddress); if (string.IsNullOrEmpty(name)) { name = tag.DeviceName; } tiles.Add(new TileModel() { Caption = name, Icon = new BitmapImage(new Uri(icon)), UserData = tag }); } if (tiles.Count == 0) { ShowHelp(); } } catch (Exception ex) { DisplayMessage("Finding devices failed, please make sure your Bluetooth radio is on. Details: " + ex.Message); ShowHelp(); } finding = false; }
protected override async void OnNavigatedTo(NavigationEventArgs e) { SelectedSensorTag = e.Parameter as SensorTag; SensorList.ItemsSource = tiles; SelectedSensorTag.MovementDataChanged += OnMovementMeasurementValueChanged; ConnectionResult result = await SelectedSensorTag.Connect(); if ((result.Result == null) && (result.Exception == null) && (result.Success == false)) { MessageDialog dialog = new MessageDialog("No permission to access device", "Connection error"); await dialog.ShowAsync(); //device = null; return; } if (result.Result.Status == GattCommunicationStatus.Success) { } if (result.Result.Status == GattCommunicationStatus.ProtocolError) { Debug($"Connection protocol error: {result.Result.ProtocolError.Value.ToString()}. Connection failures"); } else if (result.Result.Status == GattCommunicationStatus.Unreachable) { Debug($"Connection protocol error: Device unreachable"); } else if (result.Exception != null) { string msg = String.Format("Message:\n{0}\n\nInnerException:\n{1}\n\nStack:\n{2}", result.Exception.Message, result.Exception.InnerException, result.Exception.StackTrace); var messageDialog = new MessageDialog(msg, "Exception"); await messageDialog.ShowAsync(); } InidicateConnectionStatus(result); this.displayAcceleration = ShokpodSettings.getSettings().Result.DisplayAcceleration; base.OnNavigatedTo(e); }
public RegenViewModel(INavigationService nav) { this.nav = nav; Messenger.Default.Register <User>(this, (e) => User = e); if (nav != null) { sensorTag = new SensorTag(); } getInfo = new RelayCommand(() => { SendMessage.PostRequest <object, Humidity>("Somewhere", sensorTag.HumiditySensor.Humidity); SendMessage.PostRequest <object, Temperature>("Somewhere", sensorTag.TemperatureSensor.Temperature); Visible = true; }, () => sensorTag.HumiditySensor.Humidity.HumidityAmount != 0 && sensorTag.TemperatureSensor.Temperature.TemperatureAmount != 0); getTemp = new RelayCommand(() => { double temp = sensorTag.TemperatureSensor.Temperature.TemperatureAmount; while (temp == 0) { SensorTag.TemperatureSensor.GetTemperature(); temp = sensorTag.TemperatureSensor.Temperature.TemperatureAmount; } GetTemp.RaiseCanExecuteChanged(); GetInfo.RaiseCanExecuteChanged(); }, () => sensorTag.TemperatureSensor.Temperature.TemperatureAmount == 0); getHumidity = new RelayCommand(() => { double humidity = sensorTag.HumiditySensor.Humidity.HumidityAmount; while (humidity <= 0.0 || humidity > 100.0) { SensorTag.HumiditySensor.GetHumidity(); humidity = sensorTag.HumiditySensor.Humidity.HumidityAmount; } GetHumidity.RaiseCanExecuteChanged(); GetInfo.RaiseCanExecuteChanged(); }, () => sensorTag.HumiditySensor.Humidity.HumidityAmount == 0); }
public PressurePage() { this.InitializeComponent(); string[] units = new string[] { "hectopascal", "pascal", "bar", "millibar", "kilopascal", "Mercury (mm)", "Mercury (inches)", "psi" }; UnitCombo.ItemsSource = units; selectedUnit = (PressureUnit)Settings.Instance.PressureUnit; // some sanity checks if (selectedUnit < PressureUnit.Hectopascal) { selectedUnit = PressureUnit.Hectopascal; } if (selectedUnit > PressureUnit.Psi) { selectedUnit = PressureUnit.Psi; } UnitCombo.SelectedIndex = (int)selectedUnit; sensor = SensorTag.SelectedSensor; }
public static async Task<BLETISensor> Sensor(SensorTag sensorType) { switch (sensorType) { case SensorTag.CC2541: sensor = new CC2541.CC2541Sensor(); sensor.tagService = await Initialize(CC2541.SensorTagUuid.UUID_INF_SERV); sensor.manifactureName = await sensor.ReadCharacteristicStringAsync(CC2541.SensorTagUuid.UUID_INF_MANUF_NR); sensor.firmwareRevision = await sensor.ReadCharacteristicStringAsync(CC2541.SensorTagUuid.UUID_INF_FW_NR); Debug.Write("CC2541:" + sensor.manifactureName + "," + sensor.firmwareRevision); break; case SensorTag.CC2650: sensor = new CC2650.CC2650Sensor(); sensor.tagService = await Initialize(CC2650.SensorTagUuid.UUID_INF_SERV); sensor.manifactureName = await sensor.ReadCharacteristicStringAsync(CC2650.SensorTagUuid.UUID_INF_MANUF_NR); sensor.firmwareRevision = await sensor.ReadCharacteristicStringAsync(CC2650.SensorTagUuid.UUID_INF_FW_NR); Debug.Write("CC2650:" + sensor.manifactureName + "," + sensor.firmwareRevision); break; } return sensor; }
public HumidityPage() { this.InitializeComponent(); sensor = SensorTag.SelectedSensor; }
public GyroPage() { this.InitializeComponent(); sensor = SensorTag.SelectedSensor; }
public AccelerometerPage() { this.InitializeComponent(); sensor = SensorTag.SelectedSensor; }
public void getData() { var request = new ScanRequest { TableName = "SensorTag", }; client.ScanAsync(request, (result) => { List <RaspberryPi> allRaspberryPis = new List <RaspberryPi>(); RaspberryPi rpi = new RaspberryPi(); List <SensorTag> allSensorTags = new List <SensorTag>(); foreach (var item in result.Response.Items) { SensorTag sensorTag = new SensorTag(); foreach (var kvp in item) { string attributeName = kvp.Key; AttributeValue value = kvp.Value; if (attributeName == "defRoute") { rpi.defRoute = value.S; } else if (attributeName == "myName") { rpi.myName = value.S; } if (value.IsMSet) { foreach (var key in value.M.Keys) { foreach (var val in value.M.Values) { if (val.IsMSet) { foreach (var k in val.M) { AttributeValue valu; val.M.TryGetValue(k.Key, out valu); if (k.Key.Trim() == "Air Pressure (hPa)") { sensorTag.airpressure = k.Key + ": " + valu.N; //Debug.Log(sensorTag.airpressure); } else if (k.Key.Trim() == "RSSI (dBm)") { sensorTag.rssi = k.Key + ": " + valu.N; //Debug.Log(sensorTag.rssi); } else if (k.Key.Trim() == "Light (lux)") { sensorTag.light = k.Key + ": " + valu.N; //Debug.Log(sensorTag.light); } else if (k.Key.Trim() == "Seq #") { sensorTag.seq = k.Key + ": " + valu.N; //Debug.Log(sensorTag.seq); } else if (k.Key.Trim() == "Air Temp (C)") { sensorTag.airtemp = k.Key + ": " + valu.N; //Debug.Log(sensorTag.airtemp); } else if (k.Key.Trim() == "Object Temp (C)") { sensorTag.objecttemp = k.Key + ": " + valu.N; //Debug.Log(sensorTag.objecttemp); } else if (k.Key.Trim() == "Acc Y (G)") { sensorTag.accy = k.Key + ": " + valu.N; //Debug.Log(sensorTag.accy); } else if (k.Key.Trim() == "Gyro Z (deg per sec)") { sensorTag.gyroz = k.Key + ": " + valu.N; //Debug.Log(sensorTag.gyroz); } else if (k.Key.Trim() == "Gyro X (deg per sec)") { sensorTag.gyrox = k.Key + ": " + valu.N; //Debug.Log(sensorTag.gyrox); } else if (k.Key.Trim() == "HDC Humidity (%RH)") { sensorTag.hdchumidity = k.Key + ": " + valu.N; //Debug.Log(sensorTag.hdchumidity); } else if (k.Key.Trim() == "Uptime (sec)") { sensorTag.uptime = k.Key + ": " + valu.N; //Debug.Log(sensorTag.uptime); } else if (k.Key.Trim() == "defRoute") { sensorTag.defroute = k.Key + ": " + valu.S; //Debug.Log(sensorTag.defroute); } else if (k.Key.Trim() == "Battery Temp (C)") { sensorTag.batterytemp = k.Key + ": " + valu.N; //Debug.Log(sensorTag.batterytemsp); } else if (k.Key.Trim() == "HDC Temp (C)") { sensorTag.hdctemp = k.Key + ": " + valu.N; //Debug.Log(sensorTag.hdctemp); } else if (k.Key.Trim() == "Ambient Temp (C)") { sensorTag.ambienttemp = k.Key + ": " + valu.N; //Debug.Log(sensorTag.ambienttemp); } else if (k.Key.Trim() == "Gyro Y (deg per sec)") { sensorTag.gyroy = k.Key + ": " + valu.N; //Debug.Log(sensorTag.gyroy); } else if (k.Key.Trim() == "myName") { sensorTag.shortName = valu.S + ""; sensorTag.name = k.Key + ": " + sensorTag.shortName; //Debug.Log(sensorTag.name); } else if (k.Key.Trim() == "Acc X (G)") { sensorTag.accx = k.Key + ": " + valu.N; //Debug.Log(sensorTag.accx); } else if (k.Key.Trim() == "Battery Volt (mV)") { sensorTag.batteryvolt = k.Key + ": " + valu.N; //Debug.Log(sensorTag.batteryvolt); } else if (k.Key.Trim() == "Acc Z (G)") { sensorTag.accz = k.Key + ": " + valu.N; //Debug.Log(sensorTag.accz); } } } } } } } allSensorTags.Add(sensorTag); } List <SensorTag> oldSensorTags = rpi.sensorTags; rpi.sensorTags = allSensorTags; allRaspberryPis.Add(rpi); if (!canvas.isActiveAndEnabled) { updateSensorTags(allRaspberryPis, oldSensorTags); } else { //displaySensorData(currentSensorTag); test(allRaspberryPis); } }); }