⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dc.h

📁 一个通过无线设备传输文件程序主要涉及内容是网络通信和RS232设置
💻 H
字号:
/* ************************************************************* * * common defines and structures for DC * * *************************************************************/#ifndef _WXXT_DC_COMMON_H_#define _WXXT_DC_COMMON_H_#include "share.h"/* log file & flags */#define DC_MAIN_LOG    		"/tmp/dcmain.log"#define DC_KEY_LOG		"/tmp/dc_key.log"#define DC_AUDIO_LOG		"/tmp/dc_audio.log"#define DC_VIDEO_LOG		"/tmp/dc_video.log"#define DC_CARD_LOG		"/tmp/dc_card.log"#define DC_GENERAL_LOG		"/tmp/dc_general.log"/* socket for inter-process communication*/#define DC_EVENT_MAIN_SOCK	"/tmp/.dc_event_main_sock"#define DC_EVENT_KEY_SOCK	"/tmp/.dc_event_key_sock"#define DC_EVENT_AUDIO_SOCK	"/tmp/.dc_event_audio_sock"#define DC_EVENT_VIDEO_SOCK	"/tmp/.dc_event_video_sock"#define DC_EVENT_CARD_SOCK	"/tmp/.dc_event_card_sock"#define DC_EVENT_GENERAL_SOCK	"/tmp/.dc_event_general_sock"/* DC Keyboard map */#define UNUSED_KEY		-1#define DC_MAX_KEY		12#define DC_CANCEL_KEY		10#define DC_STOP_KEY		11#define CAM_FRAME_RATE		9/* parameters */#define DEFAULT_MEMBERS_PER_HOUSE	5	/* parent, grandparent, child */#define DEFAULT_DC_REDUNDANT_MEMBERS	128/* interval */#define DC_SELFCHECK_INTERVAL		5	/* 5 seconds */#define DC_CLEAR_DOORNUM_INTERVAL	10#define DC_KEEP_REDAIL_DOORNUM_INTERVAL	90/* make sure DC_TRY_DAIL_DURATION < DC_KEEP_REDAIL_DOORNUM_INTERVAL */#define DC_TRY_DAIL_DURATION		60#define DC_SHM_SIZE			10240//8192	//8K#define DC_SHM_KEY			0x20040317typedef struct{	int		magic;		in_addr_t	dc_ip;}dc_ip_t;typedef struct{	int		magic;		int		version;}dc_version_t;#define DC_IP_MAGIC			0x20040323#define DC_VERSION_MAGIC		0x20040324#define DC_INIT_INFO_MAGIC		0x20040318/* variables used between processes */struct global_var {	volatile int 	ip_configure;	volatile int 	inited_when_boot;	volatile int	mtd_size;    	volatile int	server1_active;    	volatile int	server2_active;	info_for_dc_t	init_info;	dc_version_t 	dc_version;	dc_ip_t		dc_ip;};extern struct global_var *gvar;#define gdc_ip_configure	(gvar->ip_configure)#define gdc_inited_when_boot	(gvar->inited_when_boot)#define gdc_mtd_size            (gvar->mtd_size)#define gdc_init_info		(gvar->init_info)#define gdc_dc_version		(gvar->dc_version)#define gdc_dc_ip		(gvar->dc_ip)/* Info stored in mtddisk(at the bottom) */typedef struct dc_mtd_format{	/* Added new member here */        info_for_dc_t  	init_info  __attribute__ ((aligned(8)));	dc_version_t 	dc_version  __attribute__ ((aligned(8)));        dc_ip_t  	dc_ip  __attribute__ ((aligned(8)));}dc_mtd_format_t  __attribute__ ((aligned(8)));#define MTD_BEGIN_OFFSET        ((gdc_mtd_size-sizeof(dc_mtd_format_t))&~0x7L)#define MTD_CHILD_OFFSET(xxx)   ((int)&(((dc_mtd_format_t *)MTD_BEGIN_OFFSET)->xxx))#define mtd_read_dc_info()  	\    mtd_read((char *)&gdc_init_info,sizeof(info_for_dc_t),MTD_CHILD_OFFSET(init_info))#define mtd_write_dc_info()     \    mtd_write((char *)&gdc_init_info,sizeof(info_for_dc_t),MTD_CHILD_OFFSET(init_info))#define mtd_read_dc_version()   \    mtd_read((char *)&gdc_dc_version,sizeof(dc_version_t),MTD_CHILD_OFFSET(dc_version))#define mtd_write_dc_version()  \    mtd_write((char *)&gdc_dc_version,sizeof(dc_version_t),MTD_CHILD_OFFSET(dc_version))#define mtd_read_dc_ip()      	\    mtd_read((char *)&gdc_dc_ip,sizeof(dc_ip_t),MTD_CHILD_OFFSET(dc_ip))#define mtd_write_dc_ip()      	\    mtd_write((char *)&gdc_dc_ip,sizeof(dc_ip_t),MTD_CHILD_OFFSET(dc_ip))/* message define between DC */struct dc_event_msg_str{	int	type;	union{		int	key;		int	card;		int	video;		int	dog;		int	udpip;		/* 0->close, else open ip */	}u;};#define event_key 	u.key#define event_card	u.card#define event_video 	u.video#define event_dog	u.dog#define event_udpip	u.udpip#define DC_EVENT_TYPE_KEY	1	//key to audio#define DC_EVENT_TYPE_CARD	2	//key to audio#define DC_EVENT_TYPE_VIDEO	3	//audio to video(by mutl)#define DC_EVENT_TYPE_DOG	4	//watchdog#define DC_EVENT_TYPE_UDPVIDEO	5	//send video by udp#define DC_EVENT_DOG_MAGIC	0x20040325#define DC_EVENT_DOG_REBOOT	0xdead#define DC_EVENT_CARD_PLAY	1/* * Event keyboard *	see key define above. *//* Event audio */#define DC_EVENT_VIDEO_ON	1#define DC_EVENT_VIDEO_OFF	2#define DC_EVENT_VIDEO_GRAB1	3	//prepare to grab#define DC_EVENT_VIDEO_GRAB2	4	//grab#define DC_EVENT_VIDEO_GRAB3	5	//cancelstruct dc_grabimage_head{	int	width;	int	height;	int	size;};/* ======== global variable interface ======== */extern void dc_global_init(void);extern void dc_global_init2(void);extern int  dc_get_hcip(char *hcname, in_addr_t *ip);extern int  dc_get_hcnum(in_addr_t ip, char *hcname);extern int  dc_is_hcip(in_addr_t ip);extern int  dc_get_building_num(void);extern int  dc_find_card_info(int cardid, int *pcardtype, int *pcardcred);extern int  dc_modify_card_info(int cardid, int cardtype, int cardcred);extern void verify_read_card(void);extern void open_door(void);extern int  dc_grab_image1(int sock, struct sockaddr *dst, int addrlen);extern int  dc_grab_image3(int sock, struct sockaddr *dst, int addrlen);extern int  dc_grab_image2(char *buf, int len, struct sockaddr *dst, 			   int addrlen, int flag);			#endif /* _WXXT_DC_COMMON_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -