// ###########################################################################
        //
        // P R I V A T E
        //
        // ###########################################################################
        #region Private

        // ===========================================================================
        /// \brief Update the form when pendulum connection status change
        // ===========================================================================
        private void UpdateMenuState()
        {
            bool connected;

            // Depending on connection state:
            connected = pendulumInterface.IsConnected( );
            miToolsConnect.Enabled    = !connected;
            miToolsDisconnect.Enabled = connected;
            miToolsMode.Enabled       = connected;
            miToolsManual.Enabled     = connected;
            miToolsCalib.Enabled      = connected;
            ctrlParamDisplay.Enabled  = connected;
            ctrlPendulum.Enabled      = connected;
            ctrlScopes.Enabled        = connected;

            if (connected)
            {
                miToolsModeEquilibrium.Checked = false;
                miToolsModeFree.Checked        = false;
                miToolsModeOff.Checked         = false;

                switch (pendulum.pendulumInterface.GetControlMode())
                {
                case PendulumInterface.CtrlMode.Equilibrium: miToolsModeEquilibrium.Checked = true; break;

                case PendulumInterface.CtrlMode.Free: miToolsModeFree.Checked = true; break;

                case PendulumInterface.CtrlMode.Stop: miToolsModeOff.Checked = true; break;
                }
            }
        }
Exemple #2
0
        // ===========================================================================
        /// \brief	Refresh timer elapsed. Acquisition of pendulm data
        // ===========================================================================
        void EvTimer_Tick(object sender, EventArgs e)
        {
            if (pendulumInterface.IsConnected( ) == false)
            {
                return;
            }

            // Get battery voltage
            {
                float voltage;
                uint  soc;
                pendulumInterface.GetBatteryVoltage(out voltage, out soc);
                this.BatteryVoltage = voltage;
                this.BatterySOC     = soc;
            }

            // Get memory usage
            {
                uint stat, dynamic, maxDynamic, free, kernel;
                pendulumInterface.GetOsMemory(out stat, out dynamic, out maxDynamic, out kernel, out free);
                this.OsMemoryStatic     = stat;
                this.OsMemoryMaxDynamic = maxDynamic;
                this.OsMemoryFree       = free;
                this.OsMemoryDynamic    = dynamic;
                this.OsMemoryKernel     = kernel;
            }

            // Get processor usage
            {
                uint kernel, idle;
                pendulumInterface.GetOsProcUsage(out kernel, out idle);
                this.OsKernelProcUsage = kernel;
                this.OsIdleProcUsage   = idle;
            }

            // Versions
            {
                string osVersion, sysVersion;
                pendulumInterface.GetOsVersion(out osVersion);
                pendulumInterface.GetSystemVersion(out sysVersion);
                this.OsVersion  = osVersion;
                this.SysVersion = sysVersion;
            }

            // Firmware tasks
            {
                uint numTasks;
                numTasks = pendulumInterface.GetOsTasks(ref tasks);

                if (numTasks != tasks.Length)
                {
                    tasks = new PendulumInterface.Task [numTasks];
                    pendulumInterface.GetOsTasks(ref tasks);
                }
            }
        }