@@ -74,85 +74,108 @@ struct IOClass {
7474 return exc;
7575 }
7676
77- bool invokeIV (const char *name, int value) {
78- bool result = false ;
77+ // float foo(void)
78+ int invokeFloatVoid (const char *name, var_s *retval) {
79+ int result = 0 ;
80+ return result;
81+ }
82+
83+ // int foo(void)
84+ int invokeIntVoid (const char *name, var_s *retval) {
85+ int result = 0 ;
7986 if (_instance != nullptr ) {
80- jmethodID method = env->GetMethodID (_clazz, name, " (I)V" );
87+ jmethodID method = env->GetMethodID (_clazz, name, " ()I" );
88+ int value = 0 ;
8189 if (method != nullptr ) {
82- env->CallVoidMethod (_instance, method, value );
90+ value = env->CallIntMethod (_instance, method);
8391 }
8492 if (!checkException ()) {
85- result = (method != nullptr );
93+ v_setint (retval, value);
94+ result = 1 ;
8695 }
8796 }
8897 return result;
8998 }
9099
91- int invokeI (const char *name) {
100+ // void foo(float)
101+ int invokeVoidFloat (const char *name, var_num_t value, var_s *retval) {
102+ int result = 0 ;
103+ return result;
104+ }
105+
106+ // void foo(int)
107+ int invokeVoidInt (const char *name, int value, var_s *) {
92108 int result = 0 ;
93109 if (_instance != nullptr ) {
94- jmethodID method = env->GetMethodID (_clazz, name, " ()I " );
110+ jmethodID method = env->GetMethodID (_clazz, name, " (I)V " );
95111 if (method != nullptr ) {
96- result = env->CallIntMethod (_instance, method);
112+ env->CallVoidMethod (_instance, method, value);
113+ }
114+ if (!checkException ()) {
115+ result = 1 ;
97116 }
98- checkException ();
99117 }
100118 return result;
101119 }
102120
103- void invokeV (const char *name) {
121+ // void foo(void)
122+ int invokeVoidVoid (const char *name, var_s *) {
123+ int result = 0 ;
104124 if (_instance != nullptr ) {
105125 jmethodID method = env->GetMethodID (_clazz, name, " ()V" );
106126 if (method != nullptr ) {
107127 env->CallVoidMethod (_instance, method);
108128 }
109- checkException ();
129+ if (!checkException ()) {
130+ result = 1 ;
131+ }
110132 }
133+ return result;
111134 }
112135
113- int isReady () {
114- return invokeI (METHOD_READY);
115- }
136+ // int isReady() {
137+ // return invokeI(METHOD_READY);
138+ // }
116139
117140 bool open (int pin) {
118- return invokeIV (METHOD_OPEN, pin);
141+ return 1 ; // invokeIV(METHOD_OPEN, pin);
119142 }
120143
121- void beginBatch () {
122- invokeV (METHOD_BEGIN_BATCH);
123- }
144+ // void beginBatch() {
145+ // invokeV(METHOD_BEGIN_BATCH);
146+ // }
124147
125- void endBatch () {
126- invokeV (METHOD_END_BATCH);
127- }
148+ // void endBatch() {
149+ // invokeV(METHOD_END_BATCH);
150+ // }
128151
129- void disconnect () {
130- invokeV (METHOD_DISCONNECT);
131- }
152+ // void disconnect() {
153+ // invokeV(METHOD_DISCONNECT);
154+ // }
132155
133- void hardReset () {
134- invokeV (METHOD_HARD_RESET);
135- }
156+ // void hardReset() {
157+ // invokeV(METHOD_HARD_RESET);
158+ // }
136159
137- void softReset () {
138- invokeV (METHOD_SOFT_RESET);
139- }
160+ // void softReset() {
161+ // invokeV(METHOD_SOFT_RESET);
162+ // }
140163
141- void sync () {
142- invokeV (METHOD_SYNC);
143- }
164+ // void sync() {
165+ // invokeV(METHOD_SYNC);
166+ // }
144167
145- void waitForConnect () {
146- invokeV (METHOD_WAIT_FOR_CONNECT);
147- }
168+ // void waitForConnect() {
169+ // invokeV(METHOD_WAIT_FOR_CONNECT);
170+ // }
148171
149- void waitForDisconnect () {
150- invokeV (METHOD_WAIT_FOR_DISCONNECT);
151- }
172+ // void waitForDisconnect() {
173+ // invokeV(METHOD_WAIT_FOR_DISCONNECT);
174+ // }
152175
153- bool write (int value) {
154- return invokeIV (METHOD_WRITE, value);
155- }
176+ // bool write(int value) {
177+ // return invokeIV(METHOD_WRITE, value);
178+ // }
156179
157180 private:
158181 jclass _clazz;
@@ -175,6 +198,9 @@ static int get_io_class_id(var_s *map, var_s *retval) {
175198 return result;
176199}
177200
201+ #include " api.h"
202+
203+ /*
178204static int cmd_begin_batch(var_s *self, int param_count, slib_par_t *params, var_s *retval) {
179205 int result = 0;
180206 if (param_count != 0) {
@@ -315,18 +341,18 @@ static int cmd_digital_output_write(var_s *self, int param_count, slib_par_t *pa
315341 }
316342 return result;
317343}
318-
344+ */
319345static void create_io_class (var_t *map, int id) {
320346 map_init_id (map, id, CLASS_IOCLASS);
321- v_create_callback (map, METHOD_BEGIN_BATCH, cmd_begin_batch);
322- v_create_callback (map, METHOD_DISCONNECT, cmd_disconnect);
323- v_create_callback (map, METHOD_END_BATCH, cmd_end_batch);
324- v_create_callback (map, METHOD_HARD_RESET, cmd_hard_reset);
325- v_create_callback (map, METHOD_READY, cmd_is_ready);
326- v_create_callback (map, METHOD_SOFT_RESET, cmd_soft_reset);
327- v_create_callback (map, METHOD_SYNC, cmd_sync);
328- v_create_callback (map, METHOD_WAIT_FOR_CONNECT, cmd_wait_for_connect);
329- v_create_callback (map, METHOD_WAIT_FOR_DISCONNECT, cmd_wait_for_disconnect);
347+ // v_create_callback(map, METHOD_BEGIN_BATCH, cmd_begin_batch);
348+ // v_create_callback(map, METHOD_DISCONNECT, cmd_disconnect);
349+ // v_create_callback(map, METHOD_END_BATCH, cmd_end_batch);
350+ // v_create_callback(map, METHOD_HARD_RESET, cmd_hard_reset);
351+ // v_create_callback(map, METHOD_READY, cmd_is_ready);
352+ // v_create_callback(map, METHOD_SOFT_RESET, cmd_soft_reset);
353+ // v_create_callback(map, METHOD_SYNC, cmd_sync);
354+ // v_create_callback(map, METHOD_WAIT_FOR_CONNECT, cmd_wait_for_connect);
355+ // v_create_callback(map, METHOD_WAIT_FOR_DISCONNECT, cmd_wait_for_disconnect);
330356}
331357
332358static int cmd_openanaloginput (int argc, slib_par_t *params, var_t *retval) {
@@ -355,7 +381,7 @@ static int cmd_opendigitaloutput(int argc, slib_par_t *params, var_t *retval) {
355381 if (output.create (CLASS_DIGITAL_INPUT) &&
356382 output.open (pin)) {
357383 create_io_class (retval, id);
358- v_create_callback (retval, METHOD_WRITE, cmd_digital_output_write);
384+ // v_create_callback(retval, METHOD_WRITE, cmd_digital_output_write);
359385 result = 1 ;
360386 } else {
361387 _classMap.erase (id);
0 commit comments