mirror of
				https://github.com/eclipse/upm.git
				synced 2025-10-31 07:04:14 +03:00 
			
		
		
		
	Added getVolts() to iEMG interface and its sensors.
Signed-off-by: Serban Waltter <serban.waltter@rinftech.com>
This commit is contained in:
		| @@ -45,5 +45,12 @@ namespace upm | ||||
|      * @return Muscle output as analog voltage | ||||
|      */ | ||||
|     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); | ||||
| 	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 float getVolts(); | ||||
|  | ||||
|   private: | ||||
|     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); | ||||
| 	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 float getVolts(); | ||||
|  | ||||
|   private: | ||||
|     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; | ||||
|   }; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Serban Waltter
					Serban Waltter