void m_controller_onValueReceived_DigitalInputF(object sender, MeasuredValuesEventArgs ev)
 {
     if (onValueReceived_WhiskerLeft != null)
     {
         onValueReceived_WhiskerLeft(this, ev);
     }
 }
Example #2
0
 void _brickConnection_onValueReceived_MotorAmps(object sender, MeasuredValuesEventArgs e)
 {
     // note: Amps behave almost like integers, no precision here and low current will read as 0
     _state.PowerControllerState.Motor_Amps_Left  = e.value1;
     _state.PowerControllerState.Motor_Amps_Right = e.value2;
     _state.TimeStamp = DateTime.Now;
 }
 void m_controller_onValueReceived_EncoderRightAbsolute(object sender, MeasuredValuesEventArgs ev)
 {
     if (onValueReceived_EncoderRightAbsolute != null)
     {
         onValueReceived_EncoderRightAbsolute(this, ev);
     }
 }
 void m_controller_onValueReceived_EncoderSpeed(object sender, MeasuredValuesEventArgs ev)
 {
     if (onValueReceived_EncoderSpeed != null)
     {
         onValueReceived_EncoderSpeed(this, ev);
     }
 }
        void _controller_onValueReceived_DigitalInputE(object sender, MeasuredValuesEventArgs ev)
        {
            // values are: "Digital_Input_E"

            if (onValueReceived_DigitalInputE != null)
            {
                onValueReceived_DigitalInputE(this, ev);
            }
        }
        void _controller_onValueReceived_AnalogInputs(object sender, MeasuredValuesEventArgs ev)
        {
            // values are: "Analog_Input_1", "Analog_Input_2"

            if (onValueReceived_AnalogInputs != null)
            {
                onValueReceived_AnalogInputs(this, ev);
            }
        }
        void _controller_onValueReceived_MotorPower(object sender, MeasuredValuesEventArgs ev)
        {
            // values are: "Motor_Power_Left", "Motor_Power_Right"

            if (onValueReceived_MotorPower != null)
            {
                onValueReceived_MotorPower(this, ev);
            }
        }
        void _controller_onValueReceived_HeatsinkTemperature(object sender, MeasuredValuesEventArgs ev)
        {
            // values are: "HeatsinkTemperature_Left", "HeatsinkTemperature_Right"

            if (onValueReceived_HeatsinkTemperature != null)
            {
                onValueReceived_HeatsinkTemperature(this, ev);
            }
        }
        void _controller_onValueReceived_Voltage(object sender, MeasuredValuesEventArgs ev)
        {
            // values are: "Main_Battery_Voltage", "Internal_Voltage"

            if (onValueReceived_Voltage != null)
            {
                onValueReceived_Voltage(this, ev);
            }
        }
Example #10
0
 void _brickConnection_onValueReceived_Voltage(object sender, MeasuredValuesEventArgs e)
 {
     // the voltages come in as hex bytes 0...255, and then converted by formula:
     //      Measured Main Battery Volts = 55 * Read Value / 256
     //      Measured Internal Volts = 28.5 * Read Value / 256
     // there isn't much precision here, so rounding it to 2 digits seems adequate.
     _state.PowerControllerState.Main_Battery_Voltage = e.value1.HasValue ? Math.Round(e.value1.Value, 2) : (double?)null;
     _state.PowerControllerState.Internal_Voltage     = e.value2.HasValue ? Math.Round(e.value2.Value, 2) : (double?)null;
     _state.TimeStamp = DateTime.Now;
 }
Example #11
0
        void _brickConnection_onValueReceived_EncoderSpeed(object sender, MeasuredValuesEventArgs ev)
        {
#if TRACEDEBUGTICKS
            LogInfo("TrackRoamerBrickPowerService : received EncoderSpeed : left=" + ev.value1 + "   right=" + ev.value2);
#endif // TRACEDEBUGTICKS

            UpdateMotorEncoderSpeed ume = new UpdateMotorEncoderSpeed();
            ume.Body.Timestamp  = new DateTime(ev.timestamp);
            ume.Body.LeftSpeed  = ev.value1;
            ume.Body.RightSpeed = ev.value2;

            _state.MotorEncoderSpeed.LeftSpeed  = ume.Body.LeftSpeed;
            _state.MotorEncoderSpeed.RightSpeed = ume.Body.RightSpeed;
            _state.MotorEncoderSpeed.Timestamp  = ume.Body.Timestamp;
            _state.TimeStamp = DateTime.Now;

            base.SendNotification <UpdateMotorEncoderSpeed>(_subMgrPort, ume);
        }
Example #12
0
        private void onWhiskerRight(object sender, MeasuredValuesEventArgs ev)
        {
            LogInfo("TrackRoamerBrickPowerService : WhiskerRight : " + ev.value1);

            if (ev.value1 > 0 && (!_state.Whiskers.FrontWhiskerRight.HasValue || !_state.Whiskers.FrontWhiskerRight.Value))
            {
                // if this is a "whisker pressed" event, do emergency stop.
                stopMotorsNow();
                // Note: UpdateMotorSpeedHandler() will not set positive speed if whiskers are pressed.
            }

            _state.Whiskers.Timestamp         = new DateTime(ev.timestamp);
            _state.Whiskers.FrontWhiskerRight = ev.value1 > 0;
            _state.TimeStamp = DateTime.Now;

            UpdateWhiskers uw = new UpdateWhiskers();

            uw.Body.Timestamp         = _state.Whiskers.Timestamp;
            uw.Body.FrontWhiskerRight = ev.value1 > 0;

            base.SendNotification <UpdateWhiskers>(_subMgrPort, uw);
        }
Example #13
0
 void _brickConnection_onValueReceived_AnalogInputs(object sender, MeasuredValuesEventArgs e)
 {
     _state.PowerControllerState.Analog_Input_1 = e.value1;
     _state.PowerControllerState.Analog_Input_2 = e.value2;
     _state.TimeStamp = DateTime.Now;
 }
Example #14
0
 void _brickConnection_onValueReceived_MotorPower(object sender, MeasuredValuesEventArgs e)
 {
     _state.PowerControllerState.Motor_Power_Left  = e.value1;
     _state.PowerControllerState.Motor_Power_Right = e.value2;
     _state.TimeStamp = DateTime.Now;
 }
Example #15
0
        private void _brickConnection_onValueReceived_EncoderRightAbsolute(object sender, MeasuredValuesEventArgs ev)
        {
#if TRACEDEBUGTICKS
            LogInfo("TrackRoamerBrickPowerService : received EncoderRightAbsolute : " + ev.value1);
#endif // TRACEDEBUGTICKS

            UpdateMotorEncoder ume = new UpdateMotorEncoder();
            ume.Body.Timestamp          = new DateTime(ev.timestamp);
            ume.Body.RightDistance      = ev.value1;
            ume.Body.HardwareIdentifier = 2;                // 2 = Right

            _state.MotorEncoder.RightDistance = ume.Body.RightDistance;
            _state.MotorEncoder.Timestamp     = ume.Body.Timestamp;
            _state.TimeStamp = DateTime.Now;

            base.SendNotification <UpdateMotorEncoder>(_subMgrPort, ume);
        }
Example #16
0
 void _brickConnection_onValueReceived_HeatsinkTemperature(object sender, MeasuredValuesEventArgs e)
 {
     _state.PowerControllerState.Heatsink_Temperature_Left  = e.value1;
     _state.PowerControllerState.Heatsink_Temperature_Right = e.value2;
     _state.TimeStamp = DateTime.Now;
 }
Example #17
0
 void _brickConnection_onValueReceived_DigitalInputE(object sender, MeasuredValuesEventArgs e)
 {
     _state.PowerControllerState.Digital_Input_E = e.value1;
     _state.TimeStamp = DateTime.Now;
 }