|
|
@@ -6,6 +6,7 @@ using System.Threading.Tasks;
|
|
|
using FluentResults;
|
|
|
using GSG.NET.Concurrent;
|
|
|
using GSG.NET.Logging;
|
|
|
+using GSG.NET.Utils;
|
|
|
using OHV.Common.Events;
|
|
|
using OHV.Common.Model;
|
|
|
using OHV.Common.Shareds;
|
|
|
@@ -31,10 +32,10 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
public eClampState ClampState
|
|
|
{
|
|
|
get { return this._clampState; }
|
|
|
- set { this.SetField( ref this._clampState , value ); }
|
|
|
+ set { this.SetField( ref this._clampState, value ); }
|
|
|
}
|
|
|
|
|
|
- public Clamp(SqliteManager sqliteManager, IEventAggregator ea)
|
|
|
+ public Clamp( SqliteManager sqliteManager, IEventAggregator ea )
|
|
|
{
|
|
|
this.sql = sqliteManager;
|
|
|
this.eventAggregator = ea;
|
|
|
@@ -44,72 +45,76 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
{
|
|
|
this.CreateAxis();
|
|
|
|
|
|
- this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Unsubscribe(ReceivedMessageEvent);
|
|
|
- this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Subscribe(ReceivedMessageEvent);
|
|
|
+ this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Unsubscribe( ReceivedMessageEvent );
|
|
|
+ this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Subscribe( ReceivedMessageEvent );
|
|
|
}
|
|
|
|
|
|
- void ReceivedMessageEvent(AxisControlEventArgs args)
|
|
|
+ void ReceivedMessageEvent( AxisControlEventArgs args )
|
|
|
{
|
|
|
- if (args.Dir == AxisControlEventArgs.eEventDir.ToBack)
|
|
|
+ if ( args.Dir == AxisControlEventArgs.eEventDir.ToBack )
|
|
|
{
|
|
|
- switch ( args.Kind )
|
|
|
+ Task.Factory.StartNew( () =>
|
|
|
{
|
|
|
- case AxisControlEventArgs.eAxisControlKind.Stop:
|
|
|
- this.ReqStop();
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.EStop:
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.Move:
|
|
|
- this.ReqOrderByMove( args );
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.Jog:
|
|
|
- this.ReqJog( args );
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.ServoOn:
|
|
|
- this.ReqServoOn( args );
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.ServoOff:
|
|
|
- this.ReqServoOff( args );
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.ReqCurrentPosition:
|
|
|
- this.ReqStartAxisState();
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.ReqStopCurrentPosition:
|
|
|
- this.taskCancel.Cancel();
|
|
|
- this.taskCancel.WaitAll();
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.OriginReturn:
|
|
|
- this.ReqOriginReturn( args );
|
|
|
- break;
|
|
|
- case AxisControlEventArgs.eAxisControlKind.FaultReset:
|
|
|
- this.ReqFaultReset( args );
|
|
|
- break;
|
|
|
- case eAxisControlKind.NONE:
|
|
|
- break;
|
|
|
- case eAxisControlKind.AxisState:
|
|
|
- break;
|
|
|
- case eAxisControlKind.SyncMove:
|
|
|
- this.ReqSyncMove( args );
|
|
|
- break;
|
|
|
- case eAxisControlKind.SyncState:
|
|
|
- this.ReqSyncState( args );
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ var arg = ObjectCopyUtils.DeepClone( args );
|
|
|
+ switch ( arg.Kind )
|
|
|
+ {
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.Stop:
|
|
|
+ ReqStop();
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.EStop:
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.Move:
|
|
|
+ ReqOrderByMove( arg );
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.Jog:
|
|
|
+ ReqJog( arg );
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.ServoOn:
|
|
|
+ ReqServoOn( arg );
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.ServoOff:
|
|
|
+ ReqServoOff( arg );
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.ReqCurrentPosition:
|
|
|
+ ReqStartAxisState();
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.ReqStopCurrentPosition:
|
|
|
+ taskCancel.Cancel();
|
|
|
+ taskCancel.WaitAll();
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.OriginReturn:
|
|
|
+ ReqOriginReturn( arg );
|
|
|
+ break;
|
|
|
+ case AxisControlEventArgs.eAxisControlKind.FaultReset:
|
|
|
+ ReqFaultReset( arg );
|
|
|
+ break;
|
|
|
+ case eAxisControlKind.NONE:
|
|
|
+ break;
|
|
|
+ case eAxisControlKind.AxisState:
|
|
|
+ break;
|
|
|
+ case eAxisControlKind.SyncMove:
|
|
|
+ ReqSyncMove( arg );
|
|
|
+ break;
|
|
|
+ case eAxisControlKind.SyncState:
|
|
|
+ ReqSyncState( arg );
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void ReqStop( )
|
|
|
+ private void ReqStop()
|
|
|
{
|
|
|
- logger.D( $"JogMove - Stop Command");
|
|
|
+ logger.D( $"JogMove - Stop Command" );
|
|
|
this.axes.ForEach( x => { x.Stop(); } );
|
|
|
}
|
|
|
|
|
|
- void PublishEvent(AxisControlEventArgs args)
|
|
|
+ void PublishEvent( AxisControlEventArgs args )
|
|
|
{
|
|
|
args.Dir = AxisControlEventArgs.eEventDir.ToFront;
|
|
|
- this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Publish(args);
|
|
|
+ this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Publish( args );
|
|
|
}
|
|
|
|
|
|
#region Request Method
|
|
|
@@ -118,13 +123,13 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_LEFT ).ToList();
|
|
|
var leftLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
|
|
|
var leftUnLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
|
|
|
-
|
|
|
+
|
|
|
var left = this.axes.Where( x => x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();
|
|
|
|
|
|
var rightPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_RIGHT ).ToList();
|
|
|
var rightLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
|
|
|
var rightUnLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
|
|
|
-
|
|
|
+
|
|
|
var right = this.axes.Where( x => x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT ) ).Single();
|
|
|
|
|
|
if ( left.CurrentPosition == leftLockData.Value && right.CurrentPosition == rightLockData.Value )
|
|
|
@@ -164,14 +169,14 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
{
|
|
|
var alarm = this.sql.AlarmDAL.GetK( result );
|
|
|
if ( alarm == null )
|
|
|
- alarm = new Alarm() { Name = "UnKnown Alarm" , Text = "Not Define" };
|
|
|
-
|
|
|
- var error = new Error().WithMetadata( "Alarm" , alarm );
|
|
|
- reply.Result = Results.Fail(error);
|
|
|
+ alarm = new Alarm() { Name = "UnKnown Alarm", Text = "Not Define" };
|
|
|
+
|
|
|
+ var error = new Error().WithMetadata( "Alarm", alarm );
|
|
|
+ reply.Result = Results.Fail( error );
|
|
|
|
|
|
this.ClampState = eClampState.NONE;
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
result = this.Unlock_Sync();
|
|
|
@@ -184,9 +189,9 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
{
|
|
|
var alarm = this.sql.AlarmDAL.GetK( result );
|
|
|
if ( alarm == null )
|
|
|
- alarm = new Alarm() { Name = "UnKnown Alarm" , Text = "Not Define" };
|
|
|
+ alarm = new Alarm() { Name = "UnKnown Alarm", Text = "Not Define" };
|
|
|
|
|
|
- var error = new Error().WithMetadata( "Alarm" , alarm );
|
|
|
+ var error = new Error().WithMetadata( "Alarm", alarm );
|
|
|
reply.Result = Results.Fail( error );
|
|
|
|
|
|
this.ClampState = eClampState.NONE;
|
|
|
@@ -196,9 +201,9 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.PublishEvent( reply );
|
|
|
}
|
|
|
|
|
|
- private void ReqFaultReset(AxisControlEventArgs args)
|
|
|
+ private void ReqFaultReset( AxisControlEventArgs args )
|
|
|
{
|
|
|
- var axis = this.axes.Where(x => x.Config.AxisName.Equals(args.AxisName)).FirstOrDefault();
|
|
|
+ var axis = this.axes.Where( x => x.Config.AxisName.Equals( args.AxisName ) ).FirstOrDefault();
|
|
|
int resultNo = axis.ResetAmpFault();
|
|
|
|
|
|
var msg = new AxisControlEventArgs
|
|
|
@@ -207,13 +212,13 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
Dir = AxisControlEventArgs.eEventDir.ToFront,
|
|
|
Kind = AxisControlEventArgs.eAxisControlKind.FaultReset,
|
|
|
};
|
|
|
- msg.Result = Results.Ok("Servo Fault Reset");
|
|
|
- this.PublishEvent(msg);
|
|
|
+ msg.Result = Results.Ok( "Servo Fault Reset" );
|
|
|
+ this.PublishEvent( msg );
|
|
|
}
|
|
|
|
|
|
- private void ReqServoOn(AxisControlEventArgs args)
|
|
|
+ private void ReqServoOn( AxisControlEventArgs args )
|
|
|
{
|
|
|
- var axis = this.axes.Where(x => x.Config.AxisName.Equals(args.AxisName)).FirstOrDefault();
|
|
|
+ var axis = this.axes.Where( x => x.Config.AxisName.Equals( args.AxisName ) ).FirstOrDefault();
|
|
|
axis.ServoOn();
|
|
|
|
|
|
var msg = new AxisControlEventArgs
|
|
|
@@ -222,13 +227,13 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
Dir = AxisControlEventArgs.eEventDir.ToFront,
|
|
|
Kind = AxisControlEventArgs.eAxisControlKind.ServoOn,
|
|
|
};
|
|
|
- msg.Result = Results.Ok("Servo On");
|
|
|
- this.PublishEvent(msg);
|
|
|
+ msg.Result = Results.Ok( "Servo On" );
|
|
|
+ this.PublishEvent( msg );
|
|
|
}
|
|
|
|
|
|
- private void ReqServoOff(AxisControlEventArgs args)
|
|
|
+ private void ReqServoOff( AxisControlEventArgs args )
|
|
|
{
|
|
|
- var axis = this.axes.Where(x => x.Config.AxisName.Equals(args.AxisName)).FirstOrDefault();
|
|
|
+ var axis = this.axes.Where( x => x.Config.AxisName.Equals( args.AxisName ) ).FirstOrDefault();
|
|
|
axis.ServoOff();
|
|
|
|
|
|
var msg = new AxisControlEventArgs
|
|
|
@@ -237,22 +242,22 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
Dir = AxisControlEventArgs.eEventDir.ToFront,
|
|
|
Kind = AxisControlEventArgs.eAxisControlKind.ServoOff,
|
|
|
};
|
|
|
- msg.Result = Results.Ok("Servo Off");
|
|
|
- this.PublishEvent(msg);
|
|
|
+ msg.Result = Results.Ok( "Servo Off" );
|
|
|
+ this.PublishEvent( msg );
|
|
|
}
|
|
|
|
|
|
void ReqStartAxisState()
|
|
|
{
|
|
|
- var task = Task.Factory.StartNew(() =>
|
|
|
- {
|
|
|
- double[] beforePosition = new double[this.axes.Count];
|
|
|
- beforePosition.Initialize();
|
|
|
+ var task = Task.Factory.StartNew( () =>
|
|
|
+ {
|
|
|
+ double[] beforePosition = new double[this.axes.Count];
|
|
|
+ beforePosition.Initialize();
|
|
|
|
|
|
- while (!this.taskCancel.Canceled)
|
|
|
- {
|
|
|
- LockUtils.Wait(500);
|
|
|
+ while ( !this.taskCancel.Canceled )
|
|
|
+ {
|
|
|
+ LockUtils.Wait( 500 );
|
|
|
|
|
|
- int index = 0;
|
|
|
+ int index = 0;
|
|
|
//this.axes.ForEach(a =>
|
|
|
//{
|
|
|
// if (beforePosition[index] != a.CurrentPosition)
|
|
|
@@ -271,41 +276,41 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
// index++;
|
|
|
//});
|
|
|
var msg = new AxisControlEventArgs();
|
|
|
- msg.Kind = AxisControlEventArgs.eAxisControlKind.AxisState;
|
|
|
- msg.Args = new Dictionary<string, object>();
|
|
|
- this.axes.ForEach(a =>
|
|
|
- {
|
|
|
- var state = new AxisState();
|
|
|
- state.IsServoOn = a.IsServoOn();
|
|
|
- state.IsOriginReturn = a.IsOriginReturn();
|
|
|
- state.IsAmpFault = a.IsAmpFault();
|
|
|
- state.CurrentPosition = a.CurrentPosition;
|
|
|
-
|
|
|
- if (a.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_LEFT))
|
|
|
- msg.Args.Add("Left", state);
|
|
|
- else
|
|
|
- msg.Args.Add("Right", state);
|
|
|
- });
|
|
|
- this.PublishEvent(msg);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- this.taskCancel.Add(task);
|
|
|
+ msg.Kind = AxisControlEventArgs.eAxisControlKind.AxisState;
|
|
|
+ msg.Args = new Dictionary<string, object>();
|
|
|
+ this.axes.ForEach( a =>
|
|
|
+ {
|
|
|
+ var state = new AxisState();
|
|
|
+ state.IsServoOn = a.IsServoOn();
|
|
|
+ state.IsOriginReturn = a.IsOriginReturn();
|
|
|
+ state.IsAmpFault = a.IsAmpFault();
|
|
|
+ state.CurrentPosition = a.CurrentPosition;
|
|
|
+
|
|
|
+ if ( a.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) )
|
|
|
+ msg.Args.Add( "Left", state );
|
|
|
+ else
|
|
|
+ msg.Args.Add( "Right", state );
|
|
|
+ } );
|
|
|
+ this.PublishEvent( msg );
|
|
|
+ }
|
|
|
+ } );
|
|
|
+
|
|
|
+ this.taskCancel.Add( task );
|
|
|
}
|
|
|
|
|
|
- void ReqJog(AxisControlEventArgs arg)
|
|
|
+ void ReqJog( AxisControlEventArgs arg )
|
|
|
{
|
|
|
var velocity = arg.JogVelocity;
|
|
|
- if (arg.JogDir == AxisControlEventArgs.eJogMoveDir.Positive)
|
|
|
- this.JogMove(arg.AxisName, E_JogMoveDir.Positive, velocity);
|
|
|
+ if ( arg.JogDir == AxisControlEventArgs.eJogMoveDir.Positive )
|
|
|
+ this.JogMove( arg.AxisName, E_JogMoveDir.Positive, velocity );
|
|
|
else
|
|
|
- this.JogMove(arg.AxisName, E_JogMoveDir.Negative, velocity);
|
|
|
+ this.JogMove( arg.AxisName, E_JogMoveDir.Negative, velocity );
|
|
|
}
|
|
|
|
|
|
- void ReqOriginReturn(AxisControlEventArgs arg)
|
|
|
+ void ReqOriginReturn( AxisControlEventArgs arg )
|
|
|
{
|
|
|
int result = 0;
|
|
|
- if (arg.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_LEFT))
|
|
|
+ if ( arg.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) )
|
|
|
result = this.LeftOriginReturn();
|
|
|
else
|
|
|
result = this.RightOriginReturn();
|
|
|
@@ -320,27 +325,27 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
else
|
|
|
msg.Result = Results.Ok();
|
|
|
|
|
|
- this.PublishEvent(msg);
|
|
|
+ this.PublishEvent( msg );
|
|
|
}
|
|
|
|
|
|
- void ReqOrderByMove(AxisControlEventArgs arg)
|
|
|
+ void ReqOrderByMove( AxisControlEventArgs arg )
|
|
|
{
|
|
|
var msg = new AxisControlEventArgs();
|
|
|
msg.Kind = AxisControlEventArgs.eAxisControlKind.Move;
|
|
|
msg.PosDir = arg.PosDir;
|
|
|
int result = 0;
|
|
|
|
|
|
- if (arg.PosDir == AxisControlEventArgs.ePosDir.Lock)
|
|
|
+ if ( arg.PosDir == AxisControlEventArgs.ePosDir.Lock )
|
|
|
{
|
|
|
result = this.MoveToLockPosition( arg.AxisName );
|
|
|
- if (result != 0)
|
|
|
+ if ( result != 0 )
|
|
|
{
|
|
|
- var alarm = this.sql.AlarmDAL.GetK(result);
|
|
|
- if (alarm == null)
|
|
|
+ var alarm = this.sql.AlarmDAL.GetK( result );
|
|
|
+ if ( alarm == null )
|
|
|
alarm = new Alarm() { Name = "Unknown Alarm", Text = "Not define" };
|
|
|
|
|
|
- var error = new Error().WithMetadata("Alarm", alarm);
|
|
|
- msg.Result = Results.Fail(error);
|
|
|
+ var error = new Error().WithMetadata( "Alarm", alarm );
|
|
|
+ msg.Result = Results.Fail( error );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -350,14 +355,14 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
else
|
|
|
{
|
|
|
result = this.MoveToUnlockPosition( arg.AxisName );
|
|
|
- if (result != 0)
|
|
|
+ if ( result != 0 )
|
|
|
{
|
|
|
- var alarm = this.sql.AlarmDAL.GetK(result);
|
|
|
- if (alarm == null)
|
|
|
+ var alarm = this.sql.AlarmDAL.GetK( result );
|
|
|
+ if ( alarm == null )
|
|
|
alarm = new Alarm() { Name = "Unknown Alarm", Text = "Not define" };
|
|
|
|
|
|
- var error = new Error().WithMetadata("Alarm", alarm);
|
|
|
- msg.Result = Results.Fail(error);
|
|
|
+ var error = new Error().WithMetadata( "Alarm", alarm );
|
|
|
+ msg.Result = Results.Fail( error );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -365,77 +370,77 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- this.PublishEvent(msg);
|
|
|
+ this.PublishEvent( msg );
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
public void ClampEStop()
|
|
|
{
|
|
|
- this.axes.ForEach(x => { x.EmergencyStop(); });
|
|
|
+ this.axes.ForEach( x => { x.EmergencyStop(); } );
|
|
|
}
|
|
|
|
|
|
void CreateAxis()
|
|
|
{
|
|
|
- sql.AxisConfigDAL.All.ForEach(config =>
|
|
|
- {
|
|
|
- Axis.AxisConfig c = new Axis.AxisConfig
|
|
|
- {
|
|
|
- AxisName = config.Name,
|
|
|
- Scale = config.Scale,
|
|
|
- Address = config.Address,
|
|
|
- AxisNo = config.Id,
|
|
|
- };
|
|
|
+ sql.AxisConfigDAL.All.ForEach( config =>
|
|
|
+ {
|
|
|
+ Axis.AxisConfig c = new Axis.AxisConfig
|
|
|
+ {
|
|
|
+ AxisName = config.Name,
|
|
|
+ Scale = config.Scale,
|
|
|
+ Address = config.Address,
|
|
|
+ AxisNo = config.Id,
|
|
|
+ };
|
|
|
|
|
|
//if ( config.Name.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) )
|
|
|
// c.AxisNo = 40;
|
|
|
//else
|
|
|
// c.AxisNo = 41;
|
|
|
|
|
|
- axes.Add(new EzAxis(c));
|
|
|
- });
|
|
|
-
|
|
|
- this.axes.ForEach(axis =>
|
|
|
- {
|
|
|
- var data = sql.AxisVelocityDataDAL.GetK(axis.Config.AxisName);
|
|
|
- Axis.AxisData axisData = new AxisData
|
|
|
- {
|
|
|
- AxisNo = data.id,
|
|
|
- AxisName = data.AxisName,
|
|
|
- AutoRunVelocity = data.AutoRunVelocity,
|
|
|
- AutoRunAccelerate = data.AutoRunAccelerate,
|
|
|
- AutoRunDecelerate = data.AutoRunDecelerate,
|
|
|
- ManualRunVelocity = data.ManualRunVelocity,
|
|
|
- JogFast = data.JogFast,
|
|
|
- JogSlow = data.JogSlow,
|
|
|
- Tolerance = data.Tolerance,
|
|
|
- };
|
|
|
-
|
|
|
- axis.Initialize(axisData);
|
|
|
- });
|
|
|
+ axes.Add( new EzAxis( c ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ this.axes.ForEach( axis =>
|
|
|
+ {
|
|
|
+ var data = sql.AxisVelocityDataDAL.GetK( axis.Config.AxisName );
|
|
|
+ Axis.AxisData axisData = new AxisData
|
|
|
+ {
|
|
|
+ AxisNo = data.id,
|
|
|
+ AxisName = data.AxisName,
|
|
|
+ AutoRunVelocity = data.AutoRunVelocity,
|
|
|
+ AutoRunAccelerate = data.AutoRunAccelerate,
|
|
|
+ AutoRunDecelerate = data.AutoRunDecelerate,
|
|
|
+ ManualRunVelocity = data.ManualRunVelocity,
|
|
|
+ JogFast = data.JogFast,
|
|
|
+ JogSlow = data.JogSlow,
|
|
|
+ Tolerance = data.Tolerance,
|
|
|
+ };
|
|
|
+
|
|
|
+ axis.Initialize( axisData );
|
|
|
+ } );
|
|
|
}
|
|
|
|
|
|
public int LeftOriginReturn()
|
|
|
{
|
|
|
- var servo = this.axes.Where(s => s.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_LEFT)).Single();
|
|
|
- return servo.OriginReturn(true);
|
|
|
+ var servo = this.axes.Where( s => s.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();
|
|
|
+ return servo.OriginReturn( true );
|
|
|
}
|
|
|
|
|
|
public int RightOriginReturn()
|
|
|
{
|
|
|
- var servo = this.axes.Where(s => s.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_RIGHT)).Single();
|
|
|
- return servo.OriginReturn(true);
|
|
|
+ var servo = this.axes.Where( s => s.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT ) ).Single();
|
|
|
+ return servo.OriginReturn( true );
|
|
|
}
|
|
|
|
|
|
public int AllOriginReturn()
|
|
|
{
|
|
|
int result = 0;
|
|
|
result = LeftOriginReturn();
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 7;
|
|
|
|
|
|
result = RightOriginReturn();
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 8;
|
|
|
|
|
|
return result;
|
|
|
@@ -444,62 +449,62 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
public int IsAllAxisOriginReturn()
|
|
|
{
|
|
|
int result = 0;
|
|
|
- this.axes.ForEach(x =>
|
|
|
- {
|
|
|
- if (!x.IsOriginReturn())
|
|
|
- {
|
|
|
- if (x.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_LEFT))
|
|
|
- result = 5;
|
|
|
- else
|
|
|
- result = 6;
|
|
|
- return;
|
|
|
- }
|
|
|
- });
|
|
|
+ this.axes.ForEach( x =>
|
|
|
+ {
|
|
|
+ if ( !x.IsOriginReturn() )
|
|
|
+ {
|
|
|
+ if ( x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) )
|
|
|
+ result = 5;
|
|
|
+ else
|
|
|
+ result = 6;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } );
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
#region Data
|
|
|
- public void SavePositionData(string pos, double left, double right)
|
|
|
+ public void SavePositionData( string pos, double left, double right )
|
|
|
{
|
|
|
- var dataList = sql.AxisPositionDataDAL.GetKFromPostion(pos);
|
|
|
- var sqlLeft = dataList.Where(x => x.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_LEFT)).Single();
|
|
|
- var sqlRight = dataList.Where(x => x.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_RIGHT)).Single();
|
|
|
+ var dataList = sql.AxisPositionDataDAL.GetKFromPostion( pos );
|
|
|
+ var sqlLeft = dataList.Where( x => x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();
|
|
|
+ var sqlRight = dataList.Where( x => x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT ) ).Single();
|
|
|
|
|
|
sqlLeft.Value = left;
|
|
|
- sql.AxisPositionDataDAL.Update(sqlLeft);
|
|
|
+ sql.AxisPositionDataDAL.Update( sqlLeft );
|
|
|
|
|
|
sqlRight.Value = right;
|
|
|
- sql.AxisPositionDataDAL.Update(sqlRight);
|
|
|
+ sql.AxisPositionDataDAL.Update( sqlRight );
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- public int JogMove(string axisName, E_JogMoveDir dir, int velocity)
|
|
|
+ public int JogMove( string axisName, E_JogMoveDir dir, int velocity )
|
|
|
{
|
|
|
- logger.D($"JogMove - Axis[{axisName}] / Dir[{dir}] / vel[{velocity}]");
|
|
|
+ logger.D( $"JogMove - Axis[{axisName}] / Dir[{dir}] / vel[{velocity}]" );
|
|
|
|
|
|
- var axis = this.axes.Where(x => x.Config.AxisName.Equals(axisName)).Single();
|
|
|
- return axis.JogMove(dir, velocity);
|
|
|
+ var axis = this.axes.Where( x => x.Config.AxisName.Equals( axisName ) ).Single();
|
|
|
+ return axis.JogMove( dir, velocity );
|
|
|
}
|
|
|
|
|
|
- public int MoveToLockPosition(string axisName)
|
|
|
+ public int MoveToLockPosition( string axisName )
|
|
|
{
|
|
|
- var servo = this.axes.Where(x => x.Config.AxisName.Equals(axisName)).Single();
|
|
|
- var axisPositionDatas = sql.AxisPositionDataDAL.GetKFromName(axisName).ToList();
|
|
|
- var data = axisPositionDatas.Where(x => x.Name.Equals(ConstString.TEACH_POSITION_LOCK)).Single();
|
|
|
+ var servo = this.axes.Where( x => x.Config.AxisName.Equals( axisName ) ).Single();
|
|
|
+ var axisPositionDatas = sql.AxisPositionDataDAL.GetKFromName( axisName ).ToList();
|
|
|
+ var data = axisPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
|
|
|
|
|
|
- int result = servo.Move(data.Value);
|
|
|
+ int result = servo.Move( data.Value );
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- public int MoveToUnlockPosition(string axisName)
|
|
|
+ public int MoveToUnlockPosition( string axisName )
|
|
|
{
|
|
|
- var servo = this.axes.Where(x => x.Config.AxisName.Equals(axisName)).Single();
|
|
|
- var axisPositionDatas = sql.AxisPositionDataDAL.GetKFromName(axisName).ToList();
|
|
|
- var data = axisPositionDatas.Where(x => x.Name.Equals(ConstString.TEACH_POSITION_UNLOCK)).Single();
|
|
|
+ var servo = this.axes.Where( x => x.Config.AxisName.Equals( axisName ) ).Single();
|
|
|
+ var axisPositionDatas = sql.AxisPositionDataDAL.GetKFromName( axisName ).ToList();
|
|
|
+ var data = axisPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
|
|
|
|
|
|
- int result = servo.Move(data.Value);
|
|
|
+ int result = servo.Move( data.Value );
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
@@ -516,31 +521,31 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
int result = 0;
|
|
|
|
|
|
result = this.IsAllAxisOriginReturn();
|
|
|
- if (result != 0)
|
|
|
+ if ( result != 0 )
|
|
|
return result;
|
|
|
|
|
|
- var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName(ConstString.AXIS_CARRIER_LOCK_LEFT).ToList();
|
|
|
- var leftData = leftPositionDatas.Where(x => x.Name.Equals(ConstString.TEACH_POSITION_LOCK)).Single();
|
|
|
- var left = this.axes.Where(x => x.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_LEFT)).Single();
|
|
|
+ var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_LEFT ).ToList();
|
|
|
+ var leftData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
|
|
|
+ var left = this.axes.Where( x => x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();
|
|
|
|
|
|
- var rightPositionDatas = sql.AxisPositionDataDAL.GetKFromName(ConstString.AXIS_CARRIER_LOCK_RIGHT).ToList();
|
|
|
- var rightData = leftPositionDatas.Where(x => x.Name.Equals(ConstString.TEACH_POSITION_LOCK)).Single();
|
|
|
- var right = this.axes.Where(x => x.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_RIGHT)).Single();
|
|
|
+ var rightPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_RIGHT ).ToList();
|
|
|
+ var rightData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
|
|
|
+ var right = this.axes.Where( x => x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT ) ).Single();
|
|
|
|
|
|
- result = left.StartMove(leftData.Value, 0);
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ result = left.StartMove( leftData.Value, 0 );
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 1;
|
|
|
|
|
|
- result = right.StartMove(rightData.Value, 0);
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ result = right.StartMove( rightData.Value, 0 );
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 3;
|
|
|
|
|
|
result = left.Wait4Done();
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 1;
|
|
|
|
|
|
result = right.Wait4Done();
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 1;
|
|
|
#endif
|
|
|
|
|
|
@@ -560,31 +565,31 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
int result = 0;
|
|
|
|
|
|
result = this.IsAllAxisOriginReturn();
|
|
|
- if (result != 0)
|
|
|
+ if ( result != 0 )
|
|
|
return result;
|
|
|
|
|
|
- var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName(ConstString.AXIS_CARRIER_LOCK_LEFT).ToList();
|
|
|
- var leftData = leftPositionDatas.Where(x => x.Name.Equals(ConstString.TEACH_POSITION_UNLOCK)).Single();
|
|
|
- var left = this.axes.Where(x => x.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_LEFT)).Single();
|
|
|
+ var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_LEFT ).ToList();
|
|
|
+ var leftData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
|
|
|
+ var left = this.axes.Where( x => x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();
|
|
|
|
|
|
- var rightPositionDatas = sql.AxisPositionDataDAL.GetKFromName(ConstString.AXIS_CARRIER_LOCK_RIGHT).ToList();
|
|
|
- var rightData = leftPositionDatas.Where(x => x.Name.Equals(ConstString.TEACH_POSITION_UNLOCK)).Single();
|
|
|
- var right = this.axes.Where(x => x.Config.AxisName.Equals(ConstString.AXIS_CARRIER_LOCK_RIGHT)).Single();
|
|
|
+ var rightPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_RIGHT ).ToList();
|
|
|
+ var rightData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
|
|
|
+ var right = this.axes.Where( x => x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT ) ).Single();
|
|
|
|
|
|
- result = left.StartMove(leftData.Value, 0);
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ result = left.StartMove( leftData.Value, 0 );
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 2;
|
|
|
|
|
|
- result = right.StartMove(rightData.Value, 0);
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ result = right.StartMove( rightData.Value, 0 );
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 4;
|
|
|
|
|
|
result = left.Wait4Done();
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 2;
|
|
|
|
|
|
result = right.Wait4Done();
|
|
|
- if (result != EziMOTIONPlusELib.FMM_OK)
|
|
|
+ if ( result != EziMOTIONPlusELib.FMM_OK )
|
|
|
return 4;
|
|
|
#endif
|
|
|
|