A
download serial.h
Language: C
Copyright: (C) 2000 by Salvatore Sanfilippo
LOC: 109
Project Info
hping2
Server: SourceForge
Type: cvs
...orge\h\hping2\hping2\s10sh\
   bar.c
   bar.h
   bytesex.h
   common.c
   common.h
   crc.c
   crc.h
   favicon.h
   favicon2c.c
   httpd.c
   httpd.h
   main.c
   Makefile.in
   maketgz.sh
   README.CVS
   s10sh.h
   serial.c
   serial.h
   usb.c
   usb.h

/* This file is part of s10sh
 *
 * Copyright (C) 2000 by Salvatore Sanfilippo <antirez@invece.org>
 *
 * S10sh IS FREE SOFTWARE, UNDER THE TERMS OF THE GPL VERSION 2
 * don't forget what free software means, even if today is so diffused.
 *
 * ALL THIRD PARTY BRAND, PRODUCT AND SERVICE NAMES MENTIONED ARE
 * THE TRADEMARK OR REGISTERED TRADEMARK OF THEIR RESPECTIVE OWNERS
 */

#ifndef S10SH_SERIAL_H
#define S10SH_SERIAL_H

struct header {
	unsigned char seq;
	unsigned char type;
	unsigned short len;
	unsigned char *data;
	unsigned short cksum;
	unsigned char cksum_ok;
	unsigned char ack_err;
	unsigned char eot_len;
	int framelen;
};

/* serial offsets */
#define SEQ_OFFSET	0
#define TYPE_OFFSET	1
#define EOTLEN_OFFSET	2
#define LEN_OFFSET	2
#define ACKERR_OFFSET	2
#define DATA_OFFSET	4

/* serial packet types */
#define PKT_TYPE_MSG	0x00
#define PKT_TYPE_EOT	0x04
#define PKT_TYPE_ACK	0x05
#define PKT_TYPE_INIT	0x06

/* serial commands */
#define MSG_TYPE_CAMERA_ID 0
#define MSG_TYPE_IMAGE 1
#define MSG_TYPE_THUMB 2
#define MSG_TYPE_SET_DATE 3
#define MSG_TYPE_CH_OWNER 4
#define MSG_TYPE_DISK_INFO 5
#define MSG_TYPE_GET_DISK 6
#define MSG_TYPE_UNK_1 7
#define MSG_TYPE_LIST_WITHOUT_DATE 8
#define MSG_TYPE_LIST_WITH_DATE 9
#define MSG_TYPE_DELETE_IMG 10
#define MSG_TYPE_POWER_STATUS 11
#define MSG_TYPE_GET_DATE 12
#define MSG_TYPE_SET_ATTRIB 13
#define MSG_TYPE_MKDIR 14
#define MSG_TYPE_RMDIR 15
#define MSG_TYPE_UPLOAD 16

/* ACK subtypes */
#define ACK_ERROR_NONE		0x00
#define ACK_ERROR_RETR1		0x01
#define ACK_ERROR_RETR2		0x02
#define ACK_ERROR_RETR3		0x03
#define ACK_ERROR_RETR4		0x04
#define ACK_ERROR_RETR5		0x05
#define ACK_ERROR_RETR6		0x05
#define ACK_ERROR_RETR7		0x07
#define ACK_ERROR_RETR8		0x08
#define ACK_ERROR_RETRALL	0xFF

/* serial speed changing commands */
#define SPEED_9600	"\x0F\xC0\x00\x03\x02\x02\x01\x10" \
			"\x00\x00\x00\x00\x7e\xe0\x39\xC1"
#define SPEED_19200	"\x0E\xC0\x00\x03\x08\x02\x01\x10" \
			"\x00\x00\x00\x00\x13\x1f\xC1"
#define SPEED_38400	"\x0E\xC0\x00\x03\x20\x02\x01\x10" \
			"\x00\x00\x00\x00\x5f\x84\xC1"
#define SPEED_57600	"\x0E\xC0\x00\x03\x40\x02\x01\x10" \
			"\x00\x00\x00\x00\x5e\x57\xC1"
#define SPEED_115200	"\x0E\xC0\x00\x03\x80\x02\x01\x10" \
			"\x00\x00\x00\x00\x4d\xf9\xC1"

extern int fd, pkt_sequence;
extern unsigned char frag_sequence;
extern int serial_timeout;
extern int serial_u_timeout;
extern unsigned char eot_sequence;
extern unsigned char ack_sequence;
extern struct termios backup, new;
extern int serial_speed;
extern char *serialdev;
extern int opt_a50;
extern unsigned char *msgtype_list[];

/* function prototypes */
int serial_write(int fd, unsigned char *buffer, int size);
int serial_send_frame(unsigned char *data, int len);
int serial_send_pkt_message(unsigned char *pkt, unsigned short len, int morefrag);
int serial_send_message_frag(int type, unsigned char *frag, unsigned short len, int morefrag);
int serial_send_ack(unsigned int ack_error);
int serial_get_ack(void);
int serial_send_switch_speed(void);
int serial_send_eot(void);
int serial_send_ping(void);
int serial_send_switch_off(void);
int serial_read(int fd, char *buffer, int size);
int serial_get_byte(void);
unsigned char *serial_get_frame(int *len);
unsigned char *serial_get_packet(struct header *hdr);
int serial_initial_sync(char *device);
char *serial_get_id(void);
char *serial_get_disk(void);
void serial_ping(void);
int serial_get_disk_info(char *disk, int *size, int *free);
void serial_debug_getpkt(void);
void serial_nolonger_pcmode(void);
int serial_get_power_status(int *good, int *ac);
int serial_test_message(int msgtype);
time_t serial_get_date(void);
void serial_change_speed(int speed);
int serial_flush_input(void);
int serial_flush_output(void);
int serial_init(char *device);
int serial_change_serial_speed(int speed);
unsigned char *serial_get_data(char *pathname, int reqtype, int *retlen);
int serial_open(void);
int serial_close(void);
int serial_mkdir(char *pathname);
int serial_rmdir(char *pathname);
int serial_upload(char *source, char *target);
int serial_delete(char *pathname);
int serial_set_file_attrib(char *pathname, unsigned char newattrib);

#endif /* S10SH_SERIAL_H */

About Koders | Resources | Downloads | Support | Black Duck | Terms of Service | DMCA | Privacy Policy | Contact Us