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.
|
||||
* 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
|
||||
|
|
|
@ -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 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
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
|
|
Ładowanie…
Reference in New Issue