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. 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

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

Wyświetl plik

@ -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.
*/ */