unque781 6 rokov pred
rodič
commit
f9e885d5da

+ 50 - 32
Dev/OHV/OHV.SqliteDAL/DAL/AbstractDAL.cs

@@ -153,7 +153,8 @@ namespace OHV.SqliteDAL.DAL
 
         public IEnumerable<T> GetAll()
         {
-            return table.ToList();
+            lock ( this.lockObj )
+                return table.ToList();
 
         }
 
@@ -161,65 +162,82 @@ namespace OHV.SqliteDAL.DAL
         {
             IQueryable<T> query = this.table;
 
-            if ( filter != null )
-                query = query.Where( filter );
-
-            if ( includeProperties != null )
+            lock ( this.lockObj )
             {
-                foreach ( var includeProperty in includeProperties.Split( new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries ) )
-                    query = query.Include( includeProperty );
-            }
 
-            if ( orderBy != null )
-                return orderBy( query ).ToList();
-            else
-                return query.ToList();
+                if ( filter != null )
+                    query = query.Where( filter );
+
+                if ( includeProperties != null )
+                {
+                    foreach ( var includeProperty in includeProperties.Split( new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries ) )
+                        query = query.Include( includeProperty );
+                }
+
+                if ( orderBy != null )
+                    return orderBy( query ).ToList();
+                else
+                    return query.ToList();
+            }
         }
 
         public T GetById( object id )
         {
-            return table.Find( id );
+            lock ( this.lockObj )
+                return table.Find( id );
         }
         public void Insert( T obj )
         {
-            table.Add( obj );
-            this.Save();
+            lock ( this.lockObj )
+            {
+                table.Add( obj );
+                this.Save();
+            }
         }
         public void Update( T obj )
         {
-            table.Attach( obj );
-            _context.Entry( obj ).State = EntityState.Modified;
-            this.Save();
+            lock ( this.lockObj )
+            {
+                table.Attach( obj );
+                _context.Entry( obj ).State = EntityState.Modified;
+                this.Save();
+            }
         }
         public void Delete( object id )
         {
-            T existing = table.Find( id );
-            table.Remove( existing );
-            this.Save();
+            lock ( this.lockObj )
+            {
+                T existing = table.Find( id );
+                table.Remove( existing );
+                this.Save();
+            }
         }
         public void Delete( Expression<Func<T, bool>> filter )
         {
-            var delList = this.table.Where( filter ).ToList();
-            if ( delList.Count > 0 )
+            lock ( this.lockObj )
             {
-                this.table.RemoveRange( delList );
-                Save();
+                var delList = this.table.Where( filter ).ToList();
+                if ( delList.Count > 0 )
+                {
+                    this.table.RemoveRange( delList );
+                    Save();
+                }
             }
         }
 
         public void Clean()
-        {
-            table.RemoveRange( table );
-            this.Save();
-        }
-        public void Save()
         {
             lock ( this.lockObj )
             {
-                _context.SaveChanges();
-                this.OnChangeTable?.BeginInvoke( null, null );
+                table.RemoveRange( table );
+                this.Save();
             }
         }
+        public void Save()
+        {
+            _context.SaveChanges();
+            this.OnChangeTable?.BeginInvoke( null, null );
+        }
     }
 
     public interface IGenericRepository<T> where T : class

+ 4 - 4
Dev/OHV/VehicleControlSystem/ControlLayer/Clamp.cs

@@ -564,11 +564,11 @@ namespace VehicleControlSystem.ControlLayer
             if ( result != 0 )
                 return result;
 
-            var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_LEFT ).ToList();
+            var leftPositionDatas = sql.AxisPositionDataDAL.Get(x=>x.Name.Equals( 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 rightPositionDatas = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( 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();
 
@@ -608,11 +608,11 @@ namespace VehicleControlSystem.ControlLayer
             if ( result != 0 )
                 return result;
 
-            var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_LEFT ).ToList();
+            var leftPositionDatas = sql.AxisPositionDataDAL.Get(x=>x.AxisName.Equals( 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 rightPositionDatas = sql.AxisPositionDataDAL.Get( x => x.AxisName.Equals( 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();
 

+ 4 - 2
Dev/OHV/VehicleControlSystem/ControlLayer/MQ/ZmqManager.cs

@@ -36,6 +36,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
 
         Vehicle vehicle = null;
         BMUManager bMUManager = null;
+        Steering steering = null;
 
         ThreadCancel threadCancel = new ThreadCancel();
 
@@ -146,12 +147,13 @@ namespace VehicleControlSystem.ControlLayer.MQ
 
         #endregion
 
-        public ZmqManager( Vehicle vehicle, BMUManager bMU )
+        public ZmqManager( Vehicle vehicle, BMUManager bMU, Steering steering )
         {
             NetMQ.NetMQConfig.Cleanup();
 
             this.bMUManager = bMU;
             this.vehicle = vehicle;
+            this.steering = steering;
         }
 
         public void Init()
@@ -176,7 +178,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
             { 
                 this.IsReqConnected = true; 
                 CurrentPointNo = GetCurrentPointNo();
-                SetCurrentSteeringState( this.vehicle.GetESteeringState() );
+                SetCurrentSteeringState( this.steering.GetSteeringState() );
             };
             this.monitor.Disconnected += ( s, a ) => { this.IsReqConnected = false; };
             this.monitor.StartAsync();

+ 4 - 4
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -1241,7 +1241,7 @@ namespace VehicleControlSystem.ControlLayer
 #else
             this.PIOSensorOn();
 
-            var pioTimeout = sql.ConfigDal.GetValueToInt( ConstString.PIOTimeOut );
+            var pioTimeout = Convert.ToInt32( sql.ConfigDal.GetById( ConstString.PIOTimeOut ).Value );
 
             PIOClear();
             loggerPIO.I( $"Start Battery Charge PIO" );
@@ -1309,7 +1309,7 @@ namespace VehicleControlSystem.ControlLayer
 #else
             loggerPIO.I( $"Stop Battery Charge PIO" );
 
-            var pioTimeout = sql.ConfigDal.GetValueToInt( ConstString.PIOTimeOut );
+            var pioTimeout = Convert.ToInt32( sql.ConfigDal.GetById( ConstString.PIOTimeOut ).Value );
 
             this.PIOClear();
 
@@ -1439,7 +1439,7 @@ namespace VehicleControlSystem.ControlLayer
             LockUtils.Wait( 500 );
 
             int result = 0;
-            var pioTimeout = sql.ConfigDal.GetValueToInt( ConstString.PIOTimeOut );
+            var pioTimeout = Convert.ToInt32( sql.ConfigDal.GetById( ConstString.PIOTimeOut ).Value );
 
             result = this.refObjects.Clamp.Unlock_Sync();
             if ( result != 0 )
@@ -1596,7 +1596,7 @@ namespace VehicleControlSystem.ControlLayer
 
             int result = 0;
 
-            var pioTimeout = sql.ConfigDal.GetValueToInt( ConstString.PIOTimeOut );
+            var pioTimeout = Convert.ToInt32( sql.ConfigDal.GetById( ConstString.PIOTimeOut ).Value );
 
             if ( this.refObjects.Conveyor.IsInverterError() )
                 return 16;

+ 3 - 1
Dev/OHV/VehicleControlSystem/VCSystem.cs

@@ -92,7 +92,7 @@ namespace VehicleControlSystem
             this.steering = new Steering( this.IO, this.sql, this.eventAggregator );
 
             //ZeroMQ
-            this.zmqManager = new ZmqManager( vehicle, this.bMUManager );
+            this.zmqManager = new ZmqManager( vehicle, this.bMUManager, this.steering );
             this.zmqManager.Init();
 
             //Drive
@@ -169,6 +169,8 @@ namespace VehicleControlSystem
             {
                 this.vehicle.OccurVehicleAlarm( 29 );
             }
+
+            this.steering.ControlSteering( true );//초기에 직선 주행 상태로 핸들 조정.
         }
 
         #endregion