protected override IMessage OnRequestReceived(IMessage request) { var args = new RequestReceivedArgs <TMessage>((TMessage)request); RequestReceived?.Invoke(this, args); return(args.Response); }
private void Server_TcpQueryReceived(IArdNetSystem Sender, RequestReceivedArgs e) { string answer = null; string QryName = e.Request; string[] QryArgs = e.RequestArgs; switch (QryName) { case "name": { answer = System.Environment.MachineName; break; } case "has.feat": { if (QryArgs.Length == 0) { break; } if (QryArgs[0] == "messaging") { answer = "true"; } if (QryArgs[0] == "topics") { answer = "true"; } break; } default: { Console.WriteLine(e.Request); ArdServer.SendTcpQueryResponse(e, e.Request, e.RequestArgs); return; } } ArdServer.SendTcpQueryResponse(e, answer); }
protected virtual void OnRequestReceived(RequestReceivedArgs <TMessage> e) { RequestReceived?.Invoke(this, e); }
private void Server_TcpCommandReceived(IArdNetSystem Sender, RequestReceivedArgs e) { string status = null; string CmdName = e.Request; string[] CmdArgs = e.RequestArgs; switch (CmdName) { //set heartbeat case "set.htbt": { if (CmdArgs.Length != 2) { break; } var attributeName = CmdArgs[0]; var attributeValue = CmdArgs[1]; //set HeartBeat "respond to heartbeat" if (attributeName == "respond") { if (bool.TryParse(attributeValue, out var boolVal)) { e.ConnectedSystem.HeartbeatConfig.RespondToHeartbeats = boolVal; status = "ok"; } } else if (attributeName == "interval") { if (int.TryParse(attributeValue, out var intVal)) { e.ConnectedSystem.HeartbeatConfig.HeartbeatInterval = TimeSpan.FromMilliseconds(intVal); status = "ok"; } } break; } //set device parameters case "set.device": { if (CmdArgs.Length != 2) { break; } var attributeName = CmdArgs[0]; var attributeValue = CmdArgs[1]; //set power level if (attributeName == "power") { if (attributeValue == "high") { //.1 sec htbt e.ConnectedSystem.HeartbeatConfig.HeartbeatInterval = TimeSpan.FromMilliseconds(100); status = "ok"; } else if (attributeValue == "default") { //.25 sec htbt e.ConnectedSystem.HeartbeatConfig.HeartbeatInterval = TimeSpan.FromMilliseconds(250); status = "ok"; } else if (attributeValue == "low") { //1 sec htbt e.ConnectedSystem.HeartbeatConfig.HeartbeatInterval = TimeSpan.FromMilliseconds(1000); status = "ok"; } else if (attributeValue == "xlow") { //10 sec htbt e.ConnectedSystem.HeartbeatConfig.HeartbeatInterval = TimeSpan.FromMilliseconds(10000); status = "ok"; } else if (attributeValue == "xxlow") { //1 min htbt e.ConnectedSystem.HeartbeatConfig.HeartbeatInterval = TimeSpan.FromMinutes(1); status = "ok"; } else if (attributeValue == "xxxlow") { //no htbt e.ConnectedSystem.HeartbeatConfig.ForceStrictHeartbeat = false; status = "ok"; } } break; } //set text color case "set.color": { if (CmdArgs.Length == 0) { break; } if (Enum.TryParse <ConsoleColor>(CmdArgs[0], out var color)) { Console.ForegroundColor = color; status = "ok"; } break; } } ArdServer.SendTcpCommandResponse(e, status); }