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
KI4SBL
libusb-1-0
Bob Freeman 2015-01-06 12:37:15 -05:00 zatwierdzone przez Nate Bargmann
rodzic f8ccebc694
commit d899805ae6
6 zmienionych plików z 123 dodań i 1 usunięć

1
NEWS
Wyświetl plik

@ -53,6 +53,7 @@ Version 3.0
only when Winradio backend is enabled.
* New IC-M700PRO, IC-M710, IC-M802.
* New Icom ID-5100 model.
* New rotor, cnctrk by KI4SBL
Version 1.2.15.3
2012-11-01

12
cnctrk/Android.mk 100644
Wyświetl plik

@ -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)

Wyświetl plik

@ -0,0 +1,5 @@
noinst_LTLIBRARIES = libhamlib-cnctrk.la
libhamlib_cnctrk_la_SOURCES = cnctrk.c
EXTRA_DIST = Android.mk

91
cnctrk/cnctrk.c 100644
Wyświetl plik

@ -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;
}

Wyświetl plik

@ -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 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"
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
# Values given to -version-info when linking. See libtool documentation.
@ -737,6 +737,7 @@ amsat/Makefile
adat/Makefile
ts7400/Makefile
celestron/Makefile
cnctrk/Makefile
ether6/Makefile
scripts/Makefile
android/Makefile

Wyświetl plik

@ -279,6 +279,18 @@
#define ROT_BACKEND_ETHER6 "ether6"
#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
\brief Convenience type definition for rotator model.
*/