📄 dc.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 + -