public Dictionary <string, string> Read() { var ret = new Dictionary <string, string>(); string s; if (simulatormode) { s = "SIMULATORANDROID1"; ret.Add("vin", s); foreach (var cmd in piDs.Keys) { var key = piDs[cmd]; s = ObdExtension.GetEmulatorValue(cmd); ret.Add(key, s); } return(ret); } if (!simulatormode && bluetoothSocket == null) { //if there is no connection return(null); } lock (_lock) { foreach (var key in data.Keys) { ret.Add(key, data[key]); } foreach (var v in piDs.Values) { data[v] = DefValue; } } return(ret); }
private async void PollObd() { try { string s; if (simulatormode) { s = "SIMULATORIPHONE12"; } else { s = await GetVIN(); } lock (_lock) { data["vin"] = s; } while (true) { foreach (var cmd in piDs.Keys) { var key = piDs[cmd]; if (simulatormode) { s = ObdExtension.GetEmulatorValue(cmd); } else { s = await RunCmd(cmd); } if (s != "ERROR") { lock (_lock) { data[key] = s; } } if (!running) { return; } } await Task.Delay(Interval); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); running = false; if (stream != null) { stream.Close(); stream = null; } if (socket != null) { socket.Close(); socket = null; } } }