public static async Task StartRunning(long numLoops, long period, byte sensorCntr) { await CC2650SensorTag.PrependTextStatic("cls"); LogMsg = ""; SensorCntr = sensorCntr; if (SensorIsOn == null) { SensorIsOn = new Dictionary <CC2650SensorTag.SensorServicesCls.SensorIndexes, bool>(); for (CC2650SensorTag.SensorServicesCls.SensorIndexes sensor = CC2650SensorTag.SensorServicesCls.SensorIndexes.IR_SENSOR; sensor < (CC2650SensorTag.SensorServicesCls.SensorIndexes.NOTFOUND); sensor++) { SensorIsOn.Add(sensor, false); } } PeriodCounter = 0; LastEventCount = 0; SensorPeriod = numLoops; UpdatePeriod = 1000 * period; CC2650SensorTag.TagSensorEvents.CallMeBack = UpdateSensorData; CC2650SensorTag.TagSensorEvents.doCallback = true; //StorageFolder storageFolder = KnownFolders.DocumentsLibrary; ; //var sampleFile = await storageFolder.CreateFileAsync("sensors.log", // CreationCollisionOption.ReplaceExisting); await EnableDisableSensors(); System.Threading.Interlocked.Exchange(ref EventCount, 0); ContinueRunning(); }
private static async Task EnableDisableSensors() { //sensorCntr++; //Skip any cntr which would have IO on. //while (GetBit(sensorCntr, (int)CC2650SensorTag.SensorServicesCls.SensorIndexes.IO_SENSOR)) // sensorCntr++; string listActiveSensors = ""; for (CC2650SensorTag.SensorServicesCls.SensorIndexes sensor = CC2650SensorTag.SensorServicesCls.SensorIndexes.IR_SENSOR; sensor < (CC2650SensorTag.SensorServicesCls.SensorIndexes.REGISTERS); sensor++) { //IO is an actuator (LEDs and Buzzer) not sensor if (sensor == CC2650SensorTag.SensorServicesCls.SensorIndexes.IO_SENSOR) { continue; } //Skip IO if (!SensorIsOn.Keys.Contains(sensor)) { SensorIsOn.Add(sensor, false); } //else if (sensor == SensorUUIDs.SensorIndexes.KEYS) // sen++; bool isToBeOn = GetBit(SensorCntr, (int)sensor); //Yes sensor here IS correct as its the sequential counter if (isToBeOn != SensorIsOn[sensor]) { if (SensorIsOn[sensor]) { if (CC2650SensorTag.TagSensorServices.Sensors.Keys.Contains(sensor)) { if (CC2650SensorTag.TagSensorServices.Sensors[sensor] != null) { await CC2650SensorTag.TagSensorServices.TurnOffSensor(CC2650SensorTag.TagSensorServices.Sensors[sensor]); } } } else { if (CC2650SensorTag.TagSensorServices.Sensors.Keys.Contains(sensor)) { if (CC2650SensorTag.TagSensorServices.Sensors[sensor] != null) { await CC2650SensorTag.TagSensorServices.TurnOnSensor(CC2650SensorTag.TagSensorServices.Sensors[sensor]); } } } SensorIsOn[sensor] = isToBeOn; } if (SensorIsOn[sensor]) { if (listActiveSensors == "") { listActiveSensors = sensor.ToString(); } else { listActiveSensors = sensor.ToString() + "," + listActiveSensors; } } //else // maxSensor = " " + maxSensor; } //StorageFolder storageFolder = KnownFolders.DocumentsLibrary; ; //var sampleFile = await storageFolder.GetFileAsync("sensors.log"); //string hdr = string.Format("{0} {1}\r\n", sensorCntr, listActiveSensors); //Debug.WriteLine("{0} {1}\r\n", sensorCntr, hdr); //await Windows.Storage.FileIO.AppendTextAsync(sampleFile, hdr); //await CC2650SensorTag.PrependTextStatic(hdr); }
public SensorCharacteristics(CC2650SensorTag.SensorServicesCls.SensorIndexes sensor) { Sensor = sensor; Charcteristics = new Dictionary <CC2650SensorTag.SensorServicesCls.SensorIndexes, GattCharacteristic>(); }
public SensorChars(CC2650SensorTag.SensorServicesCls.SensorIndexes Sensor) { Sensor_Index = Sensor; Type = CharacteristicsTypes.sensor; Charcteristics = new Dictionary <CC2650SensorTag.SensorServicesCls.CharacteristicTypes, GattCharacteristic>(); }