kopia lustrzana https://github.com/Hamlib/Hamlib
New CNCTRK rotor backend
Am sending the source file for my CNCTRK backend used to pass AZ/EL data to a linuxcnc-enabled rotator. Thanks, Bob KI4SBLlibusb-1-0
rodzic
f8ccebc694
commit
d899805ae6
1
NEWS
1
NEWS
|
@ -53,6 +53,7 @@ Version 3.0
|
||||||
only when Winradio backend is enabled.
|
only when Winradio backend is enabled.
|
||||||
* New IC-M700PRO, IC-M710, IC-M802.
|
* New IC-M700PRO, IC-M710, IC-M802.
|
||||||
* New Icom ID-5100 model.
|
* New Icom ID-5100 model.
|
||||||
|
* New rotor, cnctrk by KI4SBL
|
||||||
|
|
||||||
Version 1.2.15.3
|
Version 1.2.15.3
|
||||||
2012-11-01
|
2012-11-01
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
LOCAL_PATH:= $(call my-dir)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_SRC_FILES := cnctrk.c
|
||||||
|
LOCAL_MODULE := cnctrk
|
||||||
|
|
||||||
|
LOCAL_CFLAGS := -DHAVE_CONFIG_H
|
||||||
|
LOCAL_C_INCLUDES := android include src
|
||||||
|
LOCAL_LDLIBS := -lhamlib -Lobj/local/armeabi
|
||||||
|
|
||||||
|
include $(BUILD_STATIC_LIBRARY)
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = libhamlib-cnctrk.la
|
||||||
|
libhamlib_cnctrk_la_SOURCES = cnctrk.c
|
||||||
|
|
||||||
|
EXTRA_DIST = Android.mk
|
|
@ -0,0 +1,91 @@
|
||||||
|
/*
|
||||||
|
* Hamlib Rotator backend - LinuxCNC no hardware port
|
||||||
|
* Copyright (c) 2015 by Robert Freeman
|
||||||
|
* Adapted from AMSAT code by Stephane Fillod
|
||||||
|
*
|
||||||
|
* 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 <math.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h> /* String function definitions */
|
||||||
|
#include <unistd.h> /* UNIX standard function definitions */
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_IOCTL_H
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "hamlib/rotator.h"
|
||||||
|
#include "misc.h"
|
||||||
|
#include "register.h"
|
||||||
|
|
||||||
|
char axcmd[512];
|
||||||
|
|
||||||
|
static int
|
||||||
|
cnctrk_set_position(ROT *rot, azimuth_t az, elevation_t el)
|
||||||
|
{
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
retval = system ("/usr/bin/axis-remote --ping");
|
||||||
|
if (retval != 0)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
sprintf(axcmd, "/usr/bin/axis-remote --mdi 'G00 X %6.2f Y %6.2f' \n", az, el);
|
||||||
|
return retval = system (axcmd);
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** CNCTRK implements essentially only the set position function.
|
||||||
|
it assumes there is a LinuxCNC running with the Axis GUI */
|
||||||
|
const struct rot_caps cnctrk_rot_caps = {
|
||||||
|
.rot_model = ROT_MODEL_CNCTRK,
|
||||||
|
.model_name = "CNCTRK",
|
||||||
|
.mfg_name = "CNCTRK",
|
||||||
|
.version = "0.1",
|
||||||
|
.copyright = "LGPL",
|
||||||
|
.status = RIG_STATUS_UNTESTED,
|
||||||
|
.rot_type = ROT_TYPE_OTHER,
|
||||||
|
.port_type = RIG_PORT_NONE,
|
||||||
|
.write_delay = 0,
|
||||||
|
.post_write_delay = 0,
|
||||||
|
.timeout = 200,
|
||||||
|
.retry = 3,
|
||||||
|
|
||||||
|
.min_az = 0,
|
||||||
|
.max_az = 360,
|
||||||
|
.min_el = -20,
|
||||||
|
.max_el = 180,
|
||||||
|
|
||||||
|
.set_position = cnctrk_set_position,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
|
||||||
|
DECLARE_INITROT_BACKEND(cnctrk)
|
||||||
|
{
|
||||||
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||||
|
|
||||||
|
rot_register(&cnctrk_rot_caps);
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
|
@ -50,7 +50,7 @@ dnl Beware of duplication should a backend directory include both rig and
|
||||||
dnl rotor definitions, e.g. "dummy". Optional backends will not be listed
|
dnl rotor definitions, e.g. "dummy". Optional backends will not be listed
|
||||||
dnl here but will be added later, e.g. "winradio".
|
dnl here but will be added later, e.g. "winradio".
|
||||||
BACKEND_LIST="adat alinco aor drake dummy flexradio icom icmarine jrc kachina kenwood kit lowe pcr prm80 racal rft rs skanti tapr tentec tuner uniden wj yaesu"
|
BACKEND_LIST="adat alinco aor drake dummy flexradio icom icmarine jrc kachina kenwood kit lowe pcr prm80 racal rft rs skanti tapr tentec tuner uniden wj yaesu"
|
||||||
ROT_BACKEND_LIST="amsat ars celestron easycomm ether6 fodtrack gs232a heathkit m2 rotorez sartek spid ts7400"
|
ROT_BACKEND_LIST="amsat ars celestron cnctrk easycomm ether6 fodtrack gs232a heathkit m2 rotorez sartek spid ts7400"
|
||||||
|
|
||||||
dnl See README.release on setting these values
|
dnl See README.release on setting these values
|
||||||
# Values given to -version-info when linking. See libtool documentation.
|
# Values given to -version-info when linking. See libtool documentation.
|
||||||
|
@ -737,6 +737,7 @@ amsat/Makefile
|
||||||
adat/Makefile
|
adat/Makefile
|
||||||
ts7400/Makefile
|
ts7400/Makefile
|
||||||
celestron/Makefile
|
celestron/Makefile
|
||||||
|
cnctrk/Makefile
|
||||||
ether6/Makefile
|
ether6/Makefile
|
||||||
scripts/Makefile
|
scripts/Makefile
|
||||||
android/Makefile
|
android/Makefile
|
||||||
|
|
|
@ -279,6 +279,18 @@
|
||||||
#define ROT_BACKEND_ETHER6 "ether6"
|
#define ROT_BACKEND_ETHER6 "ether6"
|
||||||
#define ROT_MODEL_ETHER6 ROT_MAKE_MODEL(ROT_ETHER6, 1)
|
#define ROT_MODEL_ETHER6 ROT_MAKE_MODEL(ROT_ETHER6, 1)
|
||||||
|
|
||||||
|
|
||||||
|
/*! \def ROT_MODEL_CNCTRK
|
||||||
|
* \brief A macro that returns the model number of the CNCTRK backend.
|
||||||
|
*
|
||||||
|
* The CNCTRK backend can be used with rotators that support,
|
||||||
|
* the LinuxCNC running Axis GUI interface.
|
||||||
|
*/
|
||||||
|
#define ROT_CNCTRK 16
|
||||||
|
#define ROT_BACKEND_CNCTRK "cnctrk"
|
||||||
|
#define ROT_MODEL_CNCTRK ROT_MAKE_MODEL(ROT_CNCTRK, 1)
|
||||||
|
|
||||||
|
|
||||||
/*! \typedef typedef int rot_model_t
|
/*! \typedef typedef int rot_model_t
|
||||||
\brief Convenience type definition for rotator model.
|
\brief Convenience type definition for rotator model.
|
||||||
*/
|
*/
|
||||||
|
|
Ładowanie…
Reference in New Issue