|
|
@@ -1,4 +1,5 @@
|
|
|
using GSG.NET.Concurrent;
|
|
|
+using GSG.NET.Extensions;
|
|
|
using GSG.NET.Logging;
|
|
|
using GSG.NET.ObjectBase;
|
|
|
using NetMQ;
|
|
|
@@ -13,6 +14,8 @@ using System.Diagnostics;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
+using VehicleControlSystem.ControlLayer.Serial.BatteryTabos;
|
|
|
+using VehicleControlSystem.ControlLayer.Serial.DataModel;
|
|
|
|
|
|
namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
{
|
|
|
@@ -20,6 +23,8 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
{
|
|
|
Logger logger = Logger.GetLogger();
|
|
|
|
|
|
+ SubscriberSocket subDriveInfoSocket = null;
|
|
|
+ PublisherSocket pub = null;
|
|
|
SubscriberSocket sub = null;
|
|
|
RequestSocket req = null;
|
|
|
ResponseSocket rep = null;
|
|
|
@@ -27,6 +32,9 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
NetMQPoller poller = null;
|
|
|
NetMQMonitor monitor = null;
|
|
|
|
|
|
+ Vehicle vehicle = null;
|
|
|
+ BMUManager bMUManager = null;
|
|
|
+
|
|
|
ThreadCancel threadCancel = new ThreadCancel();
|
|
|
|
|
|
private bool isReqConnected;
|
|
|
@@ -39,62 +47,108 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
|
|
|
#region Properties
|
|
|
private eSteeringState requestSteering;
|
|
|
-
|
|
|
public eSteeringState RequestSteering
|
|
|
{
|
|
|
get { return requestSteering; }
|
|
|
set { SetField( ref this.requestSteering, value ); }
|
|
|
}
|
|
|
|
|
|
- private bool isDriveMoving;
|
|
|
-
|
|
|
+ private bool isDriveMoving = false;
|
|
|
public bool IsDriveMoving
|
|
|
{
|
|
|
get { return isDriveMoving; }
|
|
|
- set { SetField( ref isDriveMoving, value ); }
|
|
|
- }
|
|
|
-
|
|
|
- private eRoadForm currentLoadForm;
|
|
|
-
|
|
|
- public eRoadForm CurrentLoadForm
|
|
|
- {
|
|
|
- get { return currentLoadForm; }
|
|
|
- set { SetField( ref currentLoadForm, value ); }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ if ( SetField( ref isDriveMoving, value ) )
|
|
|
+ {
|
|
|
+ pub.SendMoreFrame( "DriveStart" ).SendFrame( value.ToString() );
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private eOperatationMode operatationMode;
|
|
|
-
|
|
|
public eOperatationMode OperationMode
|
|
|
{
|
|
|
get { return operatationMode; }
|
|
|
set { operatationMode = value; }
|
|
|
}
|
|
|
|
|
|
+ private int currentPointNo;
|
|
|
+ public int CurrentPointNo
|
|
|
+ {
|
|
|
+ get { return currentPointNo; }
|
|
|
+ set { SetField( ref this.currentPointNo, value ); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private int segmentID;
|
|
|
+ public int SegmentID
|
|
|
+ {
|
|
|
+ get { return segmentID; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ if ( SetField( ref this.segmentID, value ) )
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private double frontLoadFactor;
|
|
|
+ public double FrontLoadFactor
|
|
|
+ {
|
|
|
+ get { return frontLoadFactor * 0.1; }
|
|
|
+ set { SetField( ref this.frontLoadFactor, value ); }
|
|
|
+ }
|
|
|
|
|
|
+ private double rearLoadFactor;
|
|
|
+ public double RearLoadFactor
|
|
|
+ {
|
|
|
+ get { return rearLoadFactor * 0.1; }
|
|
|
+ set { SetField( ref this.rearLoadFactor, value ); }
|
|
|
+ }
|
|
|
|
|
|
+ private double frontRPM;
|
|
|
+ public double FrontRPM
|
|
|
+ {
|
|
|
+ get { return Math.Truncate( frontRPM * 10 ) / 10; }
|
|
|
+ set { SetField( ref this.frontRPM, value ); }
|
|
|
+ }
|
|
|
|
|
|
+ private double rearRPM;
|
|
|
+ public double RearRPM
|
|
|
+ {
|
|
|
+ get { return Math.Truncate( rearRPM * 10 ) / 10; }
|
|
|
+ set { SetField( ref this.rearRPM, value ); }
|
|
|
+ }
|
|
|
#endregion
|
|
|
|
|
|
- public ZmqManager()
|
|
|
+ public ZmqManager( Vehicle vehicle, BMUManager bMU )
|
|
|
{
|
|
|
NetMQ.NetMQConfig.Cleanup();
|
|
|
+
|
|
|
+ this.bMUManager = bMU;
|
|
|
+ this.vehicle = vehicle;
|
|
|
}
|
|
|
|
|
|
public void Init()
|
|
|
{
|
|
|
- rep = new ResponseSocket();
|
|
|
- rep.Bind( "tcp://127.0.0.1:5568" );
|
|
|
- rep.ReceiveReady += Rep_ReceiveReady;
|
|
|
+ pub = new PublisherSocket();
|
|
|
+ pub.Bind( "tcp://127.0.0.1:5570" );
|
|
|
|
|
|
sub = new SubscriberSocket();
|
|
|
sub.Connect( "tcp://127.0.0.1:5565" );
|
|
|
sub.Connect( "tcp://127.0.0.1:5566" );
|
|
|
+ sub.Connect( "tcp://127.0.0.1:5577" );
|
|
|
sub.Subscribe( "" ); //All
|
|
|
sub.ReceiveReady += Sub_ReceiveReady;
|
|
|
|
|
|
+ rep = new ResponseSocket();
|
|
|
+ rep.Bind( "tcp://127.0.0.1:5568" );
|
|
|
+ rep.ReceiveReady += Rep_ReceiveReady;
|
|
|
+
|
|
|
req = new RequestSocket();
|
|
|
this.monitor = new NetMQMonitor( req, "inproc://rep.inproc", SocketEvents.Disconnected | SocketEvents.Connected );
|
|
|
- this.monitor.Connected += ( s, a ) => { this.IsReqConnected = true; };
|
|
|
+ this.monitor.Connected += ( s, a ) => { this.IsReqConnected = true; CurrentPointNo = GetCurrentPointNo(); };
|
|
|
this.monitor.Disconnected += ( s, a ) => { this.IsReqConnected = false; };
|
|
|
this.monitor.StartAsync();
|
|
|
|
|
|
@@ -102,6 +156,33 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
|
|
|
this.poller = new NetMQPoller { this.sub, this.rep };
|
|
|
this.poller.RunAsync();
|
|
|
+
|
|
|
+ //this.vehicle.PropertyChanged += Vehicle_PropertyChanged;
|
|
|
+ this.bMUManager.OnChangedReceivedData += BMUManager_OnChangedReceivedData;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void BMUManager_OnChangedReceivedData( Serial.DataModel.ReceivedData obj )
|
|
|
+ {
|
|
|
+ var kind = CastTo<eDataKind>.From<Enum>( obj.DataKind );
|
|
|
+ switch ( kind )
|
|
|
+ {
|
|
|
+ case eDataKind.Current:
|
|
|
+ var currnet = (double)obj.Value * obj.Scale;
|
|
|
+ this.pub.SendMoreFrame( "BatteryCurrent" ).SendFrame( currnet.ToString() ); ;
|
|
|
+ break;
|
|
|
+ case eDataKind.Voltage:
|
|
|
+ case eDataKind.BatteryState:
|
|
|
+ case eDataKind.ChargeCompleteTime:
|
|
|
+ case eDataKind.DisChargeCompleteTime:
|
|
|
+ case eDataKind.SOC:
|
|
|
+ case eDataKind.SOH:
|
|
|
+ case eDataKind.ResidualCapacity:
|
|
|
+ case eDataKind.ResidualEnergy:
|
|
|
+ case eDataKind.Temperature:
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void Dispose()
|
|
|
@@ -121,7 +202,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
private void Rep_ReceiveReady( object sender, NetMQSocketEventArgs e )
|
|
|
{
|
|
|
var ret = e.Socket.ReceiveMultipartStrings();
|
|
|
- logger.D( $"[rep] - {ret}" );
|
|
|
+ logger.D( $"[rep] - {ret[1]}" );
|
|
|
|
|
|
if ( ret[0].Equals( "setm" ) )
|
|
|
{
|
|
|
@@ -158,20 +239,88 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
{
|
|
|
}
|
|
|
break;
|
|
|
+
|
|
|
+ case "4012":
|
|
|
+ if ( v[1].Equals( "3" ) )
|
|
|
+ IsDriveMoving = true;
|
|
|
+ else
|
|
|
+ IsDriveMoving = false;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "3009":
|
|
|
+ {
|
|
|
+ int iV = 0;
|
|
|
+ int.TryParse( v[1], out iV );
|
|
|
+ this.CurrentPointNo = iV;
|
|
|
+ int.TryParse( v[2], out iV );
|
|
|
+ this.SegmentID = iV;
|
|
|
+ }
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
rep.SendMoreFrame( "setm" ).SendFrame( $"ok/{v[0]}" );
|
|
|
}
|
|
|
+
|
|
|
+ if ( ret[0].Equals( "getm" ) )
|
|
|
+ {
|
|
|
+ var v = ret[1].Split( '/' );
|
|
|
+ switch ( v[0] )
|
|
|
+ {
|
|
|
+ case "3060":
|
|
|
+ {
|
|
|
+ switch ( this.vehicle.GetESteeringState() )
|
|
|
+ {
|
|
|
+ case eSteeringState.None:
|
|
|
+ rep.SendMoreFrame( "getm" ).SendFrame( $"ok/{v[0]}/0" );
|
|
|
+ break;
|
|
|
+ case eSteeringState.Left:
|
|
|
+ rep.SendMoreFrame( "getm" ).SendFrame( $"ok/{v[0]}/1" );
|
|
|
+ break;
|
|
|
+ case eSteeringState.Right:
|
|
|
+ rep.SendMoreFrame( "getm" ).SendFrame( $"ok/{v[0]}/-1" );
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ rep.SendMoreFrame( "getm" ).SendFrame( $"ok/{v[0]}/0" );
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void Sub_ReceiveReady( object sender, NetMQ.NetMQSocketEventArgs e )
|
|
|
{
|
|
|
var ret = e.Socket.ReceiveMultipartStrings();
|
|
|
- logger.I( ret );
|
|
|
+ //logger.I( ret );
|
|
|
+
|
|
|
+ var vl = ret[1].Split( '/' );
|
|
|
|
|
|
switch ( ret[0] )
|
|
|
{
|
|
|
+ case "7028":
|
|
|
+ {
|
|
|
+ var ll = Convert.ToDouble( vl[0] );
|
|
|
+ this.FrontRPM = Math.Truncate( ll * 100 ) / 100;
|
|
|
+ var li = Convert.ToDouble( vl[1] );
|
|
|
+ this.RearRPM = Math.Truncate( li * 100 ) / 100;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "7030":
|
|
|
+ {
|
|
|
+ var ll = Convert.ToDouble( vl[0] );
|
|
|
+ this.FrontLoadFactor = Math.Truncate( ll * 100 ) / 100;
|
|
|
+ var rL = Convert.ToDouble( vl[1] );
|
|
|
+ this.RearLoadFactor = Math.Truncate( rL * 100 ) / 100;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
case "3050": //TargetSteering
|
|
|
{
|
|
|
//switch ( ret[1] )
|
|
|
@@ -209,6 +358,12 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
+ //case "Tag":
|
|
|
+ // {
|
|
|
+ // var v = ret[1].Split( ';' );
|
|
|
+ // this.CurrentPointNo = Convert.ToInt16(v[0]);
|
|
|
+ // }
|
|
|
+ //break;
|
|
|
|
|
|
default:
|
|
|
break;
|
|
|
@@ -233,75 +388,132 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
|
|
|
bool Request( string topic, string value, out string response )
|
|
|
{
|
|
|
+ logger.D( $"req - {value}" );
|
|
|
+
|
|
|
List<string> repll = new List<string>();
|
|
|
response = string.Empty;
|
|
|
|
|
|
if ( !this.IsReqConnected )
|
|
|
return false;
|
|
|
|
|
|
- if ( !this.req.HasIn )
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //if ( this.req.HasOut )
|
|
|
this.req.SendMoreFrame( topic ).SendFrame( value );
|
|
|
|
|
|
- if ( this.req.TryReceiveMultipartStrings( TimeSpan.FromSeconds( 5 ), ref repll ) )
|
|
|
- return true;
|
|
|
- else
|
|
|
+ if ( this.req.TryReceiveMultipartStrings( TimeSpan.FromSeconds( 5 ), ref repll ) )
|
|
|
+ return true;
|
|
|
+ else
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
+ catch ( Exception e )
|
|
|
+ {
|
|
|
+ logger.E( e );
|
|
|
+ //this.req.Dispose();
|
|
|
+ //this.monitor.Stop();
|
|
|
+ //this.monitor.Dispose();
|
|
|
+
|
|
|
+ //req = new RequestSocket();
|
|
|
+ //this.monitor = new NetMQMonitor( req, "inproc://rep.inproc", SocketEvents.Disconnected | SocketEvents.Connected );
|
|
|
+ //this.monitor.Connected += ( s, a ) => { this.IsReqConnected = true; CurrentPointNo = GetCurrentPointNo(); };
|
|
|
+ //this.monitor.Disconnected += ( s, a ) => { this.IsReqConnected = false; };
|
|
|
+ //this.monitor.StartAsync();
|
|
|
+
|
|
|
+ //req.Connect( "tcp://127.0.0.1:5567" );
|
|
|
+
|
|
|
return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- bool SetRequest(string index, string value )
|
|
|
+ bool SetRequest( string index, string value )
|
|
|
{
|
|
|
+ logger.D( $"req - {index} / {value}" );
|
|
|
+
|
|
|
List<string> repll = new List<string>();
|
|
|
|
|
|
if ( !this.IsReqConnected )
|
|
|
return false;
|
|
|
|
|
|
- if ( !this.req.HasIn )
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //if ( this.req.HasOut )
|
|
|
this.req.SendMoreFrame( "setm" ).SendFrame( index + "/" + value );
|
|
|
|
|
|
- if ( !this.req.TryReceiveMultipartStrings( TimeSpan.FromSeconds( 5 ), ref repll ) )
|
|
|
- return false;
|
|
|
+ if ( !this.req.TryReceiveMultipartStrings( TimeSpan.FromSeconds( 5 ), ref repll ) )
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
+ catch ( Exception e )
|
|
|
+ {
|
|
|
+ logger.E( e );
|
|
|
+ //this.req.Dispose();
|
|
|
+ //this.monitor.Stop();
|
|
|
+ //this.monitor.Dispose();
|
|
|
|
|
|
+ //req = new RequestSocket();
|
|
|
+ //this.monitor = new NetMQMonitor( req, "inproc://rep.inproc", SocketEvents.Disconnected | SocketEvents.Connected );
|
|
|
+ //this.monitor.Connected += ( s, a ) => { this.IsReqConnected = true; CurrentPointNo = GetCurrentPointNo(); };
|
|
|
+ //this.monitor.Disconnected += ( s, a ) => { this.IsReqConnected = false; };
|
|
|
+ //this.monitor.StartAsync();
|
|
|
+
|
|
|
+ //req.Connect( "tcp://127.0.0.1:5567" );
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- bool GetRequst( string index, out List<string> vll)
|
|
|
+ bool GetRequst( string index, out List<string> vll )
|
|
|
{
|
|
|
+ logger.D( $"req - {index}" );
|
|
|
+
|
|
|
vll = new List<string>();
|
|
|
|
|
|
if ( !this.IsReqConnected )
|
|
|
return false;
|
|
|
|
|
|
- if ( !this.req.HasIn )
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //if ( this.req.HasOut )
|
|
|
this.req.SendMoreFrame( "getm" ).SendFrame( index );
|
|
|
|
|
|
- List<string> repll = new List<string>();
|
|
|
+ List<string> repll = new List<string>();
|
|
|
+
|
|
|
+ if ( !this.req.TryReceiveMultipartStrings( TimeSpan.FromSeconds( 5 ), ref repll ) )
|
|
|
+ return false;
|
|
|
|
|
|
- if ( this.req.TryReceiveMultipartStrings( TimeSpan.FromSeconds( 5 ), ref repll ) )
|
|
|
- {
|
|
|
repll.RemoveAt( 0 );
|
|
|
|
|
|
var ret = repll[0].Split( '/' );
|
|
|
repll.Clear();
|
|
|
|
|
|
- ret.ForEach( s =>
|
|
|
+ foreach ( var item in ret )
|
|
|
{
|
|
|
- if ( s.Equals( "ok" ) || s.Equals( "nok" ) || s.Equals( index ) )
|
|
|
- repll.Add( s );
|
|
|
- } );
|
|
|
-
|
|
|
+ if ( item.Equals( "ok" ) || item.Equals( "nok" ) || item.Equals( index ) )
|
|
|
+ continue;
|
|
|
+ repll.Add( item );
|
|
|
+ }
|
|
|
vll = repll;
|
|
|
-
|
|
|
- return true;
|
|
|
}
|
|
|
- else
|
|
|
- return false;
|
|
|
+ catch ( Exception e )
|
|
|
+ {
|
|
|
+ logger.E( e );
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
#region Get Request Method
|
|
|
public eOperatationMode GetOperationMode()
|
|
|
{
|
|
|
List<string> rll;
|
|
|
- this.GetRequst( "111", out rll );
|
|
|
+ if ( !this.GetRequst( "111", out rll ) )
|
|
|
+ {
|
|
|
+ logger.E( $"[Get Operation Mode] - Response Time Out" );
|
|
|
+ return eOperatationMode.InitialMode;
|
|
|
+ }
|
|
|
|
|
|
if ( rll[0].Equals( "1" ) )
|
|
|
return eOperatationMode.AutoMode;
|
|
|
@@ -309,82 +521,110 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
return eOperatationMode.ManualMode;
|
|
|
}
|
|
|
|
|
|
- public int CurrentPointNo()
|
|
|
+ public int GetCurrentPointNo()
|
|
|
{
|
|
|
- List<string> rll;
|
|
|
- this.GetRequst( "111", out rll );
|
|
|
-
|
|
|
int ret = 0;
|
|
|
- int.TryParse( rll[1], out ret );
|
|
|
+ List<string> rll;
|
|
|
+ if ( this.GetRequst( "3009", out rll ) )
|
|
|
+ {
|
|
|
+ int.TryParse( rll[0], out ret );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ logger.E( $"[Get Current Point] - Response Time Out" );
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region Set Request Method
|
|
|
+ internal void SetStartMove()
|
|
|
+ {
|
|
|
+ if ( !SetRequest( "3031", "2" ) )
|
|
|
+ logger.E( $"[Set Start Move] - Response Time Out" );
|
|
|
+ }
|
|
|
+ internal void SetTargetPoint( string point )
|
|
|
+ {
|
|
|
+ if ( !SetRequest( "3033", point ))
|
|
|
+ logger.E( $"[Set TargetPoint] - Response Time Out" );
|
|
|
+ }
|
|
|
|
|
|
internal void SetObstruction( eObstacleState state )
|
|
|
{
|
|
|
string outStr = string.Empty;
|
|
|
+ string val = string.Empty;
|
|
|
|
|
|
switch ( state )
|
|
|
{
|
|
|
case eObstacleState.Normal:
|
|
|
- this.Request( "setm", "5001/0", out outStr );
|
|
|
+ val = "0";
|
|
|
break;
|
|
|
case eObstacleState.Abnormal:
|
|
|
- this.Request( "setm", "5001/3", out outStr );
|
|
|
+ val = "3";
|
|
|
break;
|
|
|
case eObstacleState.Blocked:
|
|
|
- this.Request( "setm", "5001/2", out outStr );
|
|
|
+ val = "2";
|
|
|
break;
|
|
|
case eObstacleState.Decelerate:
|
|
|
- this.Request( "setm", "5001/1", out outStr );
|
|
|
+ val = "1";
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
+ if ( !this.SetRequest( "5001", val ) )
|
|
|
+ logger.E( $"[Set Obstruction] - Response Time Out" );
|
|
|
}
|
|
|
|
|
|
- internal void SetOperationSate(eOperatationMode mode)
|
|
|
+ internal void SetOperationState( eOperatationMode mode )
|
|
|
{
|
|
|
string outStr = string.Empty;
|
|
|
+ string val = string.Empty;
|
|
|
|
|
|
if ( mode == eOperatationMode.AutoMode )
|
|
|
- this.Request( "set", "112/1", out outStr );
|
|
|
+ val = "1";
|
|
|
else if ( mode == eOperatationMode.ManualMode )
|
|
|
- this.Request( "set", "112/0", out outStr );
|
|
|
+ val = "0";
|
|
|
else
|
|
|
{ }
|
|
|
+
|
|
|
+ if ( !SetRequest("112", val))
|
|
|
+ logger.E( $"[Set Operation State] - Response Time Out" );
|
|
|
}
|
|
|
|
|
|
- internal void SetMCState(bool isOn )
|
|
|
+ internal void SetMCState( bool isOn )
|
|
|
{
|
|
|
string outStr = string.Empty;
|
|
|
+ string val = string.Empty;
|
|
|
+
|
|
|
if ( isOn )
|
|
|
- this.Request( "setm", "5000/1", out outStr );
|
|
|
+ val = "1";
|
|
|
else
|
|
|
- this.Request( "setm", "5000/0", out outStr );
|
|
|
+ val = "0";
|
|
|
+
|
|
|
+ if ( !this.SetRequest( "5000", val ) )
|
|
|
+ logger.E( $"[Set MCState] - Response Time Out" );
|
|
|
}
|
|
|
|
|
|
internal void SetCurrentSteeringState( eSteeringState state )
|
|
|
{
|
|
|
string outStr = string.Empty;
|
|
|
- bool ret = false;
|
|
|
+ string val = string.Empty;
|
|
|
+
|
|
|
switch ( state )
|
|
|
{
|
|
|
case eSteeringState.None:
|
|
|
- ret = this.Request( "set", "3060/0/0", out outStr );
|
|
|
+ val = "0";
|
|
|
break;
|
|
|
case eSteeringState.Left:
|
|
|
- ret = this.Request( "set", "3060/0/1", out outStr );
|
|
|
+ val = "1";
|
|
|
break;
|
|
|
case eSteeringState.Right:
|
|
|
- ret = this.Request( "set", "3060/0/-1", out outStr );
|
|
|
+ val = "-1";
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
+ if ( !this.SetRequest( "3060", val ) )
|
|
|
+ logger.E( $"[Set Current Steering] - Response Time Out" );
|
|
|
}
|
|
|
#endregion
|
|
|
}
|