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