File: server.h

package info (click to toggle)
twpsk 2.1-6
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 944 kB
  • ctags: 1,477
  • sloc: cpp: 9,057; makefile: 187; sh: 4
file content (83 lines) | stat: -rw-r--r-- 2,501 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ifndef _USERIF_H_INCLUDED
#define _USERIF_H_INCLUDED

/* server-api:
 * auf senden schalten:
 *    modus angeben   PSK(preamble,idle) CW(nix,ruhe), TUNE(nix,carrier)
 *    sofort oder bei DCD off angeben
 * senden ausschalten:
 *    mit postamble oder ohne...
 *    nach tx buffer ende
 *    txbuffer leeren, ggf. postamble, dann abschalten
 *    sofort abschalten
 */

#define COMM_PTT	0x01
#define COMM_DCD	0x02
#define COMM_DCDLEVEL	0x03
#define COMM_QPSK	0x04
#define COMM_LSB	0x05
#define COMM_AFC	0x06
#define COMM_MODE	0x07
#define COMM_FREQ	0x08
#define COMM_FFTN	0x20
#define COMM_FFTOVERLAP 0x21
#define COMM_SWAP       0x40

#define COMM_TXCH	0xFF
#define COMM_ECHOCH     0x00
#define COMM_FFTCH	0x01
#define COMM_RXCH	0x02

#define PTTOFF		0
#define PTTON		1
#define PTTFORCE	0x10

#define MO_NORMAL	0x01     /* PSK31 RX or TX */
#define MO_CWSEND	0x02     /* only TX channel: send CW */
#define MO_TUNE		0x04     /* only TX channel: send tune carrier */
#define MO_DISABLED	0x80     /* disable channel. only supp. for 2nd RX */

	// spec:
	// COMM_PTT       ON OFF PTT_FORCE
	// COMM_DCD       ON OFF
	// COMM_DCDLEVEL  0..100 (?)
	// COMM_QPSK      ON OFF
	// COMM_LSB       ON OFF
	// COMM_AFC       ON OFF
	// COMM_MODE      MO_DISABLED  MO_NORMAL  (TXonly:) MO_CWSEND  MO_TUNE
	// COMM_FFTN        128..4096
	// COMM_FFTOVERLAP  0..FFTN, evtl grer
	// channel: -1=TX, sonst RX
	// channel:  TXCH, RXCH, FFTCH
	// value: -1= nix ndern, sonst value; return: aktueller value oder -1
		
	
typedef struct {
	int freq;       // IF frequence (RX,TX)
	int qpsk;         // QPSK <-> BPSK (RX,TX)
	int lsb;          // LSB(inverted)  (RX,TX)
	int cw;           // 0=normal PSK mode  1=transmit as CW  2=tuning(TX)
	int dcd;          // DCD active (RX)
	int dcdlevel;     // DCD sensitifity (-1=disable DCD,  (RX)
	                  // 0=only preamble/postamble DCD)
	int strength;     // range: 0..40
	int afc;          // use AFC (RX)
	int mode;         // ??
	int ptt;          // PTT on??? (transmitting?)  (all CH)
	int phdelta;      // last phase change (RX)
	float qty[4];     // quality (current,bpsk,qpsk,qpsk-inverted)
} PSK31info;


int commWaitUpdate(unsigned long timeout);
int commGetData(int channel, char *buffer, int buflen);
int commPutData(char *buffer, int buflen);
int commControl(int channel, int spec, int value);
int commGetInfo(int channel, void *buffer, int buflen);


// for the non-socket server...
int server_main(char *audio, char *ptt, char *datadir);

#endif