kopia lustrzana https://github.com/Hamlib/Hamlib
added PcRotor in a new kit rotor group
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2434 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.8
rodzic
cb23a4e234
commit
99270142dc
|
@ -3,7 +3,7 @@
|
||||||
* Copyright (c) 2000-2008 by Stephane Fillod
|
* Copyright (c) 2000-2008 by Stephane Fillod
|
||||||
* Copyright (c) 2000-2002 by Stephane Fillod and Frank Singleton
|
* Copyright (c) 2000-2002 by Stephane Fillod and Frank Singleton
|
||||||
*
|
*
|
||||||
* $Id: rotlist.h,v 1.13 2008-09-21 19:34:16 fillods Exp $
|
* $Id: rotlist.h,v 1.14 2008-10-31 07:45:17 fillods Exp $
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify
|
* This library is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Library General Public License as
|
* it under the terms of the GNU Library General Public License as
|
||||||
|
@ -150,6 +150,15 @@
|
||||||
#define ROT_BACKEND_GS232A "gs232a"
|
#define ROT_BACKEND_GS232A "gs232a"
|
||||||
#define ROT_MODEL_GS232A ROT_MAKE_MODEL(ROT_GS232A, 1)
|
#define ROT_MODEL_GS232A ROT_MAKE_MODEL(ROT_GS232A, 1)
|
||||||
|
|
||||||
|
/*! \def ROT_MODEL_PCROTOR
|
||||||
|
* \brief A macro that returns the model number of the PcRotor/WA6UFQ backend.
|
||||||
|
*
|
||||||
|
* The kit backend can be used with home brewed rotators.
|
||||||
|
*/
|
||||||
|
#define ROT_KIT 7
|
||||||
|
#define ROT_BACKEND_KIT "kit"
|
||||||
|
#define ROT_MODEL_PCROTOR ROT_MAKE_MODEL(ROT_KIT, 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.
|
||||||
*/
|
*/
|
||||||
|
@ -170,6 +179,7 @@ typedef int rot_model_t;
|
||||||
{ ROT_ROTOREZ, ROT_BACKEND_ROTOREZ }, \
|
{ ROT_ROTOREZ, ROT_BACKEND_ROTOREZ }, \
|
||||||
{ ROT_SARTEK, ROT_BACKEND_SARTEK }, \
|
{ ROT_SARTEK, ROT_BACKEND_SARTEK }, \
|
||||||
{ ROT_GS232A, ROT_BACKEND_GS232A }, \
|
{ ROT_GS232A, ROT_BACKEND_GS232A }, \
|
||||||
|
{ ROT_KIT, ROT_BACKEND_KIT }, \
|
||||||
{ 0, NULL }, /* end */ \
|
{ 0, NULL }, /* end */ \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,10 @@ AM_CXXFLAGS = @USRP_CFLAGS@
|
||||||
KITSRCLIST = elektor304.c drt1.c dwt.c usrp.c usrp_impl.cc elektor507.c \
|
KITSRCLIST = elektor304.c drt1.c dwt.c usrp.c usrp_impl.cc elektor507.c \
|
||||||
dds60.c miniVNA.c
|
dds60.c miniVNA.c
|
||||||
|
|
||||||
|
KITROTSRCLIST = pcrotor.c
|
||||||
|
|
||||||
lib_LTLIBRARIES = hamlib-kit.la
|
lib_LTLIBRARIES = hamlib-kit.la
|
||||||
hamlib_kit_la_SOURCES = $(KITSRCLIST) kit.c
|
hamlib_kit_la_SOURCES = $(KITSRCLIST) $(KITROTSRCLIST) kit.c
|
||||||
hamlib_kit_la_LDFLAGS = -no-undefined -module -avoid-version
|
hamlib_kit_la_LDFLAGS = -no-undefined -module -avoid-version
|
||||||
hamlib_kit_la_LIBADD = $(top_builddir)/lib/libmisc.la \
|
hamlib_kit_la_LIBADD = $(top_builddir)/lib/libmisc.la \
|
||||||
$(USRP_LIBS) \
|
$(USRP_LIBS) \
|
||||||
|
|
14
kit/kit.c
14
kit/kit.c
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib KIT backend - main file
|
* Hamlib KIT backend - main file
|
||||||
* Copyright (c) 2004-2008 by Stephane Fillod
|
* Copyright (c) 2004-2008 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: kit.c,v 1.7 2008-04-11 18:03:53 fillods Exp $
|
* $Id: kit.c,v 1.8 2008-10-31 07:45:17 fillods Exp $
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify
|
* This library is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Library General Public License as
|
* it under the terms of the GNU Library General Public License as
|
||||||
|
@ -59,4 +59,16 @@ DECLARE_INITRIG_BACKEND(kit)
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* initrots_kit is called by rot_backend_load
|
||||||
|
*/
|
||||||
|
DECLARE_INITROT_BACKEND(kit)
|
||||||
|
{
|
||||||
|
rig_debug(RIG_DEBUG_VERBOSE, "kit: _init called\n");
|
||||||
|
|
||||||
|
rot_register(&pcrotor_caps);
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib KIT backend - main header
|
* Hamlib KIT backend - main header
|
||||||
* Copyright (c) 2004-2008 by Stephane Fillod
|
* Copyright (c) 2004-2008 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: kit.h,v 1.6 2008-04-11 18:03:53 fillods Exp $
|
* $Id: kit.h,v 1.7 2008-10-31 07:45:17 fillods Exp $
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify
|
* This library is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Library General Public License as
|
* it under the terms of the GNU Library General Public License as
|
||||||
|
@ -34,4 +34,6 @@ extern const struct rig_caps usrp_caps;
|
||||||
extern const struct rig_caps dds60_caps;
|
extern const struct rig_caps dds60_caps;
|
||||||
extern const struct rig_caps miniVNA_caps;
|
extern const struct rig_caps miniVNA_caps;
|
||||||
|
|
||||||
|
extern const struct rot_caps pcrotor_caps;
|
||||||
|
|
||||||
#endif /* _KIT_H */
|
#endif /* _KIT_H */
|
||||||
|
|
|
@ -0,0 +1,138 @@
|
||||||
|
/*
|
||||||
|
* Hamlib Rotator backend - PcRotor/WA6UFQ parallel port
|
||||||
|
* Copyright (c) 2001-2008 by Stephane Fillod
|
||||||
|
*
|
||||||
|
* $Id: pcrotor.c,v 1.1 2008-10-31 07:45:17 fillods Exp $
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Library General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h> /* String function definitions */
|
||||||
|
#include <unistd.h> /* UNIX standard function definitions */
|
||||||
|
|
||||||
|
#include "hamlib/rotator.h"
|
||||||
|
#include "parallel.h"
|
||||||
|
#include "misc.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
//pcrotor_set_position(ROT *rot, azimuth_t az, elevation_t el)
|
||||||
|
|
||||||
|
#define PCROTOR_POWER 0x20
|
||||||
|
#define PCROTOR_CW 0x40
|
||||||
|
#define PCROTOR_CCW 0x80
|
||||||
|
#define PCROTOR_MASK (PCROTOR_CCW|PCROTOR_CW|PCROTOR_POWER)
|
||||||
|
|
||||||
|
static int setDirection(hamlib_port_t *port, unsigned char outputvalue)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
par_lock (port);
|
||||||
|
|
||||||
|
/* set the data bits.
|
||||||
|
* Should we read before write to not trample the lower significant bits?
|
||||||
|
*/
|
||||||
|
ret = par_write_data(port, outputvalue);
|
||||||
|
|
||||||
|
par_unlock (port);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
pcrotor_stop(ROT *rot)
|
||||||
|
{
|
||||||
|
/* CW=0, CCW=0, Power-up=0 */
|
||||||
|
return setDirection(&rot->state.rotport, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
pcrotor_move(ROT *rot, int direction, int speed)
|
||||||
|
{
|
||||||
|
unsigned char outputvalue;
|
||||||
|
|
||||||
|
rig_debug(RIG_DEBUG_TRACE, "%s called: %d %d\n", __FUNCTION__, direction, speed);
|
||||||
|
|
||||||
|
switch(direction) {
|
||||||
|
case ROT_MOVE_CCW:
|
||||||
|
outputvalue = PCROTOR_POWER|PCROTOR_CCW;
|
||||||
|
break;
|
||||||
|
case ROT_MOVE_CW:
|
||||||
|
outputvalue = PCROTOR_POWER|PCROTOR_CCW;
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
/* Stop */
|
||||||
|
outputvalue = 0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return setDirection(&rot->state.rotport, outputvalue);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
/*
|
||||||
|
* PcRotor rotator capabilities.
|
||||||
|
*
|
||||||
|
* Control Interface schematics from, courtersy of Bob Hillard WA6UFQ:
|
||||||
|
* http://www.dxzone.com/cgi-bin/dir/jump2.cgi?ID=11173
|
||||||
|
*
|
||||||
|
* DB25-7=Data-5= Power up/Sleep
|
||||||
|
* DB25-8=Data-6= CW
|
||||||
|
* DB25-9=Data-7= CCW
|
||||||
|
*
|
||||||
|
* There's no feedback.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Fodtrack implement essentially only the set position function.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
const struct rot_caps pcrotor_caps = {
|
||||||
|
.rot_model = ROT_MODEL_PCROTOR,
|
||||||
|
.model_name = "PcRotor",
|
||||||
|
.mfg_name = "WA6UFQ",
|
||||||
|
.version = "0.1",
|
||||||
|
.copyright = "LGPL",
|
||||||
|
.status = RIG_STATUS_UNTESTED,
|
||||||
|
.rot_type = ROT_TYPE_OTHER,
|
||||||
|
.port_type = RIG_PORT_PARALLEL,
|
||||||
|
.write_delay = 0,
|
||||||
|
.post_write_delay = 0,
|
||||||
|
.timeout = 200,
|
||||||
|
.retry = 3,
|
||||||
|
|
||||||
|
.min_az = 0,
|
||||||
|
.max_az = 360,
|
||||||
|
.min_el = 0,
|
||||||
|
.max_el = 0,
|
||||||
|
|
||||||
|
.priv = NULL, /* priv */
|
||||||
|
|
||||||
|
.move = pcrotor_move,
|
||||||
|
.stop = pcrotor_stop,
|
||||||
|
//.set_position = pcrotor_set_position,
|
||||||
|
//.get_position = pcrotor_get_position,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* end of file */
|
Ładowanie…
Reference in New Issue