private void _ipcClient_MessageReceived(object sender, IpcMessageEventArgs e) { switch (e.Message.MessageCode) { case IpcMessageCode.Unset: Trace.TraceError("Received IpcMessage with unset code.\n{0}", e.Message.Data.ToDataString()); break; case IpcMessageCode.Debug: OnMessage(new DebugAnperiMessage(e.Message.Data)); break; case IpcMessageCode.Error: OnMessage(new ErrorAnperiMessage(e.Message.Data)); break; case IpcMessageCode.PeripheralEventFired: OnMessage(new EventFiredAnperiMessage(e.Message.Data)); break; case IpcMessageCode.PeripheralDisconnected: IsPeripheralConnected = false; OnPeripheralDisconnected(); break; case IpcMessageCode.PeripheralConnected: IsPeripheralConnected = true; var pCon = new PeripheralConnectedAnperiMessage(e.Message.Data); PeripheralInfo = pCon.PeripheralInfo; if (pCon.PeripheralInfo.Version != ApiVersion) { OnIncompatibleDeviceConnected(pCon.PeripheralInfo); } else { OnPeripheralConnected(new PeripheralConnectedAnperiMessage(e.Message.Data).PeripheralInfo); } break; case IpcMessageCode.ControlLost: HasControl = false; OnControlLost(); break; case IpcMessageCode.NotClaimed: OnHostNotClaimed(); break; case IpcMessageCode.ClaimControl: case IpcMessageCode.FreeControl: case IpcMessageCode.SetPeripheralLayout: case IpcMessageCode.SetPeripheralElementParam: default: Trace.TraceError("Message {0} not implemented, data:\n{1}", e.Message.MessageCode.ToString(), e.Message.Data.ToDataString()); break; } }
private void OnIpcMessageReceived(object sender, IpcMessageEventArgs e) { if (e.Channel == "getWeatherForecasts") { var args = e.Message.ToObject <WeatherForecastArgs>(); e.Result = GetWeatherForecasts(args.City, args.UseCelsius); } }