xref: /freebsd/contrib/ntp/include/icom.h (revision 416ba5c74546f32a993436a99516d35008e9f384)
1a151a66cSOllivier Robert /*
2a151a66cSOllivier Robert  * Header file for ICOM radios
3a151a66cSOllivier Robert  */
4a151a66cSOllivier Robert #include "ntp_types.h"
5a151a66cSOllivier Robert 
6a151a66cSOllivier Robert /*
7a151a66cSOllivier Robert  * Common definitions
8a151a66cSOllivier Robert  */
9a151a66cSOllivier Robert #define P_ERMSG	0x1		/* trace bus error messages */
10a151a66cSOllivier Robert #define P_TRACE 0x2		/* trace CI-V messges */
11a151a66cSOllivier Robert #define RETRY	3		/* max packet retries */
12a151a66cSOllivier Robert #define IBAUD	B1200		/* autotune port speed */
13a151a66cSOllivier Robert 
14a151a66cSOllivier Robert /*
15a151a66cSOllivier Robert  * Radio identifier codes
16a151a66cSOllivier Robert  */
17a151a66cSOllivier Robert #define IC1271	0x24
18a151a66cSOllivier Robert #define IC1275	0x18
19a151a66cSOllivier Robert #define IC271	0x20
20a151a66cSOllivier Robert #define IC275	0x10
21a151a66cSOllivier Robert #define IC375	0x12
22a151a66cSOllivier Robert #define IC471	0x22
23a151a66cSOllivier Robert #define IC475	0x14
24a151a66cSOllivier Robert #define IC575	0x16
25a151a66cSOllivier Robert #define IC725	0x28
26a151a66cSOllivier Robert #define IC726	0x30
27a151a66cSOllivier Robert #define IC735	0x04
28a151a66cSOllivier Robert #define IC751	0x1c
29a151a66cSOllivier Robert #define IC761	0x1e
30a151a66cSOllivier Robert #define IC765	0x2c
31a151a66cSOllivier Robert #define IC775	0x46
32a151a66cSOllivier Robert #define IC781	0x26
33a151a66cSOllivier Robert #define IC970	0x2e
34a151a66cSOllivier Robert #define R7000	0x08
35a151a66cSOllivier Robert #define R71	0x1a
36a151a66cSOllivier Robert #define R7100	0x34
37a151a66cSOllivier Robert #define R72	0x32
38a151a66cSOllivier Robert #define R8500	0x4a
39a151a66cSOllivier Robert #define R9000	0x2a
40a151a66cSOllivier Robert 
41a151a66cSOllivier Robert /*
42a151a66cSOllivier Robert  * CI-V frame codes
43a151a66cSOllivier Robert  */
44a151a66cSOllivier Robert #define PR	0xfe		/* preamble */
45a151a66cSOllivier Robert #define TX	0xe0		/* controller address */
46a151a66cSOllivier Robert #define FI	0xfd		/* end of message */
47a151a66cSOllivier Robert #define ACK	0xfb		/* controller normal reply */
48a151a66cSOllivier Robert #define NAK	0xfa		/* controller error reply */
49a151a66cSOllivier Robert #define PAD	0xff		/* transmit padding */
50a151a66cSOllivier Robert 
51a151a66cSOllivier Robert /*
52a151a66cSOllivier Robert  * CI-V controller commands
53a151a66cSOllivier Robert  */
54a151a66cSOllivier Robert #define V_FREQT	0x00		/* freq set (transceive) */
55a151a66cSOllivier Robert #define V_MODET	0x01		/* set mode (transceive) */
56a151a66cSOllivier Robert #define V_RBAND	0x02		/* read band edge */
57a151a66cSOllivier Robert #define V_RFREQ	0x03		/* read frequency */
58a151a66cSOllivier Robert #define V_RMODE	0x04		/* read mode */
59a151a66cSOllivier Robert #define V_SFREQ	0x05		/* set frequency */
60a151a66cSOllivier Robert #define V_SMODE	0x06		/* set mode */
61a151a66cSOllivier Robert #define V_SVFO	0x07		/* select vfo */
62a151a66cSOllivier Robert #define V_SMEM	0x08		/* select channel/bank */
63a151a66cSOllivier Robert #define V_WRITE	0x09		/* write channel */
64a151a66cSOllivier Robert #define V_VFOM	0x0a		/* memory -> vfo */
65a151a66cSOllivier Robert #define V_CLEAR	0x0b		/* clear channel */
66a151a66cSOllivier Robert #define V_ROFFS	0x0c		/* read tx offset */
67a151a66cSOllivier Robert #define V_SOFFS	0x0d		/* write tx offset */
68a151a66cSOllivier Robert #define V_SCAN	0x0e		/* scan control */
69a151a66cSOllivier Robert #define V_SPLIT	0x0f		/* split control */
70a151a66cSOllivier Robert #define V_DIAL	0x10		/* set dial tuning step */
71a151a66cSOllivier Robert #define V_ATTEN	0x11		/* set attenuator */
72a151a66cSOllivier Robert #define V_SANT	0x12		/* select antenna */
73a151a66cSOllivier Robert #define V_ANNC	0x13		/* announce control */
74a151a66cSOllivier Robert #define V_WRCTL	0x14		/* write controls */
75a151a66cSOllivier Robert #define V_RDCTL	0x15		/* read controls */
76a151a66cSOllivier Robert #define V_TOGL	0x16		/* set switches */
77a151a66cSOllivier Robert #define V_ASCII	0x17		/* send CW message */
78a151a66cSOllivier Robert #define V_POWER	0x18		/* power control */
79a151a66cSOllivier Robert #define V_RDID	0x19		/* read model ID */
80a151a66cSOllivier Robert #define V_SETW	0x1a		/* read/write channel/bank data */
81a151a66cSOllivier Robert #define V_CTRL	0x7f		/* miscellaneous control */
82a151a66cSOllivier Robert 
83a151a66cSOllivier Robert /*
84a151a66cSOllivier Robert  * Function prototypes
85a151a66cSOllivier Robert  */
86*2b15cb3dSCy Schubert int	icom_init		(const char *, int, int);
87*2b15cb3dSCy Schubert int	icom_freq		(int, int, double);
88