public ClientPushService(IHubContext <VibrometerHub> hubContext, VibrometerApi api)
        {
            _hubContext = hubContext;
            _api        = api;

            _updateBufferContentTimer = new Timer()
            {
                AutoReset = true, Enabled = true, Interval = TimeSpan.FromMilliseconds(500).TotalMilliseconds
            };
            _updateBufferContentTimer.Elapsed += this.OnUpdateBufferContent;
        }
Example #2
0
        static void Main(string[] args)
        {
            bool exit = false;

            _api = new VibrometerApi();

            while (!exit)
            {
                Console.Clear();
                Console.WriteLine($"[Y] - load bitstream");
                Console.WriteLine($"[Z] - set defaults");

                Console.WriteLine();

                Program.WriteColored("AXIS Switch\n", ConsoleColor.Cyan);

                switch (_api.AxisSwitch.Source)
                {
                case ApiSource.Raw:
                    Program.WriteColored($"[0] - set source (source: raw)\n");
                    break;

                case ApiSource.Position:
                    Program.WriteColored($"[0] - set source (source: position)\n");
                    break;

                case ApiSource.Filter:
                    Program.WriteColored($"[0] - set source (source: filter)\n");
                    break;

                case ApiSource.FourierTransform:
                    Program.WriteColored($"[0] - set source (source: Fourier)\n");
                    break;

                default:
                    Console.WriteLine($"[0] - set source (source: disabled)");
                    break;
                }

                Console.WriteLine();

                Program.WriteColored("Signal Generator\n", ConsoleColor.Cyan);

                if (_api.SignalGenerator.FmEnabled)
                {
                    Program.WriteColored($"[1] - disable frequency modulation\n");
                }
                else
                {
                    Console.Write($"[1] - enable frequency modulation\n");
                }

                Console.WriteLine($"[2] - set shift carrier");
                Console.WriteLine($"[3] - set phase signal");
                Console.WriteLine($"[4] - set phase carrier");

                Console.WriteLine();

                Program.WriteColored("Data Acquisition\n", ConsoleColor.Cyan);

                if (_api.DataAcquisition.SwitchEnabled)
                {
                    Program.WriteColored($"[5] - disable switch\n");
                }
                else
                {
                    Console.Write($"[5] - enable switch\n");
                }

                Console.WriteLine();

                Program.WriteColored("Position Tracker\n", ConsoleColor.Cyan);
                Console.WriteLine($"[6] - set log scale");
                Console.WriteLine($"[7] - set log count extremum");
                Console.WriteLine($"[8] - set shift extremum");
                Console.WriteLine($"[9] - get threshold");

                Console.WriteLine();

                Program.WriteColored("Filter\n", ConsoleColor.Cyan);
                Console.WriteLine($"[A] - set log throttle");

                Console.WriteLine();

                Program.WriteColored("Fourier Transform\n", ConsoleColor.Cyan);
                if (_api.FourierTransform.Enabled)
                {
                    Program.WriteColored($"[B] - disable Fourier transform\n");
                }
                else
                {
                    Console.Write($"[B] - enable Fourier Transform\n");
                }

                Console.WriteLine($"[C] - set log count averages");
                Console.WriteLine($"[D] - set log throttle");

                Console.WriteLine();

                Program.WriteColored("RAM Writer\n", ConsoleColor.Cyan);

                if (_api.RamWriter.Enabled)
                {
                    Program.WriteColored($"[E] - disable RAM writer\n");
                }
                else
                {
                    Console.Write($"[E] - enable RAM writer\n");
                }

                if (_api.RamWriter.RequestEnabled)
                {
                    Program.WriteColored($"[F] - disable buffer request\n");
                }
                else
                {
                    Console.Write($"[F] - enable buffer request\n");
                }

                Console.WriteLine($"[G] - set log length");
                Console.WriteLine($"[H] - set log throttle");
                Console.WriteLine($"[I] - get read buffer");

                Console.WriteLine();

                Program.WriteColored("RAM\n", ConsoleColor.Cyan);
                Console.WriteLine($"[J] - get data ({Math.Min(Math.Pow(2, _api.RamWriter.LogLength), 1024)} values)");
                Console.WriteLine($"[K] - get stream");
                Console.WriteLine($"[L] - clear");

                var keyInfo = Console.ReadKey(true);

                switch (keyInfo.Key)
                {
                case ConsoleKey.Y:
                    Program.LoadBitstream();
                    break;

                case ConsoleKey.Z:
                    _api.SetDefaults();
                    break;

                case ConsoleKey.NumPad0:
                case ConsoleKey.D0:
                    Program.GE_Set_Source();
                    break;

                case ConsoleKey.NumPad1:
                case ConsoleKey.D1:
                    Program.SG_Toggle_FM();
                    break;

                case ConsoleKey.NumPad2:
                case ConsoleKey.D2:
                    Program.SG_Set_Shift_Carrier();
                    break;

                case ConsoleKey.NumPad3:
                case ConsoleKey.D3:
                    Program.SG_Set_Phase_Signal();
                    break;

                case ConsoleKey.NumPad4:
                case ConsoleKey.D4:
                    Program.SG_Set_Phase_Carrier();
                    break;

                case ConsoleKey.NumPad5:
                case ConsoleKey.D5:
                    Program.DA_Toggle_Switch();
                    break;

                case ConsoleKey.NumPad6:
                case ConsoleKey.D6:
                    Program.PT_Set_LogScale();
                    break;

                case ConsoleKey.NumPad7:
                case ConsoleKey.D7:
                    Program.PT_Set_LogCountExtremum();
                    break;

                case ConsoleKey.NumPad8:
                case ConsoleKey.D8:
                    Program.PT_Set_ShiftExtremum();
                    break;

                case ConsoleKey.NumPad9:
                case ConsoleKey.D9:
                    Program.PT_Get_Threshold();
                    break;

                case ConsoleKey.A:
                    Program.FI_Set_LogThrottle();
                    break;

                case ConsoleKey.B:
                    Program.FT_Toggle_Enable();
                    break;

                case ConsoleKey.C:
                    Program.FT_Set_LogCountAverages();
                    break;

                case ConsoleKey.D:
                    Program.FT_Set_LogThrottle();
                    break;

                case ConsoleKey.E:
                    Program.RW_Toggle_Enable();
                    break;

                case ConsoleKey.F:
                    Program.RW_Toggle_RequestEnable();
                    break;

                case ConsoleKey.G:
                    Program.RW_Set_LogLength();
                    break;

                case ConsoleKey.H:
                    Program.RW_Set_LogThrottle();
                    break;

                case ConsoleKey.I:
                    Program.RW_Get_ReadBuffer();
                    break;

                case ConsoleKey.J:
                    Program.RAM_Get_Data();
                    break;

                case ConsoleKey.K:
                    Program.RAM_Get_Stream();
                    break;

                case ConsoleKey.L:
                    _api.ClearRam();
                    break;

                case ConsoleKey.Escape:
                    exit = true;
                    break;

                default:
                    break;
                }
            }

            _api.Dispose();
        }
Example #3
0
 // clientPushService is only requested to create a singleton instance
 public VibrometerHub(AppState state, VibrometerApi api, ClientPushService clientPushService)
 {
     _state = state;
     _api   = api;
 }