|
|
@@ -197,6 +197,61 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
set { SetField(ref this.isCanStanbyLocation, value); }
|
|
|
}
|
|
|
|
|
|
+ private double linearSpeed;
|
|
|
+
|
|
|
+ public double LinearSpeed
|
|
|
+ {
|
|
|
+ get { return linearSpeed; }
|
|
|
+ set { SetField(ref this.linearSpeed, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private double curveSpeed;
|
|
|
+
|
|
|
+ public double CurveSpeed
|
|
|
+ {
|
|
|
+ get { return curveSpeed; }
|
|
|
+ set { SetField(ref this.curveSpeed, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private double accelSpeed;
|
|
|
+
|
|
|
+ public double AccelSpeed
|
|
|
+ {
|
|
|
+ get { return accelSpeed; }
|
|
|
+ set { SetField(ref this.accelSpeed, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private double decelSpeed;
|
|
|
+
|
|
|
+ public double DecelSpeed
|
|
|
+ {
|
|
|
+ get { return decelSpeed; }
|
|
|
+ set { SetField(ref this.decelSpeed, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private double creepSpeed;
|
|
|
+
|
|
|
+ public double CreepSpeed
|
|
|
+ {
|
|
|
+ get { return creepSpeed; }
|
|
|
+ set { SetField(ref this.creepSpeed, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private double creepDistance;
|
|
|
+
|
|
|
+ public double CreepDistance
|
|
|
+ {
|
|
|
+ get { return creepDistance; }
|
|
|
+ set { SetField(ref this.creepDistance, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private double jogSpeed;
|
|
|
+
|
|
|
+ public double JogSPeed
|
|
|
+ {
|
|
|
+ get { return jogSpeed; }
|
|
|
+ set { SetField(ref this.jogSpeed, value); }
|
|
|
+ }
|
|
|
#endregion
|
|
|
|
|
|
public ZmqManager( BMUManager bMU, Steering steering )
|
|
|
@@ -225,9 +280,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
this.monitor = new NetMQMonitor( req, "inproc://rep.inproc", SocketEvents.Disconnected | SocketEvents.Connected );
|
|
|
this.monitor.Connected += ( s, a ) =>
|
|
|
{
|
|
|
- this.IsReqConnected = true;
|
|
|
- CurrentPointNo = GetCurrentPointNo();
|
|
|
- SetCurrentSteeringState( this.steering.GetSteeringState() );
|
|
|
+ this.SynchronizedParmeter();
|
|
|
};
|
|
|
|
|
|
this.monitor.Disconnected += ( s, a ) => { this.IsReqConnected = false; };
|
|
|
@@ -243,6 +296,22 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
this.bMUManager.OnChangedReceivedData += BMUManager_OnChangedReceivedData;
|
|
|
}
|
|
|
|
|
|
+ private void SynchronizedParmeter()
|
|
|
+ {
|
|
|
+ this.IsReqConnected = true;
|
|
|
+
|
|
|
+ CurrentPointNo = GetCurrentPointNo();
|
|
|
+ SetCurrentSteeringState(this.steering.GetSteeringState());
|
|
|
+
|
|
|
+ this.LinearSpeed = this.GetDriveLinerSpeed();
|
|
|
+ this.CurveSpeed = this.GetDriveCurveSpeed();
|
|
|
+ this.JogSPeed = this.GetJogSpeed();
|
|
|
+ this.AccelSpeed = this.GetAccelSpeed();
|
|
|
+ this.DecelSpeed = this.GetDecelSpeed();
|
|
|
+ this.CreepSpeed = this.GetCreepSpeed();
|
|
|
+ this.CreepDistance = this.GetCreepDistance();
|
|
|
+ }
|
|
|
+
|
|
|
private void BMUManager_OnChangedReceivedData( Serial.DataModel.ReceivedData obj )
|
|
|
{
|
|
|
try
|
|
|
@@ -1008,19 +1077,21 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
/// 전진 후진 동시에 같은 값으로 설정.
|
|
|
/// </summary>
|
|
|
/// <param name="speed"></param>
|
|
|
- internal void SetJogSpeed( double speed )
|
|
|
+ internal bool SetJogSpeed( double speed )
|
|
|
{
|
|
|
var rll = this.RequestDrive( "setm", $"4053/{speed}/{speed}" );
|
|
|
if ( rll.Count == 0 )
|
|
|
{
|
|
|
logger.E( $"[Set Drive Speed] - Drive Speed Time Out" );
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
//if ( !this.SetRequest( "6105", "1" ) )
|
|
|
// logger.E( $"[Set Safety Bumper] - Bumper is Pushed Time Out" );
|
|
|
|
|
|
logger.D( $"[Set Jog Speed] - Set Jog Speed {speed}" );
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
internal double GetDriveLinerSpeed()
|
|
|
@@ -1052,34 +1123,99 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- internal void SetDriveSpeed( string liner, string curve )
|
|
|
+ internal double GetAccelSpeed()
|
|
|
+ {
|
|
|
+ var rll = this.RequestDrive("getm", "9999");
|
|
|
+ if(rll.Count == 0)
|
|
|
+ {
|
|
|
+ logger.E($"[Get Accel Speed] - Accel Speed Time Out");
|
|
|
+ return 0d;
|
|
|
+ }
|
|
|
+
|
|
|
+ var ret = 0d;
|
|
|
+ double.TryParse(rll[1], out ret);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ internal double GetDecelSpeed()
|
|
|
+ {
|
|
|
+ var rll = this.RequestDrive("getm", "9999");
|
|
|
+ if (rll.Count == 0)
|
|
|
+ {
|
|
|
+ logger.E($"[Get Decel Speed] - Decel Speed Time Out");
|
|
|
+ return 0d;
|
|
|
+ }
|
|
|
+
|
|
|
+ var ret = 0d;
|
|
|
+ double.TryParse(rll[1], out ret);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ internal double GetCreepSpeed()
|
|
|
{
|
|
|
- var rll = this.RequestDrive( "setm", $"3016/{liner}/{curve}" );
|
|
|
+ var rll = this.RequestDrive("getm", "9999");
|
|
|
+ if (rll.Count == 0)
|
|
|
+ {
|
|
|
+ logger.E($"[Get Creep Speed] - Creep Speed Time Out");
|
|
|
+ return 0d;
|
|
|
+ }
|
|
|
+
|
|
|
+ var ret = 0d;
|
|
|
+ double.TryParse(rll[1], out ret);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ internal double GetCreepDistance()
|
|
|
+ {
|
|
|
+ var rll = this.RequestDrive("getm", "9999");
|
|
|
+ if (rll.Count == 0)
|
|
|
+ {
|
|
|
+ logger.E($"[Get Creep Distance] - Creep Distance Time Out");
|
|
|
+ return 0d;
|
|
|
+ }
|
|
|
+
|
|
|
+ var ret = 0d;
|
|
|
+ double.TryParse(rll[1], out ret);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ internal bool SetDriveSpeed( string linear, string curve )
|
|
|
+ {
|
|
|
+ var rll = this.RequestDrive("setm", $"3016/{linear}/{curve}");
|
|
|
+
|
|
|
if ( rll.Count == 0 )
|
|
|
{
|
|
|
logger.E( $"[Set Drive Speed] - Drive Speed Time Out" );
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
//if ( !this.SetRequest( "6105", "1" ) )
|
|
|
// logger.E( $"[Set Safety Bumper] - Bumper is Pushed Time Out" );
|
|
|
|
|
|
- logger.D( $"[Set Drive Speed] - Set Drive Speed Liner{liner}, Curve{curve}" );
|
|
|
+ logger.D( $"[Set Drive Speed] - Set Drive Speed Liner{linear}, Curve{curve}" );
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
- internal void SetDriveSpeedProfile( string accel, string decel, string creep, string creepDistance )
|
|
|
+ internal bool SetDriveSpeedProfile( string accel, string decel, string creep, string creepDistance )
|
|
|
{
|
|
|
var rll = this.RequestDrive( "setm", $"3013/{accel}/{decel}/{creep}/{creepDistance}" );
|
|
|
if ( rll.Count == 0 )
|
|
|
{
|
|
|
logger.E( $"[Set Drive Speed] - Drive Speed Time Out" );
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
//if ( !this.SetRequest( "6105", "1" ) )
|
|
|
// logger.E( $"[Set Safety Bumper] - Bumper is Pushed Time Out" );
|
|
|
|
|
|
logger.D( $"[Set Drive Speed] - Set Drive Speed Accel {accel}, Decel {decel}, Creep{creep}/{creepDistance}" );
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
#endregion
|