mirror of
				https://github.com/eclipse/upm.git
				synced 2025-10-29 14:15:33 +03:00 
			
		
		
		
	java: Use Runnables instead of IsrCallbacks in Java
Signed-off-by: Petre Eftime <petre.p.eftime@intel.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
		 Petre Eftime
					Petre Eftime
				
			
				
					committed by
					
						 Mihai Tudor Panu
						Mihai Tudor Panu
					
				
			
			
				
	
			
			
			 Mihai Tudor Panu
						Mihai Tudor Panu
					
				
			
						parent
						
							e1c66c351a
						
					
				
				
					commit
					2cd043c2a1
				
			| @@ -1,15 +1,10 @@ | ||||
| %module(directors="1") javaupm_lsm9ds0 | ||||
| %module javaupm_lsm9ds0 | ||||
| %include "../upm.i" | ||||
| %include "cpointer.i" | ||||
| %include "typemaps.i" | ||||
| %include "arrays_java.i"; | ||||
| %include "../java_buffer.i" | ||||
|  | ||||
| %feature("director") IsrCallback; | ||||
| SWIG_DIRECTOR_OWNED(IsrCallback) | ||||
| %ignore generic_callback_isr; | ||||
| %include "../IsrCallback.h" | ||||
|  | ||||
| %apply int {mraa::Edge}; | ||||
| %apply float *INOUT { float *x, float *y, float *z }; | ||||
|  | ||||
| @@ -58,4 +53,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) | ||||
|             System.exit(1); | ||||
|         } | ||||
|     } | ||||
| %} | ||||
| %} | ||||
|   | ||||
| @@ -741,14 +741,21 @@ uint8_t LSM9DS0::getInterruptGen2Src() | ||||
|   return readReg(DEV_XM, REG_INT_GEN_2_SRC); | ||||
| } | ||||
|  | ||||
| #ifdef SWIGJAVA | ||||
| #if defined(SWIGJAVA) || defined (JAVACALLBACK) | ||||
| void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, | ||||
| 			 IsrCallback *cb) | ||||
| 			 jobject runnable) | ||||
| { | ||||
|         installISR(intr, gpio, level, generic_callback_isr, cb); | ||||
| } | ||||
| #endif | ||||
|   // delete any existing ISR and GPIO context | ||||
|   uninstallISR(intr); | ||||
|  | ||||
|   // greate gpio context | ||||
|   getPin(intr) = new mraa::Gpio(gpio); | ||||
|  | ||||
|   getPin(intr)->dir(mraa::DIR_IN); | ||||
|   getPin(intr)->isr(level, runnable); | ||||
|  | ||||
| } | ||||
| #else | ||||
| void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,  | ||||
|                          void (*isr)(void *), void *arg) | ||||
| { | ||||
| @@ -761,6 +768,7 @@ void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, | ||||
|   getPin(intr)->dir(mraa::DIR_IN); | ||||
|   getPin(intr)->isr(level, isr, arg); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| void LSM9DS0::uninstallISR(INTERRUPT_PINS_T intr) | ||||
| { | ||||
|   | ||||
| @@ -29,10 +29,6 @@ | ||||
|  | ||||
| #include <mraa/gpio.hpp> | ||||
|  | ||||
| #if defined(SWIGJAVA) || defined(JAVACALLBACK) | ||||
| #include "../IsrCallback.h" | ||||
| #endif | ||||
|  | ||||
| #define LSM9DS0_I2C_BUS 1 | ||||
| #define LSM9DS0_DEFAULT_XM_ADDR 0x1d | ||||
| #define LSM9DS0_DEFAULT_GYRO_ADDR 0x6b | ||||
| @@ -1413,7 +1409,7 @@ namespace upm { | ||||
|  | ||||
| #if defined(SWIGJAVA) || defined(JAVACALLBACK) | ||||
|     void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, | ||||
| 		    IsrCallback *cb); | ||||
| 		    jobject runnable); | ||||
| #else | ||||
|     /** | ||||
|      * install an interrupt handler. | ||||
| @@ -1464,11 +1460,6 @@ namespace upm { | ||||
|   private: | ||||
|     // OR'd with a register, this enables register autoincrement mode, | ||||
|     // which we need. | ||||
| #if defined(SWIGJAVA) || defined(JAVACALLBACK) | ||||
|     void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, | ||||
|                     void (*isr)(void *), void *arg); | ||||
| #endif | ||||
|  | ||||
|     static const uint8_t m_autoIncrementMode = 0x80; | ||||
|  | ||||
|     mraa::I2c m_i2cG; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user