added DevRobot

main
Jonas Arnold 4 years ago
parent 4b3d957fa4
commit e2ef6b4c2b
  1. 11
      ADIS_Csharp/RobotConsoleClient/Program.cs
  2. 3
      ADIS_Csharp/RobotLib/Robot.cs
  3. 37
      ADIS_Csharp/RobotLib/RobotControl/DevRobot.cs

@ -10,12 +10,21 @@ namespace RobotConsoleClient
var com = MqttPublisherSubscriber.Instance;
com.Connect("192.168.20.22", "ADIS", "TEST");
var robotStationary = new Robot(com);
var robotMobile = new Robot(com);
robotStationary.SplitFlap.SplitFlapDisplayChanged += SplitFlap_SplitFlapDisplayChanged;
//Console.ReadLine();
Thread.Sleep(1000);
robotStationary.SplitFlap.ConfigureSplitflap(1, 21);
robotStationary.SplitFlap.ConfigureSplitflap(setupId: 1, hardwareId: 21);
Thread.Sleep(1000);
robotStationary.SplitFlap.InitializeAllSplitflaps();
Thread.Sleep(1000);
robotMobile.RobotControl.SetSpeed(1000);
robotMobile.RobotControl.Turn(-10);
robotMobile.RobotControl.SetSpeed(-500);
robotMobile.RobotControl.StopMovement();
robotMobile.RobotControl.SetMobilityMode(automatic: true);
}
private static void SplitFlap_SplitFlapDisplayChanged(object? sender, RobotLib.SplitFlap.SplitFlapDisplayEventArgs e)

@ -1,4 +1,5 @@
using RobotLib.Communication;
using RobotLib.RobotControl;
using RobotLib.SplitFlap;
using System.Threading;
@ -12,6 +13,7 @@ namespace RobotLib
//Buzzer = new DevBuzzer(Com);
//Battery = new DevBattery(Com);
SplitFlap = new DevSplitFlap(com);
RobotControl = new DevRobot(com);
Timer timer = new Timer(TimerCallback);
timer.Change(2000, 10000);
@ -22,6 +24,7 @@ namespace RobotLib
//public DevBuzzer Buzzer { get; }
//public DevBattery Battery { get; }
public DevSplitFlap SplitFlap { get; }
public DevRobot RobotControl { get; }
public void Connect(string host, int port)
{

@ -0,0 +1,37 @@
using RobotLib.Communication;
using System.Collections.Generic;
using System.Text.Json;
namespace RobotLib.RobotControl
{
public class DevRobot : DevBase
{
private const string TOPIC_MOBILE_MODE = "/mobile/cmd/mode/";
private const string TOPIC_MOBILE_NAV_TURN = "/mobile/cmd/nav/turn/";
private const string TOPIC_MOBILE_NAV_MOVE = "/mobile/cmd/nav/move/";
private const string TOPIC_MOBILE_NAV_STOP = "/mobile/cmd/nav/stop/";
public DevRobot(IPublisherSubscriber com) : base(com, new List<string>() { }) { }
public void SetMobilityMode(bool automatic)
{
string payload = JsonSerializer.Serialize(new Dictionary<string, bool>() { { "automatic", automatic } });
base.SendMessage(TOPIC_MOBILE_MODE, payload);
}
public void Turn(int angle)
{
base.SendMessage(TOPIC_MOBILE_NAV_TURN, angle.ToString());
}
public void SetSpeed(int speed)
{
base.SendMessage(TOPIC_MOBILE_NAV_MOVE, speed.ToString());
}
public void StopMovement()
{
base.SendMessage(TOPIC_MOBILE_NAV_STOP, true.ToString());
}
}
}
Loading…
Cancel
Save