private void MpuHandler(IArdNetSystem sender, RequestResponderStateObject e) { float accel = 1.0f; //gyro data //x, y, z var xMove = int.Parse(e.RequestArgs[0]); var yMove = int.Parse(e.RequestArgs[2]); //Console.WriteLine($"[{xMove}, {yMove}]"); if (Math.Abs(xMove) < 1000) { xMove = 0; } else { xMove = (int)(xMove / 750.0); } if (Math.Abs(yMove) < 1000) { yMove = 0; } else { yMove = (int)(yMove / 750.0); } _mouseVector = new Point(xMove, yMove); _mouseVectorLifetime = 0; }
private void Server_TcpCommandResponseReceived(IArdNetSystem Sender, RequestResponseReceivedArgs e) { if (e is RequestResponseTimeoutArgs) { Console.WriteLine($"Command Timeout"); } else if (e is RequestResponseCanceledArgs) { Console.WriteLine($"Command Canceled"); } else if (e is RequestResponseDisconnectedArgs) { Console.WriteLine($"Command Disconnected"); } else if (e is RequestResponseInvalidTargetArgs) { Console.WriteLine($"Command Not Delivered"); } else { Console.WriteLine($"Command Response"); } Console.WriteLine(" IP Address: " + e.Endpoint); Console.WriteLine(" Command ID: " + e.RequestID); Console.WriteLine(" Response: " + (e.Response ?? "[NULL]")); for (int i = 0; i < e.ResponseArgs.Length; ++i) { Console.WriteLine($" Arg [{i}]: {e.ResponseArgs[i] ?? "[NULL]"}"); } }
private void Server_TcpClientDisconnected(IArdNetSystem Sender, ISystemEndpoint e) { _ = Interlocked.Decrement(ref _tcpConnectionCount); Console.WriteLine("Closed TCP Connection"); Console.WriteLine(" Connection Time: " + ((dynamic)e.UserState).Time); Console.WriteLine(" IP Address: " + e.Endpoint); }
private void Server_TcpMessageReceived(IArdNetSystem Sender, MessageReceivedArgs e) { Console.WriteLine("New TCP Message"); Console.WriteLine(" Connection Time: " + ((dynamic)e.ConnectedSystem.UserState).Time); Console.WriteLine(" IP Address: " + e.Endpoint); Console.WriteLine(" Message: " + (e.Message ?? "[NULL]")); }
private static void ArdManager_CommandReceived(IArdNetSystem Sender, IConnectedSystemEndpoint ConnectedSystem, TcpRequest Message) { Debug.WriteLine($"CMD: {Message.Request}"); if (Message.Request == "VIBE") { _vibe.Blink(500); } }
public MouseMover(IArdNetSystem ArdSys) { if (ArdSys is null) { throw new ArgumentNullException(nameof(ArdSys)); } _ardSys = ArdSys; _ardSys.TcpCommandTable.Register("MPU", MpuHandler); _ardSys.TcpCommandTable.Register("LClick", LClickHandler); _mouseWorkerThread = new CancelThread <object>(MouseWorkerHandler); }
private void LClickHandler(IArdNetSystem sender, RequestResponderStateObject request) { if (request.RequestArgs[0] == "down") { uint flags = 0x0002; //left mouse down _ = mouse_event(flags, 0, 0, 0, 0); } else if (request.RequestArgs[0] == "up") { uint flags = 0x0004; //left mouse up _ = mouse_event(flags, 0, 0, 0, 0); } }
private void Server_TcpClientConnected(IArdNetSystem Sender, IConnectedSystemEndpoint e) { _ = Interlocked.Increment(ref _tcpConnectionCount); Console.WriteLine("New TCP Connection"); Console.WriteLine(" IP Address: " + e.Endpoint); e.UserState = new { Name = "Hello", Time = DateTime.Now }; if (!ArdServer.NetConfig.TCP.HeartbeatConfig.ExpectHeartbeatResponse) { ArdServer.SendTcpCommand(e.Endpoint, "set.htbt", new string[] { "respond", "false" }); } }
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); }
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); }
/// <summary> /// Create instance. /// </summary> /// <param name="ArdSys"></param> public RangeFinderDelegate(IArdNetSystem ArdSys) : base(ArdSys, Constants.ChannelNames.TankOperations.RangeFinder) { }
private void Server_ServerStarted(IArdNetSystem e) { Console.WriteLine("Server started @ " + e.NetConfig.LocalAddress); }
private static void NanoClient_ServerDisconnected(IArdNetSystem Sender, ISystemEndpoint e) { _ = _serverMsgHandle.Reset(); Debug.WriteLine("ArdNet Disconnected"); _led.Off(); }
private static void ArdManager_TcpEndpointConnected(IArdNetSystem Sender, IConnectedSystemEndpoint e) { _ = _serverMsgHandle.Set(); Debug.WriteLine("ArdNet Connected"); _led.On(); }
private static void NanoClient_ServerDisconnected(IArdNetSystem Sender, ISystemEndpoint e) { _ = _serverMsgHandle.Reset(); }
/// <summary> /// Create instance. /// </summary> /// <param name="ArdSys"></param> public GunLoaderDelegate(IArdNetSystem ArdSys) : base(ArdSys, Constants.ChannelNames.TankOperations.GunLoader) { }
/// <summary> /// Create instance. /// </summary> /// <param name="ArdSys"></param> public FireControlDelegate(IArdNetSystem ArdSys) : base(ArdSys, Constants.ChannelNames.TankOperations.FireControl) { }
/// <summary> /// Create instance. /// </summary> /// <param name="ArdSys"></param> public NavigatorDelegate(IArdNetSystem ArdSys) : base(ArdSys, Constants.ChannelNames.TankOperations.Navigator) { }