00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef EMUL_H
00025
#define EMUL_H
00026
00033
00034
#define UART_DSR 0x20
00035
#define UART_CTS 0x10
00036
#define UART_RI 0x10
00037
#define UART_CD 0x40
00038
#define PARITY_ERROR 0x08
00039
00040
00041
00042
00043
00044
00050 #define NORMAL 0x0
00051
00057 #define EMATE 0x1
00058
00063
void em_devtype(
int type);
00068
int em_isemate(
void);
00073
int em_isactive(
void);
00081
int em_open(
void);
00086
void em_close(
void);
00094
int em_replug(
void);
00102 #define CONTROL_DTR 0x20
00103
00110 #define CONTROL_RTS 0x10
00111
00117 #define CONTROL_RESET 0x08
00118
00123 #define CONTROL_DROP 0x00
00124
00129
void em_linecontrol(u_int8_t lines);
00134 #define PAR_ODD 0x30
00135
00139 #define PAR_EVEN 0x10
00140
00144 #define PAR_NONE 0x00
00145
00149 struct serconfig {
00154 long baudrate;
00159 short databits;
00164 short stopbits;
00169 short parity;
00170 };
00176
int em_serconfig_set(
struct serconfig *sconfig);
00181
int em_serconfig_get(
struct serconfig *sconfig);
00182
00187 #define EM_MAX_READ 4096
00188
00192 #define EM_MAX_WRITE 4096
00193
00199
int em_read(u_int8_t buffer[],
int count);
00206
int em_write(
const u_int8_t *buffer,
int count);
00207
00212
int em_flush(
int queue_selector);
00213
00218
int em_read_data_avail(
void);
00223
int em_write_data_avail(
void);
00224
00233
int em_datawait(
struct timeval *tv,
int jumpout);
00234
00245
00246
00247
int em_select(
int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
struct timeval *timeout);
00248
00251
void em_writewait(
void);
00252
00257
void em_debuglevel(
int mode);
00258
00264 #define EMT_ACTIVE 1
00265
00270 #define EMT_IDLING 0
00271
void em_change_state(
int state);
00272
00280 ssize_t READ(
int fd,
void *buf, size_t count);
00287 ssize_t WRITE(
int fd,
const void *buf, size_t count);
00288
00293
unsigned int em_getbaudmask(
unsigned int rate);
00298
long em_getbaudrate(
void);
00299
00300
00303 #define VENDOR_ID_DELORME 0x1163
00304
00306 #define PRODUCT_ID_EARTHMATEUSB 0x0100
00307
00308
00316 #define MAX_READ_WRITE 30
00317
00318
00324
int em_raw_read(u_int8_t buffer[]);
00330
int em_raw_write(u_int8_t *buffer,
int size);
00331
00332
#endif