| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- using GSG.NET.Extensions;
- using GSG.NET.ObjectBase;
- using OHV.Common.Shareds;
- using StackExchange.Redis;
- using System;
- using System.Threading;
- namespace VehicleControlSystem.ControlLayer.DB
- {
- public class Redis : SingletonBase<Redis>, IDisposable
- {
- ConnectionMultiplexer redisMaster = null;
- IDatabase database = null;
- private Redis()
- {
- }
- public void Dispose()
- {
- this.redisMaster.Dispose();
- }
- public void Init()
- {
- redisMaster = ConnectionMultiplexer.Connect( "127.0.0.1:6379" + ",allowAdmin=true,password=..." );
- database = redisMaster.GetDatabase();
- }
- public bool SetValue(string key, string val) => database.StringSet( key, val );
- public string GetValue( string key ) => database.StringGet( key );
- //public int GetIntValue( string key ) => cacheClient.Get<int>( key );
- #region GetLogData
- /// <summary>
- /// 0.1% 단위
- /// 100% 1.9Nm
- /// </summary>
- /// <returns></returns>
- public double TorqueFront()
- {
- return LoadFacterFront() * 1.9 / 100;
- }
- /// <summary>
- /// 0.1% 단위
- /// </summary>
- /// <returns></returns>
- public double TorqueRear()
- {
- return LoadFacterRear() * 1.9 / 100;
- }
- public double LoadFacterFront()
- {
- var ret = database.HashGet( "7028", "7" );
- return Math.Abs( CastTo<double>.From<RedisValue>( ret ) * 0.1 );
- }
- public double LoadFacterRear()
- {
- var ret = database.HashGet( "7028", "7" );
- return Math.Abs( CastTo<double>.From<RedisValue>( ret ) * 0.1 );
- }
- public double ActualVelocityToFrontRPM()
- {
- var ret = database.HashGet( "7026", "7" );
- return CastTo<double>.From<RedisValue>( ret ) * 60 * 10 / ( 2 * Math.PI ) / 0.06;
- }
- public double ActualVelocityToRearRPM()
- {
- var ret = database.HashGet( "7026", "8" );
- return CastTo<double>.From<RedisValue>( ret ) * 60 * 10 / ( 2 * Math.PI ) / 0.06;
- }
- public double ActualVelocityToSpeed()
- {
- var ret = database.HashGet( "4034", "7" );
- return CastTo<double>.From<RedisValue>( ret ) * 0.0001; //m/sec
- }
- public int CurrentBCRValue()
- {
- var ret = database.HashGet( "7121", "7" );
- return CastTo<int>.From<RedisValue>( ret );
- }
- public bool GetDriveMove()
- {
- var ret = database.HashGet( "3011", "7" );
- if ( ret == 0 )
- return false;
- else
- return true;
- }
- #endregion
- #region Event
- /// <summary>
- /// Jog 사용 시
- /// </summary>
- /// <param name="dir">1=Forward, -1=Backward, 0=Stop</param>
- /// <returns></returns>
- public bool SetManualOPCommand(int dir ) => database.HashSet( "4091", "7", dir.ToString() );
- /// <summary>
- /// Servo Motor Control
- /// </summary>
- /// <param name="cmd">1=On, 2=Off, 3=Stop, -1=Fault Reset</param>
- /// <returns></returns>
- public bool SetServoCommand( int cmd ) => database.HashSet( "4092", "7", cmd.ToString() );
- /// <summary>
- /// System Operation Change
- /// </summary>
- /// <param name="op">-1=NoEvent, 0=open, 1=start, 2=goAutoOP, 3=goManualOP, 4=close, 5=finish</param>
- /// <returns></returns>
- public bool SetSystemOperation( int op ) => database.HashSet( "112", "7", op.ToString() );
- public bool RouteMapMoveTo(string point )
- {
- database.HashSet( "3033", "7", point );
- Thread.Sleep( 50 );
- return database.HashSet( "3031", "7", 1 );
- }
- #endregion
- /// <summary>
- /// Steering 뱡향 요청
- /// </summary>
- /// <returns>1=Left, -1=Right, 0=현상유지</returns>
- public int GetSteering()
- {
- var ret = database.HashGet( "3050", "7" );
- return CastTo<int>.From<RedisValue>(ret);
- }
- /// <summary>
- /// Steering 뱡향 상태 쓰기
- /// </summary>
- /// <returns>1=Left, -1=Right, 0=Error</returns>
- public bool SetActualSteeringPos( eSteeringState state )
- {
- int sV = 0;
- switch ( state )
- {
- case eSteeringState.None:
- sV = 0;
- break;
- case eSteeringState.Left:
- sV = 1;
- break;
- case eSteeringState.Right:
- sV = -1;
- break;
- default:
- break;
- }
- return database.HashSet( "3060", "7", sV );
- }
- /// <summary>
- /// System State
- /// </summary>
- /// <returns>0=StartUp, 1=DeviceOpened, 2=DiviceOpenFailed, 3=ManualOP, 4=AutomaticOp, 5=DeviceCloseed, 6=Finished</returns>
- public int GetSystemState()
- {
- var ret = database.HashGet( "111", "7" );
- return CastTo<int>.From<RedisValue>(ret);
- }
- }
- }
|