diff --git a/ADIS_Csharp/RobotClientWpf/ChallengeFactory.cs b/ADIS_Csharp/RobotClientWpf/ChallengeFactory.cs
index 004b29b..a1675a6 100644
--- a/ADIS_Csharp/RobotClientWpf/ChallengeFactory.cs
+++ b/ADIS_Csharp/RobotClientWpf/ChallengeFactory.cs
@@ -12,8 +12,8 @@ namespace RobotClientWpf
public ChallengeFactory()
{
this.PublisherSubscriber = MqttPublisherSubscriber.Instance;
- this.RobotStationary = new Robot(this.PublisherSubscriber);
- this.RobotMobile = new Robot(this.PublisherSubscriber);
+ this.RobotStationary = new Robot(this.PublisherSubscriber, RobotTypes.Stationary);
+ this.RobotMobile = new Robot(this.PublisherSubscriber, RobotTypes.Mobile);
}
}
}
diff --git a/ADIS_Csharp/RobotClientWpf/NLog.config b/ADIS_Csharp/RobotClientWpf/NLog.config
index 7483624..6cef1f2 100644
--- a/ADIS_Csharp/RobotClientWpf/NLog.config
+++ b/ADIS_Csharp/RobotClientWpf/NLog.config
@@ -10,9 +10,15 @@
+
+
\ No newline at end of file
diff --git a/ADIS_Csharp/RobotLib/Battery/DevBattery.cs b/ADIS_Csharp/RobotLib/Battery/DevBattery.cs
index 80aa885..cceecdf 100644
--- a/ADIS_Csharp/RobotLib/Battery/DevBattery.cs
+++ b/ADIS_Csharp/RobotLib/Battery/DevBattery.cs
@@ -31,11 +31,6 @@ namespace RobotLib.Battery
public DevBattery(IPublisherSubscriber com) : base(com, new List() { TOPIC_ROBO_RESP_BATTERY }) { }
- public override void Refresh()
- {
- this.RequestBatteryVoltage();
- }
-
public void RequestBatteryVoltage()
{
base.SendMessage(TOPIC_ROBO_REQ_BATTERY, true.ToString());
diff --git a/ADIS_Csharp/RobotLib/Communication/MqttPublisherSubscriber.cs b/ADIS_Csharp/RobotLib/Communication/MqttPublisherSubscriber.cs
index e0246fa..5e00ad8 100644
--- a/ADIS_Csharp/RobotLib/Communication/MqttPublisherSubscriber.cs
+++ b/ADIS_Csharp/RobotLib/Communication/MqttPublisherSubscriber.cs
@@ -159,7 +159,7 @@ namespace RobotLib.Communication
}
lock (clientLock)
{
- var msgId = client.Publish(topic, Encoding.ASCII.GetBytes(message));
+ var msgId = client.Publish(topic, Encoding.ASCII.GetBytes(message), 0, false);
log.Trace($"Published to topic '{topic}'. MessageId = {msgId}");
}
}
diff --git a/ADIS_Csharp/RobotLib/Robot.cs b/ADIS_Csharp/RobotLib/Robot.cs
index 1ebe3b3..1cf4fc0 100644
--- a/ADIS_Csharp/RobotLib/Robot.cs
+++ b/ADIS_Csharp/RobotLib/Robot.cs
@@ -2,26 +2,43 @@
using RobotLib.SplitFlap;
using RobotLib.Movement;
using RobotLib.Battery;
-using System.Threading;
+using System.Timers;
namespace RobotLib
{
public class Robot
{
- public Robot(IPublisherSubscriber com)
+ public Robot(IPublisherSubscriber com, RobotTypes type)
{
Com = com;
- //Buzzer = new DevBuzzer(Com);
- Battery = new DevBattery(Com);
- SplitFlap = new DevSplitFlap(com);
- LineSensor = new DevLineSensor(com);
- Movement = new DevMovement(com);
-
- Timer timer = new Timer(TimerCallback);
- timer.Change(2000, 10000);
+ Type = type;
+ if(type == RobotTypes.Undefined)
+ {
+ throw new System.ArgumentException("Undefined robot type, must define type!");
+ }
+
+ if(type == RobotTypes.Mobile)
+ {
+ //Buzzer = new DevBuzzer(Com);
+ Battery = new DevBattery(Com);
+ LineSensor = new DevLineSensor(com);
+ Movement = new DevMovement(com);
+ }
+ else if(type == RobotTypes.Stationary)
+ {
+ SplitFlap = new DevSplitFlap(com);
+ }
+
+ Timer timer = new Timer
+ {
+ Interval = 10000
+ };
+ timer.Enabled= true;
+ timer.Elapsed += Timer_Elapsed;
}
public IPublisherSubscriber Com { get; }
+ public RobotTypes Type { get; }
//public DevBuzzer Buzzer { get; }
public DevBattery Battery { get; }
@@ -39,13 +56,12 @@ namespace RobotLib
//Com.Disconnect();
}
- private void TimerCallback(object state)
+ private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
if (Com.IsConnected)
{
- Battery.Refresh();
+ Battery?.RequestBatteryVoltage();
}
}
-
}
}
\ No newline at end of file
diff --git a/ADIS_Csharp/RobotLib/RobotTypes.cs b/ADIS_Csharp/RobotLib/RobotTypes.cs
new file mode 100644
index 0000000..2f8aa8a
--- /dev/null
+++ b/ADIS_Csharp/RobotLib/RobotTypes.cs
@@ -0,0 +1,9 @@
+namespace RobotLib
+{
+ public enum RobotTypes
+ {
+ Undefined = 0,
+ Mobile = 1,
+ Stationary
+ }
+}