mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00
Added getVolts() to iEMG interface and its sensors.
Signed-off-by: Serban Waltter <serban.waltter@rinftech.com>
This commit is contained in:
parent
4ad0bd2691
commit
b0df70ca03
@ -45,5 +45,12 @@ namespace upm
|
|||||||
* @return Muscle output as analog voltage
|
* @return Muscle output as analog voltage
|
||||||
*/
|
*/
|
||||||
virtual int value() = 0;
|
virtual int value() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read scaled/offset voltage from the sensor
|
||||||
|
*
|
||||||
|
* @return Measured volts
|
||||||
|
*/
|
||||||
|
virtual float getVolts() = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -67,3 +67,21 @@ int EMG::value()
|
|||||||
int val = mraa_aio_read(m_aio);
|
int val = mraa_aio_read(m_aio);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float EMG::getVolts()
|
||||||
|
{
|
||||||
|
float val = mraa_aio_read_float(m_aio);
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
|
|
||||||
|
/* Apply raw scale */
|
||||||
|
val *= this->m_scale;
|
||||||
|
|
||||||
|
/* Scale to aRef */
|
||||||
|
val *= this->m_aRef;
|
||||||
|
|
||||||
|
/* Apply the offset in volts */
|
||||||
|
val += this->m_offset;
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
@ -76,7 +76,15 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
virtual int value();
|
virtual int value();
|
||||||
|
|
||||||
|
virtual float getVolts();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
mraa_aio_context m_aio;
|
mraa_aio_context m_aio;
|
||||||
|
/* Analog voltage reference */
|
||||||
|
float m_aRef = 5.0;
|
||||||
|
/* Scale */
|
||||||
|
float m_scale = 1.0;
|
||||||
|
/* Offset in sensor units */
|
||||||
|
float m_offset = 0.0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -67,3 +67,21 @@ int GroveEMG::value()
|
|||||||
int val = mraa_aio_read(m_aio);
|
int val = mraa_aio_read(m_aio);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float GroveEMG::getVolts()
|
||||||
|
{
|
||||||
|
float val = mraa_aio_read_float(m_aio);
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
|
|
||||||
|
/* Apply raw scale */
|
||||||
|
val *= this->m_scale;
|
||||||
|
|
||||||
|
/* Scale to aRef */
|
||||||
|
val *= this->m_aRef;
|
||||||
|
|
||||||
|
/* Apply the offset in volts */
|
||||||
|
val += this->m_offset;
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
@ -77,7 +77,15 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
virtual int value();
|
virtual int value();
|
||||||
|
|
||||||
|
virtual float getVolts();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
mraa_aio_context m_aio;
|
mraa_aio_context m_aio;
|
||||||
|
/* Analog voltage reference */
|
||||||
|
float m_aRef = 5.0;
|
||||||
|
/* Scale */
|
||||||
|
float m_scale = 1.0;
|
||||||
|
/* Offset in sensor units */
|
||||||
|
float m_offset = 0.0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user