Always checks wifisitter channel name when sending messages.

systray
Sean McArdle 2016-11-21 14:28:17 -08:00
parent d912745622
commit 54adbc10ab
1 changed files with 8 additions and 9 deletions

View File

@ -91,14 +91,13 @@ namespace WifiSitterGui.ViewModel
internal string ServiceChannelName { internal string ServiceChannelName {
get { get {
if (_serviceChannel == null) { var serviceProc = Process.GetProcesses().Where(x => x.ProcessName.ToLower().StartsWith("wifisitter"))
var serviceProc = Process.GetProcesses().Where(x => x.ProcessName.ToLower().StartsWith("wifisitter")) .Where(x => !x.ProcessName.ToLower().Contains("gui")).ToArray();
.Where(x => !x.ProcessName.ToLower().Contains("gui")).ToArray(); if (serviceProc != null &&
if (serviceProc != null && serviceProc.Length > 0) {
serviceProc.Length > 0) { _serviceChannel = String.Format("{0}-{1}", serviceProc[0].Id, serviceProc[0].ProcessName);
_serviceChannel = String.Format("{0}-{1}", serviceProc[0].Id, serviceProc[0].ProcessName);
}
} }
return _serviceChannel; return _serviceChannel;
} }
} }
@ -153,7 +152,7 @@ namespace WifiSitterGui.ViewModel
if (_takeFiveCommand == null) { if (_takeFiveCommand == null) {
_takeFiveCommand = new RelayCommand(() => { _takeFiveCommand = new RelayCommand(() => {
var request = new WifiSitterIpcMessage("take_five", _wsIpc.MyChannelName, _wsIpc.MyChannelName); var request = new WifiSitterIpcMessage("take_five", _wsIpc.MyChannelName, _wsIpc.MyChannelName);
WsIpc.MsgBroadcaster.SendToChannel(_serviceChannel, request.IpcMessageJsonString()); WsIpc.MsgBroadcaster.SendToChannel(ServiceChannelName, request.IpcMessageJsonString());
// TODO need response validation mechanism // TODO need response validation mechanism
}); });
} }
@ -178,7 +177,7 @@ namespace WifiSitterGui.ViewModel
if (_sr != null) { if (_sr != null) {
switch (_sr.Request) { switch (_sr.Request) {
case "give_netstate": case "give_netstate":
try { WindowVM.NetState = Newtonsoft.Json.JsonConvert.DeserializeObject<SimpleNetworkState>(System.Text.Encoding.UTF8.GetString(_sr.Payload)); } try { WindowVM.NetState = Newtonsoft.Json.JsonConvert.DeserializeObject<SimpleNetworkState>(Encoding.UTF8.GetString(_sr.Payload)); }
catch { WifiSitter.WifiSitter.LogLine("Failed to deserialize netstate, payload."); } catch { WifiSitter.WifiSitter.LogLine("Failed to deserialize netstate, payload."); }
break; break;
case "taking_five": case "taking_five":