[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 7bd407beda8e3c020572c
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Michael B. <mdb...@us...> - 2021-09-26 04:28:04
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 7bd407beda8e3c020572cd39ae18a9bd2142ccde (commit) via 2e2543a0fce5cd39d2b439aff8db64272b7ddb8d (commit) via cc5010d0e3bed0415cc3974c62d5f22cc45b2399 (commit) via fc765a48cc964bdcd034c76bdb8fde0206abca4f (commit) via 0b9b71999772a2dd035691709e642c813afeb2c1 (commit) via 1f9ffe30357a491639dfc24f9ee426e1fac8a077 (commit) via 186ed2ae43a93425c0f14f45bdb384b00a804707 (commit) via 1c3250f6f43f5c872e637ab0bf768fe441e63b9f (commit) via 782ad2a03464c42f57aca820634e1f68aae64553 (commit) via e51e645d2a99dd79ac9e60cbe8470c6002dbd8a9 (commit) via 376db9e2e7268e13121f0497ee5ddf00ebefb5d2 (commit) via 875104c395622795d4f74b18206a6d29fe96dc5b (commit) from 421c6e7c4e4d6ef552ca39241463c71244b424a2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7bd407beda8e3c020572cd39ae18a9bd2142ccde Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Sep 25 23:26:49 2021 -0500 Add some more elapsed time entries and reduce ELAPSED2 macro diff --git a/src/rig.c b/src/rig.c index e2b8387b..8fb69daa 100644 --- a/src/rig.c +++ b/src/rig.c @@ -158,7 +158,7 @@ const char hamlib_copyright[231] = /* hamlib 1.2 ABI specifies 231 bytes */ #define CHECK_RIG_ARG(r) (!(r) || !(r)->caps || !(r)->state.comm_state) #define ELAPSED1 clock_t __begin = clock() -#define ELAPSED2 double __elapsed = ((double)clock() - __begin) / CLOCKS_PER_SEC*1000; rig_debug(RIG_DEBUG_TRACE, "%s: elapsed=%.0lfms\n", __func__, __elapsed) +#define ELAPSED2 rig_debug(RIG_DEBUG_TRACE, "%s: elapsed=%.0lfms\n", __func__, ((double)clock() - __begin) / CLOCKS_PER_SEC * 1000) /* * Data structure to track the opened rig (by rig_open) @@ -2266,6 +2266,7 @@ int HAMLIB_API rig_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { RETURNFUNC(-RIG_EINVAL); } + ELAPSED1; // do not mess with mode while PTT is on if (rig->state.cache.ptt) @@ -2328,6 +2329,7 @@ int HAMLIB_API rig_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) set_cache_mode(rig, vfo, mode, width); + ELAPSED2; RETURNFUNC(retcode); } @@ -2363,6 +2365,7 @@ int HAMLIB_API rig_get_mode(RIG *rig, freq_t freq; ENTERFUNC; + ELAPSED1; if (CHECK_RIG_ARG(rig)) { @@ -2397,6 +2400,7 @@ int HAMLIB_API rig_get_mode(RIG *rig, rig_debug(RIG_DEBUG_TRACE, "%s: cache hit age mode=%dms, width=%dms\n", __func__, cache_ms_mode, cache_ms_width); + ELAPSED2; RETURNFUNC(RIG_OK); } else @@ -2468,6 +2472,7 @@ int HAMLIB_API rig_get_mode(RIG *rig, set_cache_mode(rig, vfo, *mode, *width); cache_show(rig, __func__, __LINE__); + ELAPSED2; RETURNFUNC(retcode); } commit 2e2543a0fce5cd39d2b439aff8db64272b7ddb8d Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Sep 25 23:16:08 2021 -0500 Fix ELAPSED2 time diff --git a/src/rig.c b/src/rig.c index 333ef849..e2b8387b 100644 --- a/src/rig.c +++ b/src/rig.c @@ -158,7 +158,7 @@ const char hamlib_copyright[231] = /* hamlib 1.2 ABI specifies 231 bytes */ #define CHECK_RIG_ARG(r) (!(r) || !(r)->caps || !(r)->state.comm_state) #define ELAPSED1 clock_t __begin = clock() -#define ELAPSED2 double __elapsed = ((double)clock() - __begin) / CLOCKS_PER_SEC; rig_debug(RIG_DEBUG_TRACE, "%s: elapsed=%.0lfms\n", __func__, __elapsed) +#define ELAPSED2 double __elapsed = ((double)clock() - __begin) / CLOCKS_PER_SEC*1000; rig_debug(RIG_DEBUG_TRACE, "%s: elapsed=%.0lfms\n", __func__, __elapsed) /* * Data structure to track the opened rig (by rig_open) @@ -2017,6 +2017,7 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { RETURNFUNC(-RIG_EINVAL); } + ELAPSED1; if (!freq) commit cc5010d0e3bed0415cc3974c62d5f22cc45b2399 Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Sep 25 11:45:42 2021 -0500 Add otherVFO to misc.c diff --git a/src/misc.c b/src/misc.c index c4a6e0c0..3e79c6f9 100644 --- a/src/misc.c +++ b/src/misc.c @@ -577,6 +577,7 @@ static const struct { RIG_VFO_SUB_B, "SubB" }, { RIG_VFO_SUB_C, "SubC" }, { RIG_VFO_NONE, "None" }, + { RIG_VFO_OTHER, "otherVFO" }, { 0xffffff, "" }, }; commit fc765a48cc964bdcd034c76bdb8fde0206abca4f Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Sep 25 11:14:33 2021 -0500 Add VFO_OTHER for Icom rigs so they can request unselected VFO items diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index a649a448..572dfda6 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -463,6 +463,9 @@ typedef unsigned int vfo_t; /** \brief \c MainC -- alias for MAIN_C */ #define RIG_VFO_MAIN_C RIG_VFO_N(4) +/** \brief \c Other -- alias for OTHER -- e.g. Icom rigs without get_vfo capability */ +#define RIG_VFO_OTHER RIG_VFO_N(5) + /** \brief \c Sub -- alias for SUB */ #define RIG_VFO_SUB RIG_VFO_N(25) commit 0b9b71999772a2dd035691709e642c813afeb2c1 Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Sep 25 08:59:57 2021 -0500 Add elapsed time macros and put in vfo and freq calls diff --git a/src/rig.c b/src/rig.c index 5c4ab9aa..333ef849 100644 --- a/src/rig.c +++ b/src/rig.c @@ -157,6 +157,8 @@ const char hamlib_copyright[231] = /* hamlib 1.2 ABI specifies 231 bytes */ #define CHECK_RIG_ARG(r) (!(r) || !(r)->caps || !(r)->state.comm_state) +#define ELAPSED1 clock_t __begin = clock() +#define ELAPSED2 double __elapsed = ((double)clock() - __begin) / CLOCKS_PER_SEC; rig_debug(RIG_DEBUG_TRACE, "%s: elapsed=%.0lfms\n", __func__, __elapsed) /* * Data structure to track the opened rig (by rig_open) @@ -1812,6 +1814,8 @@ int HAMLIB_API rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) RETURNFUNC(-RIG_EINVAL); } + ELAPSED1; + if (rig->state.twiddle_state == TWIDDLE_ON) { // we keep skipping set_freq while the vfo knob is in motion @@ -1855,6 +1859,7 @@ int HAMLIB_API rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) rig_set_vfo(rig, vfo_save); } + ELAPSED2; RETURNFUNC( RIG_OK); // would be better as error but other software won't handle errors } @@ -1928,6 +1933,7 @@ int HAMLIB_API rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) rig_set_vfo(rig, vfo_save); } + ELAPSED2; RETURNFUNC( RIG_OK); // would be better as error but other software won't handle errors } @@ -1978,6 +1984,7 @@ int HAMLIB_API rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) rig_set_vfo(rig, vfo_save); } + ELAPSED2; RETURNFUNC(retcode); } @@ -2010,6 +2017,7 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { RETURNFUNC(-RIG_EINVAL); } + ELAPSED1; if (!freq) { @@ -2044,6 +2052,7 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) int cache_ms_freq, cache_ms_mode, cache_ms_width; rig_get_cache(rig, vfo, freq, &cache_ms_freq, &mode, &cache_ms_mode, &width, &cache_ms_width); + ELAPSED2; RETURNFUNC(RIG_OK); } @@ -2087,6 +2096,7 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { rig_debug(RIG_DEBUG_TRACE, "%s: %s cache hit age=%dms, freq=%.0f\n", __func__, rig_strvfo(vfo), cache_ms_freq, *freq); + ELAPSED2; RETURNFUNC(RIG_OK); } else @@ -2195,6 +2205,7 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) set_cache_freq(rig, vfo, *freq); cache_show(rig, __func__, __LINE__); + ELAPSED2; RETURNFUNC(retcode); } @@ -2776,6 +2787,7 @@ int HAMLIB_API rig_get_vfo(RIG *rig, vfo_t *vfo) int cache_ms; ENTERFUNC; + ELAPSED1; if (CHECK_RIG_ARG(rig) || !vfo) { @@ -2804,6 +2816,7 @@ int HAMLIB_API rig_get_vfo(RIG *rig, vfo_t *vfo) { rig_debug(RIG_DEBUG_TRACE, "%s: cache hit age=%dms\n", __func__, cache_ms); *vfo = rig->state.cache.vfo; + ELAPSED2; RETURNFUNC(RIG_OK); } else @@ -2831,6 +2844,7 @@ int HAMLIB_API rig_get_vfo(RIG *rig, vfo_t *vfo) rigerror(retcode)); } + ELAPSED2; RETURNFUNC(retcode); } @@ -4577,7 +4591,8 @@ int HAMLIB_API rig_set_split_vfo(RIG *rig, // We fix up vfos for non-satmode rigs only if (rig->caps->has_get_func & RIG_FUNC_SATMODE) { - rig_debug(RIG_DEBUG_TRACE, "%s: satmode rig...not fixing up vfos rx=%s tx=%s\n", __func__, rig_strvfo(rx_vfo), rig_strvfo(tx_vfo)); + rig_debug(RIG_DEBUG_TRACE, "%s: satmode rig...not fixing up vfos rx=%s tx=%s\n", + __func__, rig_strvfo(rx_vfo), rig_strvfo(tx_vfo)); } else { @@ -6197,6 +6212,7 @@ int HAMLIB_API rig_stop_morse(RIG *rig, vfo_t vfo) vfo_t curr_vfo; ENTERFUNC; + if (CHECK_RIG_ARG(rig)) { RETURNFUNC(-RIG_EINVAL); @@ -6300,6 +6316,7 @@ int HAMLIB_API rig_wait_morse(RIG *rig, vfo_t vfo) vfo_t curr_vfo; ENTERFUNC; + if (CHECK_RIG_ARG(rig)) { RETURNFUNC(-RIG_EINVAL); @@ -6466,6 +6483,7 @@ int HAMLIB_API rig_set_vfo_opt(RIG *rig, int status) int retcode; ENTERFUNC; + ELAPSED1; if CHECK_RIG_ARG(rig) { @@ -6477,8 +6495,8 @@ int HAMLIB_API rig_set_vfo_opt(RIG *rig, int status) RETURNFUNC(-RIG_ENAVAIL); } - TRACE; retcode = rig->caps->set_vfo_opt(rig, status); + ELAPSED2; RETURNFUNC(retcode); } @@ -6580,6 +6598,8 @@ int HAMLIB_API rig_get_rig_info(RIG *rig, char *response, int max_response_len) RETURNFUNC(-RIG_EINVAL); } + ELAPSED1; + vfoA = vfo_fixup(rig, RIG_VFO_A, rig->state.cache.split); vfoB = vfo_fixup(rig, RIG_VFO_B, rig->state.cache.split); ret = rig_get_vfo_info(rig, vfoA, &freqA, &modeA, &widthA, &split, &satmode); @@ -6633,6 +6653,7 @@ int HAMLIB_API rig_get_rig_info(RIG *rig, char *response, int max_response_len) RETURNFUNC(RIG_EINTERNAL); } + ELAPSED2; RETURNFUNC(RIG_OK); } @@ -6811,7 +6832,7 @@ int HAMLIB_API rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie, if (!cookie) { rig_debug(RIG_DEBUG_ERR, "%s(%d): cookie == NULL\n", - __FILE__, __LINE__); + __FILE__, __LINE__); return -RIG_EINVAL; // nothing to do } @@ -6858,8 +6879,8 @@ int HAMLIB_API rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie, else { rig_debug(RIG_DEBUG_ERR, - "%s(%d): %s renew request refused %s is active\n", - __FILE__, __LINE__, cookie, cookie_save); + "%s(%d): %s renew request refused %s is active\n", + __FILE__, __LINE__, cookie, cookie_save); ret = -RIG_EINVAL; // wrong cookie } @@ -6886,8 +6907,8 @@ int HAMLIB_API rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie, if (cookie_save[0] != 0) { rig_debug(RIG_DEBUG_ERR, - "%s(%d): %s cookie has expired after %.3f seconds....overriding with new cookie\n", - __FILE__, __LINE__, cookie_save, time_curr - time_last_used); + "%s(%d): %s cookie has expired after %.3f seconds....overriding with new cookie\n", + __FILE__, __LINE__, cookie_save, time_curr - time_last_used); } date_strget(cookie, cookie_len); @@ -6898,9 +6919,10 @@ int HAMLIB_API rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie, strcpy(cookie_save, cookie); time_last_used = time_curr; rig_debug(RIG_DEBUG_VERBOSE, "%s(%d): %s new cookie request granted\n", - __FILE__, __LINE__, cookie_save); + __FILE__, __LINE__, cookie_save); ret = RIG_OK; } + break; default: commit 1f9ffe30357a491639dfc24f9ee426e1fac8a077 Merge: 186ed2ae 1c3250f6 Author: Michael Black <mdb...@ya...> Date: Fri Sep 24 22:24:15 2021 -0500 Merge pull request #810 from AuroraRAS/androidsensor add androidsensor rotator commit 186ed2ae43a93425c0f14f45bdb384b00a804707 Merge: e51e645d 782ad2a0 Author: Michael Black <mdb...@ya...> Date: Fri Sep 24 22:23:57 2021 -0500 Merge pull request #809 from AuroraRAS/keepgoingndk make the Android.mk files adapt to multi arch commit 1c3250f6f43f5c872e637ab0bf768fe441e63b9f Author: AuroraRAS <ch...@gm...> Date: Sat Sep 25 07:12:08 2021 +0800 add androidsensor rotator The androidsensor rotator is not a real rotator, it uses the accelerometer sensor and magnetic field sensor of the cell phone or tablet to perform attitude determination for your antenna and the phone tied to it. Now you can wave your antenna to find radio signals. Signed-off-by: AuroraRAS <ch...@gm...> diff --git a/Android.mk b/Android.mk index e59ea0b8..fd6cb4dc 100644 --- a/Android.mk +++ b/Android.mk @@ -49,3 +49,6 @@ include $(TOP_PATH)/rotators/satel/Android.mk include $(TOP_PATH)/rotators/spid/Android.mk include $(TOP_PATH)/rotators/ts7400/Android.mk include $(TOP_PATH)/rotators/radant/Android.mk +include $(TOP_PATH)/rotators/androidsensor/Android.mk + +include $(TOP_PATH)/tests/Android.mk diff --git a/include/hamlib/rotlist.h b/include/hamlib/rotlist.h index 939cad56..522d4acb 100644 --- a/include/hamlib/rotlist.h +++ b/include/hamlib/rotlist.h @@ -619,6 +619,11 @@ #define ROT_MODEL_RADANT ROT_MAKE_MODEL(ROT_RADANT, 1) +#define ROT_ANDROIDSENSOR 23 +#define ROT_BACKEND_ANDROIDSENSOR "androidsensor" +#define ROT_MODEL_ANDROIDSENSOR ROT_MAKE_MODEL(ROT_ANDROIDSENSOR, 1) + + /** * \brief Convenience type definition for a rotator model. * diff --git a/rotators/androidsensor/Android.mk b/rotators/androidsensor/Android.mk new file mode 100644 index 00000000..8c0ab815 --- /dev/null +++ b/rotators/androidsensor/Android.mk @@ -0,0 +1,12 @@ +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := androidsensor.cpp ndkimu.cpp +LOCAL_MODULE := androidsensor + +LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_C_INCLUDES := android include src +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) + +include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/androidsensor/androidsensor.cpp b/rotators/androidsensor/androidsensor.cpp new file mode 100644 index 00000000..e53c1257 --- /dev/null +++ b/rotators/androidsensor/androidsensor.cpp @@ -0,0 +1,137 @@ +/* + * Hamlib Rotator backend - Radant + * Copyright (c) 2001-2003 by Stephane Fillod + * Contributed by Francois Retief <fgr...@su...> + * Copyright (c) 2014 by Alexander Schultze <ale...@gm...> + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> /* String function definitions */ +#include <unistd.h> /* UNIX standard function definitions */ +#include <math.h> + +#include "hamlib/rotator.h" +#include "register.h" + +#include "androidsensor.h" +#include "ndkimu.cpp" + +/* ************************************************************************* */ + +static NdkImu *imu; + +static int +androidsensor_rot_set_position(ROT *rot, azimuth_t az, elevation_t el) +{ + rig_debug(RIG_DEBUG_TRACE, "%s called: %f %f\n", __func__, az, el); + // To-Do + return RIG_OK; +} + +static int +androidsensor_rot_get_position(ROT *rot, azimuth_t *az, elevation_t *el) +{ + rig_debug(RIG_DEBUG_TRACE, "%s called: ", __func__); + + imu->update(); + + float accData[3], magData[3]; + imu->getAccData(accData); + imu->getMagData(magData); + + float R[9] = {0}, I[9] = {0}, orientation[3] = {0}; + bool status = imu->getRotationMatrix(R, 9, I, 9, accData, magData); + if(status) + imu->getOrientation(R, 9, orientation); + + *az = (orientation[0] / M_PI * 180 ); + *el = (orientation[1] / M_PI * 180 ) * -1; + + rig_debug(RIG_DEBUG_TRACE, "%f %f\n", az, el); + + return RIG_OK; +} + +static int +androidsensor_rot_stop(ROT *rot) +{ + rig_debug(RIG_DEBUG_TRACE, "%s called\n", __func__); + // To-Do + return RIG_OK; +} + +static int +androidsensor_rot_init(ROT *rot) +{ + rig_debug(RIG_DEBUG_TRACE, "%s called, make new NdkImu\n", __func__); + imu = new NdkImu(); + return RIG_OK; +} + +static int +androidsensor_rot_cleanup(ROT *rot) +{ + rig_debug(RIG_DEBUG_TRACE, "%s called, delete imu\n", __func__); + delete imu; + return RIG_OK; +} + +/* ************************************************************************* */ + +const struct rot_caps androidsensor_rot_caps = +{ + ROT_MODEL(ROT_MODEL_ANDROIDSENSOR), + .model_name = "ACC/MAG", + .mfg_name = "Android Sensor", + .version = "20210925.0", + .copyright = "LGPL", + .rot_type = ROT_TYPE_AZEL, + .port_type = RIG_PORT_NONE, + + .min_az = -180.0, + .max_az = 180.0, + .min_el = -180.0, + .max_el = 180.0, + + .priv = NULL, /* priv */ + + .set_position = androidsensor_rot_set_position, + .get_position = androidsensor_rot_get_position, + .stop = androidsensor_rot_stop, + .rot_init = androidsensor_rot_init, + .rot_cleanup = androidsensor_rot_cleanup, +}; + +/* ************************************************************************* */ + +DECLARE_INITROT_BACKEND(androidsensor) +{ + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + rot_register(&androidsensor_rot_caps); + return RIG_OK; +} + +/* ************************************************************************* */ +/* end of file */ diff --git a/rotators/androidsensor/androidsensor.h b/rotators/androidsensor/androidsensor.h new file mode 100644 index 00000000..89878a5d --- /dev/null +++ b/rotators/androidsensor/androidsensor.h @@ -0,0 +1,29 @@ +/* + * Hamlib Rotator backend - Easycomm interface protocol + * Copyright (c) 2001-2003 by Stephane Fillod + * Contributed by Francois Retief <fgr...@su...> + * Copyright (c) 2014 by Alexander Schultze <ale...@gm...> + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef _ROT_ANDROIDSENSOR_H +#define _ROT_ANDROIDSENSOR_H 1 + +extern const struct rot_caps androidsensor_rot_caps; + +#endif /* _ROT_ANDROIDSENSOR_H */ diff --git a/rotators/androidsensor/ndkimu.cpp b/rotators/androidsensor/ndkimu.cpp new file mode 100644 index 00000000..36d8ea51 --- /dev/null +++ b/rotators/androidsensor/ndkimu.cpp @@ -0,0 +1,207 @@ +#include "ndkimu.h" + +#include <cmath> + +NdkImu::NdkImu(char kPackageName[]) +{ + sensorManager = AcquireASensorManagerInstance(kPackageName); + assert(sensorManager != NULL); + accelerometer = ASensorManager_getDefaultSensor(sensorManager, ASENSOR_TYPE_ACCELEROMETER); + geomagnetic = ASensorManager_getDefaultSensor(sensorManager, ASENSOR_TYPE_MAGNETIC_FIELD); + assert(accelerometer != NULL); + looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS); + assert(looper != NULL); + accelerometerEventQueue = ASensorManager_createEventQueue(sensorManager, looper, + LOOPER_ID_USER, NULL, NULL); + geomagneticEventQueue = ASensorManager_createEventQueue(sensorManager, looper, + LOOPER_ID_USER, NULL, NULL); + assert(accelerometerEventQueue != NULL); + auto status = ASensorEventQueue_enableSensor(accelerometerEventQueue, + accelerometer); + assert(status >= 0); + + status = ASensorEventQueue_setEventRate(accelerometerEventQueue, + accelerometer, + SENSOR_REFRESH_PERIOD_US); + assert(status >= 0); + + status = ASensorEventQueue_enableSensor(geomagneticEventQueue, + geomagnetic); + assert(status >= 0); + + status = ASensorEventQueue_setEventRate(geomagneticEventQueue, + geomagnetic, + SENSOR_REFRESH_PERIOD_US); + assert(status >= 0); +} + +NdkImu::~NdkImu() +{ + auto status = ASensorEventQueue_disableSensor(accelerometerEventQueue, + accelerometer); + assert(status >= 0); + + status = ASensorEventQueue_disableSensor(geomagneticEventQueue, + geomagnetic); + assert(status >= 0); +} + +ASensorManager *NdkImu::AcquireASensorManagerInstance(char kPackageName[]) +{ + typedef ASensorManager *(*PF_GETINSTANCEFORPACKAGE)(const char *name); + void* androidHandle = dlopen("libandroid.so", RTLD_NOW); + PF_GETINSTANCEFORPACKAGE getInstanceForPackageFunc = (PF_GETINSTANCEFORPACKAGE) + dlsym(androidHandle, "ASensorManager_getInstanceForPackage"); + if (getInstanceForPackageFunc) { + return getInstanceForPackageFunc(kPackageName); + } + + typedef ASensorManager *(*PF_GETINSTANCE)(); + PF_GETINSTANCE getInstanceFunc = (PF_GETINSTANCE) + dlsym(androidHandle, "ASensorManager_getInstance"); + // by all means at this point, ASensorManager_getInstance should be available + assert(getInstanceFunc); + return getInstanceFunc(); +} + +/* + * https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/hardware/SensorManager.java + * blob: 9e78a6bb476061b4e20378ba20a00a2761e1ed7e + * line 1174 + */ +bool NdkImu::getRotationMatrix(float R[], size_t Rlength, float I[], size_t Ilength, float gravity[], float geomagnetic[]) +{ + // TODO: move this to native code for efficiency + float Ax = gravity[0]; + float Ay = gravity[1]; + float Az = gravity[2]; + const float normsqA = (Ax * Ax + Ay * Ay + Az * Az); + const float g = 9.81f; + const float freeFallGravitySquared = 0.01f * g * g; + if (normsqA < freeFallGravitySquared) { + // gravity less than 10% of normal value + return false; + } + const float Ex = geomagnetic[0]; + const float Ey = geomagnetic[1]; + const float Ez = geomagnetic[2]; + float Hx = Ey * Az - Ez * Ay; + float Hy = Ez * Ax - Ex * Az; + float Hz = Ex * Ay - Ey * Ax; + const float normH = (float) std::sqrt(Hx * Hx + Hy * Hy + Hz * Hz); + if (normH < 0.1f) { + // device is close to free fall (or in space?), or close to + // magnetic north pole. Typical values are > 100. + return false; + } + const float invH = 1.0f / normH; + Hx *= invH; + Hy *= invH; + Hz *= invH; + const float invA = 1.0f / (float) std::sqrt(Ax * Ax + Ay * Ay + Az * Az); + Ax *= invA; + Ay *= invA; + Az *= invA; + const float Mx = Ay * Hz - Az * Hy; + const float My = Az * Hx - Ax * Hz; + const float Mz = Ax * Hy - Ay * Hx; + if (R != NULL) { + if (Rlength == 9) { + R[0] = Hx; R[1] = Hy; R[2] = Hz; + R[3] = Mx; R[4] = My; R[5] = Mz; + R[6] = Ax; R[7] = Ay; R[8] = Az; + } else if (Rlength == 16) { + R[0] = Hx; R[1] = Hy; R[2] = Hz; R[3] = 0; + R[4] = Mx; R[5] = My; R[6] = Mz; R[7] = 0; + R[8] = Ax; R[9] = Ay; R[10] = Az; R[11] = 0; + R[12] = 0; R[13] = 0; R[14] = 0; R[15] = 1; + } + } + if (I != NULL) { + // compute the inclination matrix by projecting the geomagnetic + // vector onto the Z (gravity) and X (horizontal component + // of geomagnetic vector) axes. + const float invE = 1.0f / (float) std::sqrt(Ex * Ex + Ey * Ey + Ez * Ez); + const float c = (Ex * Mx + Ey * My + Ez * Mz) * invE; + const float s = (Ex * Ax + Ey * Ay + Ez * Az) * invE; + if (Ilength == 9) { + I[0] = 1; I[1] = 0; I[2] = 0; + I[3] = 0; I[4] = c; I[5] = s; + I[6] = 0; I[7] = -s; I[8] = c; + } else if (Ilength == 16) { + I[0] = 1; I[1] = 0; I[2] = 0; + I[4] = 0; I[5] = c; I[6] = s; + I[8] = 0; I[9] = -s; I[10] = c; + I[3] = I[7] = I[11] = I[12] = I[13] = I[14] = 0; + I[15] = 1; + } + } + return true; +} + +/* + * https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/hardware/SensorManager.java + * blob: 9e78a6bb476061b4e20378ba20a00a2761e1ed7e + * line 1469 + */ +float *NdkImu::getOrientation(float R[], size_t Rlength, float valuesBuf[]) +{ + if(valuesBuf == NULL) + valuesBuf = (float*)malloc(sizeof (float)*3); + + if (Rlength == 9) { + valuesBuf[0] = (float) std::atan2(R[1], R[4]); + valuesBuf[1] = (float) std::asin(-R[7]); + valuesBuf[2] = (float) std::atan2(-R[6], R[8]); + } else { + valuesBuf[0] = (float) std::atan2(R[1], R[5]); + valuesBuf[1] = (float) std::asin(-R[9]); + valuesBuf[2] = (float) std::atan2(-R[8], R[10]); + } + return valuesBuf; +} + +void NdkImu::update() +{ + ALooper_pollAll(0, NULL, NULL, NULL); + ASensorEvent event; + const float a = SENSOR_FILTER_ALPHA; + + while (ASensorEventQueue_getEvents(accelerometerEventQueue, &event, 1) > 0) { + sensorAccDataFilter.x = a * event.acceleration.x + (1.0f - a) * sensorAccDataFilter.x; + sensorAccDataFilter.y = a * event.acceleration.y + (1.0f - a) * sensorAccDataFilter.y; + sensorAccDataFilter.z = a * event.acceleration.z + (1.0f - a) * sensorAccDataFilter.z; + } + sensorAccData[sensorAccDataIndex] = sensorAccDataFilter; + sensorAccData[SENSOR_HISTORY_LENGTH+sensorAccDataIndex] = sensorAccDataFilter; + sensorAccDataIndex = (sensorAccDataIndex + 1) % SENSOR_HISTORY_LENGTH; + + while (ASensorEventQueue_getEvents(geomagneticEventQueue, &event, 1) > 0) { + sensorMagDataFilter.x = a * event.magnetic.x + (1.0f - a) * sensorMagDataFilter.x; + sensorMagDataFilter.y = a * event.magnetic.y + (1.0f - a) * sensorMagDataFilter.y; + sensorMagDataFilter.z = a * event.magnetic.z + (1.0f - a) * sensorMagDataFilter.z; + } + sensorMagData[sensorMagDataIndex] = sensorMagDataFilter; + sensorMagData[SENSOR_HISTORY_LENGTH+sensorMagDataIndex] = sensorMagDataFilter; + sensorMagDataIndex = (sensorMagDataIndex + 1) % SENSOR_HISTORY_LENGTH; +} + +float *NdkImu::getAccData(float accDataBuf[]) +{ + if(accDataBuf == NULL) + accDataBuf = (float*)malloc(sizeof (float)*3); + accDataBuf[0] = sensorAccDataFilter.x; + accDataBuf[1] = sensorAccDataFilter.y; + accDataBuf[2] = sensorAccDataFilter.z; + return accDataBuf; +} + +float *NdkImu::getMagData(float magDataBuf[]) +{ + if(magDataBuf == NULL) + magDataBuf = (float*)malloc(sizeof (float)*3); + magDataBuf[0] = sensorMagDataFilter.x; + magDataBuf[1] = sensorMagDataFilter.y; + magDataBuf[2] = sensorMagDataFilter.z; + return magDataBuf; +} diff --git a/rotators/androidsensor/ndkimu.h b/rotators/androidsensor/ndkimu.h new file mode 100644 index 00000000..9225d9bf --- /dev/null +++ b/rotators/androidsensor/ndkimu.h @@ -0,0 +1,57 @@ +#ifndef NDKIMU_H +#define NDKIMU_H + +#include <dlfcn.h> +#include <GLES2/gl2.h> + +#include <android/looper.h> +#include <android/sensor.h> + +#include <cstdint> +#include <cassert> +#include <string> + + +static const int LOOPER_ID_USER = 3; +static const int SENSOR_HISTORY_LENGTH = 100; +static const int SENSOR_REFRESH_RATE_HZ = 100; +static constexpr int32_t SENSOR_REFRESH_PERIOD_US = int32_t(1000000 / SENSOR_REFRESH_RATE_HZ); +static const float SENSOR_FILTER_ALPHA = 0.1f; + +class NdkImu +{ +public: + NdkImu(char kPackageName[] = NULL); + ~NdkImu(); + static ASensorManager *AcquireASensorManagerInstance(char kPackageName[]); + static bool getRotationMatrix(float R[], size_t Rlength, float I[], size_t Ilength, float gravity[], float geomagnetic[]); + static float *getOrientation(float R[], size_t Rlength, float valuesBuf[] = NULL); + +private: + ASensorManager *sensorManager; + const ASensor *accelerometer; + ASensorEventQueue *accelerometerEventQueue; + const ASensor *geomagnetic; + ASensorEventQueue *geomagneticEventQueue; + ALooper *looper; + + struct SensorData { + GLfloat x; + GLfloat y; + GLfloat z; + }; + SensorData sensorAccData[SENSOR_HISTORY_LENGTH*2]; + SensorData sensorAccDataFilter; + SensorData sensorMagData[SENSOR_HISTORY_LENGTH*2]; + SensorData sensorMagDataFilter; + + int sensorAccDataIndex; + int sensorMagDataIndex; + +public: + void update(); + float *getAccData(float accDataBuf[] = NULL); + float *getMagData(float magDataBuf[] = NULL); +}; + +#endif // NDKIMU_H diff --git a/src/Android.mk b/src/Android.mk index d4a1f315..24090e7c 100644 --- a/src/Android.mk +++ b/src/Android.mk @@ -39,8 +39,8 @@ LOCAL_STATIC_LIBRARIES := adat alinco amsat aor ars barrett celestron cnctrk \ gs232a heathkit icmarine icom ioptron jrc kachina kenwood kit \ lowe m2 meade pcr prm80 prosistel racal rft \ rotorez rs sartek satel skanti spid tapr tentec ts7400 tuner \ - uniden wj yaesu radant + uniden wj yaesu radant androidsensor -LOCAL_LDLIBS := -llog +LOCAL_LDLIBS := -llog -landroid include $(BUILD_SHARED_LIBRARY) diff --git a/src/rot_reg.c b/src/rot_reg.c index 3a97ed71..05494a9c 100644 --- a/src/rot_reg.c +++ b/src/rot_reg.c @@ -89,6 +89,9 @@ DEFINE_INITROT_BACKEND(radant); #if HAVE_LIBINDI DEFINE_INITROT_BACKEND(indi); #endif +#if defined(ANDROID) || defined(__ANDROID__) +DEFINE_INITROT_BACKEND(androidsensor); +#endif //! @endcond /** @@ -132,6 +135,9 @@ static struct { ROT_RADANT, ROT_BACKEND_RADANT, ROT_FUNCNAMA(radant)}, #if HAVE_LIBINDI { ROT_INDI, ROT_BACKEND_INDI, ROT_FUNCNAMA(indi) }, +#endif +#if defined(ANDROID) || defined(__ANDROID__) + { ROT_ANDROIDSENSOR, ROT_BACKEND_ANDROIDSENSOR, ROT_FUNCNAMA(androidsensor) }, #endif { 0, NULL }, /* end */ }; diff --git a/tests/Android.mk b/tests/Android.mk new file mode 100644 index 00000000..785b6d6f --- /dev/null +++ b/tests/Android.mk @@ -0,0 +1,12 @@ +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := rotctld.c rotctl_parse.c dumpcaps_rot.c ../src/rot_settings.c +LOCAL_MODULE := rotctld + +LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_C_INCLUDES := android include src +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) + +include $(BUILD_EXECUTABLE) diff --git a/tests/rotctld.c b/tests/rotctld.c index b714265b..19b12ce3 100644 --- a/tests/rotctld.c +++ b/tests/rotctld.c @@ -664,6 +664,9 @@ void *handle_socket(void *arg) } fsockin = _fdopen(sock_osfhandle, "rb"); +#elif defined(ANDROID) || defined(__ANDROID__) + // fdsan does not allow fdopen the same fd twice in Android + fsockin = fdopen(dup(handle_data_arg->sock), "rb"); #else fsockin = fdopen(handle_data_arg->sock, "rb"); #endif @@ -676,6 +679,9 @@ void *handle_socket(void *arg) #ifdef __MINGW32__ fsockout = _fdopen(sock_osfhandle, "wb"); +#elif defined(ANDROID) || defined(__ANDROID__) + // fdsan does not allow fdopen the same fd twice in Android + fsockout = fdopen(dup(handle_data_arg->sock), "wb"); #else fsockout = fdopen(handle_data_arg->sock, "wb"); #endif commit 782ad2a03464c42f57aca820634e1f68aae64553 Author: AuroraRAS <ch...@gm...> Date: Sat Sep 25 07:03:23 2021 +0800 make the Android.mk files adapt to multi arch diff --git a/rigs/adat/Android.mk b/rigs/adat/Android.mk index ebc6d6c1..f7879829 100644 --- a/rigs/adat/Android.mk +++ b/rigs/adat/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := adat LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := $(LOCAL_SHARED_LIBRARIES) -Lobj/local/armeabi +LOCAL_LDLIBS := $(LOCAL_SHARED_LIBRARIES) -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/alinco/Android.mk b/rigs/alinco/Android.mk index a9e1eb66..e3c64ab0 100644 --- a/rigs/alinco/Android.mk +++ b/rigs/alinco/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := alinco LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/aor/Android.mk b/rigs/aor/Android.mk index 2d595d87..08ed00ca 100644 --- a/rigs/aor/Android.mk +++ b/rigs/aor/Android.mk @@ -8,6 +8,6 @@ LOCAL_MODULE := aor LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/barrett/Android.mk b/rigs/barrett/Android.mk index c04de178..658ef13f 100644 --- a/rigs/barrett/Android.mk +++ b/rigs/barrett/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := barrett LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/dorji/Android.mk b/rigs/dorji/Android.mk index d236abb2..1494e341 100644 --- a/rigs/dorji/Android.mk +++ b/rigs/dorji/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := dorji LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/drake/Android.mk b/rigs/drake/Android.mk index 92027e48..75d91ff7 100644 --- a/rigs/drake/Android.mk +++ b/rigs/drake/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := drake LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/dummy/Android.mk b/rigs/dummy/Android.mk index d981a291..aebc5c9e 100644 --- a/rigs/dummy/Android.mk +++ b/rigs/dummy/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := dummy LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/elad/Android.mk b/rigs/elad/Android.mk index 603ab915..81e393e2 100644 --- a/rigs/elad/Android.mk +++ b/rigs/elad/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := elad LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/flexradio/Android.mk b/rigs/flexradio/Android.mk index 5f56e060..5751e4a2 100644 --- a/rigs/flexradio/Android.mk +++ b/rigs/flexradio/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := flexradio LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/icmarine/Android.mk b/rigs/icmarine/Android.mk index 18bfe8e2..0cfc41d8 100644 --- a/rigs/icmarine/Android.mk +++ b/rigs/icmarine/Android.mk @@ -8,6 +8,6 @@ LOCAL_MODULE := icmarine LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/icom/Android.mk b/rigs/icom/Android.mk index a66e6fa7..0440f849 100644 --- a/rigs/icom/Android.mk +++ b/rigs/icom/Android.mk @@ -18,6 +18,6 @@ LOCAL_MODULE := icom LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/jrc/Android.mk b/rigs/jrc/Android.mk index 0c526517..f4f01f33 100644 --- a/rigs/jrc/Android.mk +++ b/rigs/jrc/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := jrc LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/kachina/Android.mk b/rigs/kachina/Android.mk index c845668e..a755e7f2 100644 --- a/rigs/kachina/Android.mk +++ b/rigs/kachina/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := kachina LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/kenwood/Android.mk b/rigs/kenwood/Android.mk index 9a7d39c9..44faf752 100644 --- a/rigs/kenwood/Android.mk +++ b/rigs/kenwood/Android.mk @@ -13,6 +13,6 @@ LOCAL_MODULE := kenwood LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/kit/Android.mk b/rigs/kit/Android.mk index e0988cd7..1bcd8c51 100644 --- a/rigs/kit/Android.mk +++ b/rigs/kit/Android.mk @@ -9,6 +9,6 @@ LOCAL_MODULE := kit LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/lowe/Android.mk b/rigs/lowe/Android.mk index 7370a0a2..871a0aa0 100644 --- a/rigs/lowe/Android.mk +++ b/rigs/lowe/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := lowe LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/pcr/Android.mk b/rigs/pcr/Android.mk index 86388976..8b4202e0 100644 --- a/rigs/pcr/Android.mk +++ b/rigs/pcr/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := pcr LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/prm80/Android.mk b/rigs/prm80/Android.mk index d3051f12..3438b302 100644 --- a/rigs/prm80/Android.mk +++ b/rigs/prm80/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := prm80 LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/racal/Android.mk b/rigs/racal/Android.mk index e26b0482..adeec4e6 100644 --- a/rigs/racal/Android.mk +++ b/rigs/racal/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := racal LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/rft/Android.mk b/rigs/rft/Android.mk index d90c5e24..724e10b4 100644 --- a/rigs/rft/Android.mk +++ b/rigs/rft/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := rft LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/rs/Android.mk b/rigs/rs/Android.mk index 04f88066..74e9fa25 100644 --- a/rigs/rs/Android.mk +++ b/rigs/rs/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := rs LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/skanti/Android.mk b/rigs/skanti/Android.mk index b13f20fb..d62a0b1a 100644 --- a/rigs/skanti/Android.mk +++ b/rigs/skanti/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := skanti LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/tapr/Android.mk b/rigs/tapr/Android.mk index c5a0191b..4e1d5166 100644 --- a/rigs/tapr/Android.mk +++ b/rigs/tapr/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := tapr LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/tentec/Android.mk b/rigs/tentec/Android.mk index 6a9935ae..40aa9cc1 100644 --- a/rigs/tentec/Android.mk +++ b/rigs/tentec/Android.mk @@ -9,6 +9,6 @@ LOCAL_MODULE := tentec LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/tuner/Android.mk b/rigs/tuner/Android.mk index d335f283..d05f290f 100644 --- a/rigs/tuner/Android.mk +++ b/rigs/tuner/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := tuner LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/uniden/Android.mk b/rigs/uniden/Android.mk index 748cbeb1..1a621d54 100644 --- a/rigs/uniden/Android.mk +++ b/rigs/uniden/Android.mk @@ -9,6 +9,6 @@ LOCAL_MODULE := uniden LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/winradio/Android.mk b/rigs/winradio/Android.mk index 261a1629..a4f19496 100644 --- a/rigs/winradio/Android.mk +++ b/rigs/winradio/Android.mk @@ -8,6 +8,6 @@ LOCAL_MODULE := winradio LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/wj/Android.mk b/rigs/wj/Android.mk index 633e4bce..a3e6b9f1 100644 --- a/rigs/wj/Android.mk +++ b/rigs/wj/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := wj LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/yaesu/Android.mk b/rigs/yaesu/Android.mk index 501a8a68..a277423f 100644 --- a/rigs/yaesu/Android.mk +++ b/rigs/yaesu/Android.mk @@ -15,6 +15,6 @@ LOCAL_MODULE := yaesu LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -Lobj/local/armeabi +LOCAL_LDLIBS := -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/amsat/Android.mk b/rotators/amsat/Android.mk index 12aaf34a..7c1dd693 100644 --- a/rotators/amsat/Android.mk +++ b/rotators/amsat/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := amsat LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/ars/Android.mk b/rotators/ars/Android.mk index 785d38ea..e9dfa024 100644 --- a/rotators/ars/Android.mk +++ b/rotators/ars/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := ars LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/celestron/Android.mk b/rotators/celestron/Android.mk index 52340ff7..8429df13 100644 --- a/rotators/celestron/Android.mk +++ b/rotators/celestron/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := celestron LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/cnctrk/Android.mk b/rotators/cnctrk/Android.mk index 2392e6e1..3c6fb4e3 100644 --- a/rotators/cnctrk/Android.mk +++ b/rotators/cnctrk/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := cnctrk LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/easycomm/Android.mk b/rotators/easycomm/Android.mk index 84e2864a..808a2ecf 100644 --- a/rotators/easycomm/Android.mk +++ b/rotators/easycomm/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := easycomm LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/ether6/Android.mk b/rotators/ether6/Android.mk index 0655b9dc..cea491be 100644 --- a/rotators/ether6/Android.mk +++ b/rotators/ether6/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := ether6 LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/fodtrack/Android.mk b/rotators/fodtrack/Android.mk index b69f7351..bbac6b36 100644 --- a/rotators/fodtrack/Android.mk +++ b/rotators/fodtrack/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := fodtrack LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/gs232a/Android.mk b/rotators/gs232a/Android.mk index 7e42b2a1..1430b1f7 100644 --- a/rotators/gs232a/Android.mk +++ b/rotators/gs232a/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := gs232a LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/heathkit/Android.mk b/rotators/heathkit/Android.mk index 1a38dbdd..c368c1fe 100644 --- a/rotators/heathkit/Android.mk +++ b/rotators/heathkit/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := heathkit LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/indi/Android.mk b/rotators/indi/Android.mk index 4152c67a..650fa100 100644 --- a/rotators/indi/Android.mk +++ b/rotators/indi/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := indi LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/ioptron/Android.mk b/rotators/ioptron/Android.mk index 9f5a86f7..2af395ed 100644 --- a/rotators/ioptron/Android.mk +++ b/rotators/ioptron/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := ioptron LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -Lobj/local/armeabi +LOCAL_LDLIBS := -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/m2/Android.mk b/rotators/m2/Android.mk index d60e87a5..4c0b1b43 100644 --- a/rotators/m2/Android.mk +++ b/rotators/m2/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := m2 LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/meade/Android.mk b/rotators/meade/Android.mk index 2cb4e71b..aee5a231 100644 --- a/rotators/meade/Android.mk +++ b/rotators/meade/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := meade LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/rotators/prosistel/Android.mk b/rotators/prosistel/Android.mk index 54acb1c0..9734efa7 100644 --- a/rotators/prosistel/Android.mk +++ b/rotators/prosistel/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := prosistel LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/radant/Android.mk b/rotators/radant/Android.mk index f66b69e9..be6ae097 100644 --- a/rotators/radant/Android.mk +++ b/rotators/radant/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := radant LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/rotorez/Android.mk b/rotators/rotorez/Android.mk index b1326884..ca583b21 100644 --- a/rotators/rotorez/Android.mk +++ b/rotators/rotorez/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := rotorez LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/sartek/Android.mk b/rotators/sartek/Android.mk index 49bbf76c..6bf426d2 100644 --- a/rotators/sartek/Android.mk +++ b/rotators/sartek/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := sartek LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/satel/Android.mk b/rotators/satel/Android.mk index 7925dd54..450412f3 100644 --- a/rotators/satel/Android.mk +++ b/rotators/satel/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := satel LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/spid/Android.mk b/rotators/spid/Android.mk index 1e920d1e..172254f4 100644 --- a/rotators/spid/Android.mk +++ b/rotators/spid/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := spid LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) diff --git a/rotators/ts7400/Android.mk b/rotators/ts7400/Android.mk index 7069bacd..3543d5a9 100644 --- a/rotators/ts7400/Android.mk +++ b/rotators/ts7400/Android.mk @@ -7,6 +7,6 @@ LOCAL_MODULE := ts7400 LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi +LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) include $(BUILD_STATIC_LIBRARY) commit e51e645d2a99dd79ac9e60cbe8470c6002dbd8a9 Author: Mike Black W9MDB <mdb...@ya...> Date: Wed Sep 22 22:38:04 2021 -0500 Fix rigtestlibusb.c to include config.h diff --git a/tests/rigtestlibusb.c b/tests/rigtestlibusb.c index 4689ff7e..d6eaeed8 100644 --- a/tests/rigtestlibusb.c +++ b/tests/rigtestlibusb.c @@ -24,6 +24,7 @@ #include <stdio.h> #include <string.h> +#include "config.h" #if defined(HAVE_LIBUSB_H) #include "libusb.h" #elif defined(HAVE_LIBUSB_1_0_LIBUSB_H) commit 376db9e2e7268e13121f0497ee5ddf00ebefb5d2 Author: Mike Black W9MDB <mdb...@ya...> Date: Wed Sep 22 22:34:31 2021 -0500 Fix compilation when OS does have libusb installed https://github.com/Hamlib/Hamlib/issues/803 diff --git a/configure.ac b/configure.ac index 03a99f95..540c0baf 100644 --- a/configure.ac +++ b/configure.ac @@ -324,8 +324,8 @@ AC_ARG_VAR([LIBUSB_LIBS], [linker flags for libusb, overriding configure check ( AS_IF([test x"${cf_with_libusb}" = "xyes"], [ AS_IF([test -z $LIBUSB_LIBS], [AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBUSB_LIBS="-lusb-1.0"], - [AC_MSG_WARN([libusb_init was not found in libusb-1.0--USB backends will be disabled])]) - [cf_with_libusb="no"] + [AC_MSG_WARN([libusb_init was not found in libusb-1.0--USB backends will be disabled])] + [cf_with_libusb="no"]) ], [cf_with_libusb="yes"]) AS_IF([test x"${cf_with_libusb}" = "xyes"], commit 875104c395622795d4f74b18206a6d29fe96dc5b Author: Mike Black W9MDB <mdb...@ya...> Date: Wed Sep 22 13:25:07 2021 -0500 Update comments in tests/Makefile.am diff --git a/tests/Makefile.am b/tests/Makefile.am index 7778a378..ca13581e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -4,6 +4,8 @@ # AUTOMAKE_OPTIONS = dejagnu # DEJATOOL = testfreq testbcd testloc rigctl +# For some reason this "if" is not working -- rigtestlibusb is still being included +# Fix for now is to change rigtestlibusb.c instead if HAVE_LIBUSB TESTLIBUSB = rigtestlibusb else ----------------------------------------------------------------------- Summary of changes: Android.mk | 3 + configure.ac | 4 +- include/hamlib/rig.h | 3 + include/hamlib/rotlist.h | 5 + rigs/adat/Android.mk | 2 +- rigs/alinco/Android.mk | 2 +- rigs/aor/Android.mk | 2 +- rigs/barrett/Android.mk | 2 +- rigs/dorji/Android.mk | 2 +- rigs/drake/Android.mk | 2 +- rigs/dummy/Android.mk | 2 +- rigs/elad/Android.mk | 2 +- rigs/flexradio/Android.mk | 2 +- rigs/icmarine/Android.mk | 2 +- rigs/icom/Android.mk | 2 +- rigs/jrc/Android.mk | 2 +- rigs/kachina/Android.mk | 2 +- rigs/kenwood/Android.mk | 2 +- rigs/kit/Android.mk | 2 +- rigs/lowe/Android.mk | 2 +- rigs/pcr/Android.mk | 2 +- rigs/prm80/Android.mk | 2 +- rigs/racal/Android.mk | 2 +- rigs/rft/Android.mk | 2 +- rigs/rs/Android.mk | 2 +- rigs/skanti/Android.mk | 2 +- rigs/tapr/Android.mk | 2 +- rigs/tentec/Android.mk | 2 +- rigs/tuner/Android.mk | 2 +- rigs/uniden/Android.mk | 2 +- rigs/winradio/Android.mk | 2 +- rigs/wj/Android.mk | 2 +- rigs/yaesu/Android.mk | 2 +- rotators/amsat/Android.mk | 2 +- .../elecraft => rotators/androidsensor}/Android.mk | 6 +- rotators/androidsensor/androidsensor.cpp | 137 ++++++++++++++ .../fodtrack.h => androidsensor/androidsensor.h} | 12 +- rotators/androidsensor/ndkimu.cpp | 207 +++++++++++++++++++++ rotators/androidsensor/ndkimu.h | 57 ++++++ rotators/ars/Android.mk | 2 +- rotators/celestron/Android.mk | 2 +- rotators/cnctrk/Android.mk | 2 +- rotators/easycomm/Android.mk | 2 +- rotators/ether6/Android.mk | 2 +- rotators/fodtrack/Android.mk | 2 +- rotators/gs232a/Android.mk | 2 +- rotators/heathkit/Android.mk | 2 +- rotators/indi/Android.mk | 2 +- rotators/ioptron/Android.mk | 2 +- rotators/m2/Android.mk | 2 +- rotators/meade/Android.mk | 2 +- rotators/prosistel/Android.mk | 2 +- rotators/radant/Android.mk | 2 +- rotators/rotorez/Android.mk | 2 +- rotators/sartek/Android.mk | 2 +- rotators/satel/Android.mk | 2 +- rotators/spid/Android.mk | 2 +- rotators/ts7400/Android.mk | 2 +- src/Android.mk | 4 +- src/misc.c | 1 + src/rig.c | 44 ++++- src/rot_reg.c | 6 + tests/Android.mk | 12 ++ tests/Makefile.am | 2 + tests/rigtestlibusb.c | 1 + tests/rotctld.c | 6 + 66 files changed, 539 insertions(+), 69 deletions(-) copy {amplifiers/elecraft => rotators/androidsensor}/Android.mk (54%) create mode 100644 rotators/androidsensor/androidsensor.cpp copy rotators/{fodtrack/fodtrack.h => androidsensor/androidsensor.h} (71%) create mode 100644 rotators/androidsensor/ndkimu.cpp create mode 100644 rotators/androidsensor/ndkimu.h create mode 100644 tests/Android.mk hooks/post-receive -- Hamlib -- Ham radio control libraries |