📄 share.h
字号:
/* ************************************************************* * * common defines and structures for server. * * *************************************************************/#ifndef _WXXT_SHARE_H_#define _WXXT_SHARE_H_#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <signal.h>#include <wait.h>#include <string.h>#include <errno.h>#include <time.h>#include <sys/wait.h>#include <sys/socket.h>#include <sys/un.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/select.h>#include <sys/ipc.h>#include <sys/shm.h>#include <sys/resource.h>#include <syslog.h>#include <sys/time.h>#include <sys/reboot.h>#include <setjmp.h>#include <termios.h>#include <linux/fb.h>#include <sys/mman.h>#include <sys/ioctl.h>#include <linux/if.h>#include <linux/sockios.h>#include <linux/soundcard.h>#include <asm/types.h>#include <linux/mtd/mtd.h>#if 0#ifndef _HC_HOST_CLIENT_ /*是否为主从模式*/#define _HC_HOST_CLIENT_#endif#endif/* For mtd disk */#define DEFAULT_MTDBLOCK_SIZE (16*1024*1024)#define MIN_MTDBLOCK_SIZE (8*1024*1024)#define DISK_INFO_SIZE (16*1024)#define DEV_NAME_KEYBOARD "/dev/touchscreen/0raw"#define DEV_NAME_MTDBLOCK "/dev/mtdblock/0"#define DEV_NAME_MTDISK "/dev/mtd/0"#define DEV_NAME_AUDIO "/dev/dsp"#define DEV_NAME_WTDOG "/dev/watchdog/0raw"#define DEV_NAME_LCD "/dev/fb/0"#define DEV_NAME_WIRENESS "/dev/wireness/0raw"#define DEV_NAME_WIRELESS "/dev/wireless/0raw"#define DEV_NAME_PHONE "/dev/phone/0raw"#define DEV_NAME_LED "/dev/led/0raw"#define DEV_NAME_CAM "/dev/video0"#define DEV_NAME_CARD "/dev/ttyS1"#define DEV_NAME_SWITCH "/dev/powerswitch/0raw"#if 1#define MUC_FILE_PRIX "/zx/res/"#else#define MUC_FILE_PRIX "/tmp/res/"#endif#define MUC_FILE_ALARM MUC_FILE_PRIX"alarm.muc"#define MUC_FILE_ALARM_NOTICE MUC_FILE_PRIX"home.wav" #define MUC_FILE_ALARM_NOTICE2 MUC_FILE_PRIX"music.wav"#define MUC_FILE_AUDIO_OFFHOOK MUC_FILE_PRIX"dial.wav"//#define MUC_FILE_AUDIO_WAITEE MUC_FILE_PRIX"music.wav"#define MUC_FILE_AUDIO_WAITER MUC_FILE_PRIX"waiter.wav"#define MUC_FILE_AUDIO_WAITER2 MUC_FILE_PRIX"music.wav"#define MUC_FILE_AUDIO_RECORDER MUC_FILE_PRIX"record.wav"#define MUC_FILE_AUDIO_RECORD2 MUC_FILE_PRIX"music.wav"#define MUC_FILE_AUDIO_SUSPEND MUC_FILE_PRIX"suspend.wav"#define MUC_FILE_AUDIO_SUSPEND2 MUC_FILE_PRIX"music.wav"#define MUC_FILE_AUDIO_BUSY MUC_FILE_PRIX"busy.wav" #define MUC_FILE_AUDIO_FINISH MUC_FILE_PRIX"finish.wav"#define MUC_FILE_AUDIO_NULLNUM MUC_FILE_PRIX"nullnum.wav"#define MUC_FILE_AUDIO_NETBUSY MUC_FILE_PRIX"netbusy.wav"#define MUC_FILE_AUDIO_USERBUSY MUC_FILE_PRIX"userbusy.wav"#define MUC_FILE_CARD_READ MUC_FILE_PRIX"card.wav"#define MUC_FILE_HELP MUC_FILE_CARD_READ#define MUC_FILE_MSG MUC_FILE_PRIX"msg.wav"#define SOUND_REC_FILE "/tmp/sound.rec"#define USER_DEFINE_FILE "/tmp/UserDefine.muc"#define BUSY_STATE_FINISH 1#define BUSY_STATE_NULLNUM 2#define BUSY_STATE_NETBUSY 3#define BUSY_STATE_USERBUSY 4#define BUSY_STATE_OTHERS 5#define AUDIO_BUFFER_LEN 256 //512 //record(n*128)#define AUDIO_RECORD_LEN 240000 //8K*30s // > MAX_VIDEO_SIZE#define AUDIO_LIVE_COUNT (8000/AUDIO_BUFFER_LEN) //1s#define AUDIO_LIVE_TIMEO (5*8000/AUDIO_BUFFER_LEN) //5S/* image size */#define DEFAULT_WIDTH 320#define DEFAULT_HEIGHT 240#define MAX_VIDEO_SIZE (DEFAULT_WIDTH*DEFAULT_HEIGHT*3)/* valid sound threhold */#define MIN_VOLUME 256#define MIN_SNDCNT 20#define TIMEOUT_AUDIO_DIAL 30 //sec#define TIMEOUT_AUDIO_WAIT 30 //sec#define TIMEOUT_AUDIO_RECORD1 30 //sec, for record wait#define TIMEOUT_AUDIO_RECORD2 30 //sec, for record long#define TIMEOUT_AUDIO_BUSY 10 //sec#define TIMEOUT_LOOKDOOR 60 //sec#define TIMEOUT_INFINITE 0x7fffffff //infinite/* Must be shorter then normal callnum */#define CENTER_CALLNUM "999"/* servers ip */#if 0#define WXXT_MAIN_SERV_IP1 "192.168.0.101"#define WXXT_MAIN_SERV_IP2 "192.168.0.101"#else#define WXXT_MAIN_SERV_IP1 "172.29.192.1"#define WXXT_MAIN_SERV_IP2 "172.29.192.2"#endif#define MULTICAST_BASE_IP "224.10.0.0"#define MULTICAST_DWELL_IP "224.20.0.1"/* ports */#define MAIN_SERV_INFO_PORT 9600#define PROBE_PORT 9611#define ALERT_PORT (PROBE_PORT+1)#define MULTICAST_PORT (PROBE_PORT+2)#define SPEAKIN_PORT (PROBE_PORT+3)#define GENERAL_PORT (PROBE_PORT+4)#define LOOKDOOR_PORT (PROBE_PORT+5)#define HC_DEFENCE_PORT (PROBE_PORT+6) /*hc_defence listen*/#define MSG_RECV_PORT (PROBE_PORT+7)#define SYSTEM_UPDATE_PORT (PROBE_PORT+8)#define WEATHER_RECV_PORT (PROBE_PORT+9)#define VIDEO_UDP_PORT (PROBE_PORT+10)#define AUDIO_PORT (PROBE_PORT+11)#define BROAD_CAST 8765#define BROAD_CAST_TIME (BROAD_CAST+1)#define HOST_PORT 9800#define HOST_MENU_PORT (HOST_PORT+1)#define HOST_DEFENCE_PORT (HOST_PORT+2)#define HOST_ALARM_PORT (HOST_PORT+3)#define HOST_GENERAL_PORT (HOST_PORT+4)#define NETWORK_TIMEOUT 2 //second(should<10, for watchdog)/* log flag */#define PRINT_ERROR 1#define PRINT_DEBUG 2/* commands come from where */#define IS_HC 1#define IS_DC 2#define IS_SERV 4/* Keyboard driver */typedef struct{ unsigned short pressure; unsigned short x; unsigned short y; unsigned short pad;}TS_RET;/* temp multicast msg head */#define MULTICAST_MAGIC 20030906struct multicast_head { int magic; struct timeval timestamp; int sequence; int size; //char orsum; //char xorsum;};/* sound message head(master-slave) */#define SOUND_MAGIC 20031127#define SOUND_COM_AUDIO 0 /* Audio data */ #define SOUND_COM_REQ 1 /* Request from Caller to callee */#define SOUND_COM_START 2 /* Callee respond */#define SOUND_COM_SUSPEND 3 /* Suspend command */#define SOUND_COM_RESUME 4 /* Resume command */#define SOUND_COM_RECORD 5 /* Record command */#define SOUND_COM_OPENDOOR 6 /* open door */#define SOUND_COM_STOPDOWN 7 /* take stop bar down*///#define SOUND_COM_FIN 7struct sound_head { int magic; int command; int sequence; //when REQ=hcnum, when START=new magic int size; struct timeval timestamp;};/* HC/DC recognized commands */#define XTMG_DC_OPEN_DOOR 1000#define XTMG_DC_GET_INFO 1001#define XTMG_HC_GET_INFO 1010#define SET_SAFETY_PASS_NULL XTMG_SETHCSAFETYPASSNULL //85 add by jxb on 0214#define SYSTEM_UPDATE_IMG "/tmp/system.img"#define SYSTEM_UPDATE_OFFSET 0x100000struct hc_table { int doornum; in_addr_t ip;};/* dc/hc get usce */#define dc2hc_get_usec(tv1, tv2) \ ((tv1.tv_sec-tv2.tv_sec)*1000000+tv1.tv_usec-tv2.tv_usec)/* Debug info output */#ifdef DEBUG #define ERR_DUMP() \ err_dump(PRINT_ERROR, "###%s,%d,%s: %s\n", __FILE__, __LINE__, __FUNCTION__, strerror(errno))#define DEBUG_DUMP(x) \ err_dump(PRINT_ERROR, "***%s,%d,%s: %s\n", __FILE__, __LINE__, __FUNCTION__, x)#define ENTRY() \ err_dump(PRINT_ERROR, ">>>%s,%d,%s\n", __FILE__, __LINE__, __FUNCTION__)#define ASSERT(x) \ do{ \ if( !(x) ){ \ err_dump(PRINT_ERROR, "\n\n\tAssert fail: %s,%d,%s \n\n\n",__FILE__,__LINE__,__FUNCTION__); \ exit(-1); \ } \ }while(0)#define panic(x) \ do{ \ err_dump(PRINT_ERROR, "\n\n\tPanic %s,%d,%s: %s\n\n\n",__FILE__,__LINE__,__FUNCTION__,(x)); \ exit(-1); \ }while(0)#else#define ERR_DUMP() do{}while(0)#define DEBUG_DUMP(x) do{}while(0)#define ENTRY() do{}while(0)#define ASSERT(x) do{}while(0)#define panic(x) do{}while(0)#endif /*DEBUG*/ extern int zx_debug;extern int *pserver1_active;extern int *pserver2_active;extern void err_dump_init(char *logfile_prefix);extern void err_dump_close(void);extern void err_dump(int flag, char *str, ...);extern void zx_exit(char *reason);extern void zx_daemon(void);extern void set_sighandler(void);extern void sighandler(int sig);extern int open_voice(int flags);extern int close_voice(int fd);extern int get_voice(int fd, char *buf, int len);extern int get_voice_call(int fd, char *buf, int len);extern void play_voice(int fd, char *buf, int buflen);extern void play_voice_call(int fd, char *buf, int buflen);extern int play_voice_fd(int fd, int mucfd);extern int noise_check(char *buf, int len);extern void ipaudio_init(int magic);extern int ipaudio_get2play(int playfd, int sock);extern int ipaudio_rec2send(int recfd, int sock, struct sockaddr *addr, int alen);extern int dsp_change_mode(int fd, int flag);#define DSP_DC_ECHO 1#define DSP_DC_NORMAL 2#define DSP_HC_CALL 3#define DSP_HC_NORMAL 4extern int getkey_dc(int key, int max_key);extern int getkey_hc(int key, int max_key);extern void show_ledopen(int len);extern void show_ledcall(int len);extern void clear_led(void);extern void show_led(char *num);extern void clear_led6(void);extern void show_led6(char *num);extern int check_mtdblock_size(void);extern int mtd_read(char *buf, int len, int off);extern int mtd_write(char *buf, int len, int off);extern int mtd_write_image(char *fname, int off);extern void dchc_ipname_filter(char *ip);extern int dchc_set_mac(in_addr_t ip);extern int dchc_set_ip(in_addr_t ip);extern int dchc_get_ver(void);extern in_addr_t make_multicast_group_ip(int building_num);extern void power_lcdctr_on(void);extern void power_lcdctr_off(void);extern void power_lcdlight_on(void);extern void power_lcdlight_off(void);extern void power_electric_ctl(int line, int on);extern void power_microphone_ctl(int on);extern void power_speaker_ctl(int on);extern void power_rs485_ctl(int on);extern void power_sysled1_ctl(int on);extern void power_sysled2_ctl(int on);extern void power_opendoor_ctl(int on);extern void power_camlight_ctl(int on);#define power_keylight_off() power_speaker_ctl(0)#define power_keylight_on() power_speaker_ctl(1)extern int is_serv(in_addr_t ip);extern int is_serv1(in_addr_t ip);extern int is_serv2(in_addr_t ip);extern int connect_serv(int);extern int connect_byip(in_addr_t ip, int port);extern int connect_centerhc(int port, in_addr_t *ip);extern void server_timeout(int sockfd);extern int readn2(int fd, char *buf, int len);extern int writen2(int fd, char *buf, int len);extern int readbuffer(int fd,char *inbuf);extern int writebuffer(int fd,char *inbuf,int mes_len);extern int dchc_record_dev_reboot(int version);extern void dchc_reconfigure_ret(int sock, struct Head *req, int err);extern int get_hc_ip(char *hc, int *ip);extern int get_pos_ip(char *posno,in_addr_t *ip);extern int get_system_update_img(int sock);extern int reply_system_update(int ret);extern int send_alert_to_server(int alert_type,time_t when,int flag);extern int send_safety_to_server(int stat,int flag,time_t when);extern void send_card_scan_info_to_server(int cardid, int canin, time_t when, char *photo, int photo_size);extern int hc_get_sms( int sock, struct sms_num *sms );extern int hc_query_sms(int flag , struct sms_num **psms, int *pnum);extern int hc_read_sms(char *pname, char **pbuf, int *plen);extern int hc_set_sms_read(u32 sendtime, u32 readtime);extern int hc_del_sms( u32 sendtime );extern int hc_del_sms_all(int flag);extern int hc_query_visit(int flag , struct guest_num **pguest, int *pnum);extern int hc_read_visit(char *pname, char **pbuf, int *plen);extern int dc_write_visit(int guesttime, char *homeid, int letin, char *photo, int p_len, char *voice, int v_len);extern int hc_set_visit_read(u32 guesttime, u32 readtime);extern int hc_del_visit( u32 guesttime );extern int hc_del_visit_all(int flag);extern int hc_query_call(int flag , struct call_num **pcall, int *pnum);extern int hc_read_call(char *pname, char **pbuf, int *plen);extern int hc_write_call(int calltime, char *homeid, char *buf, int len);extern int hc_set_call_read(u32 calltime, u32 readtime);extern int hc_del_call( u32 calltime );extern int hc_del_call_all(int flag);extern int get_ware_class_info(struct ware_class_info **pwareclass, int *num);extern int get_ware_info(int type, struct ware_info **pwareinfo, int *num);extern int query_booking_stat(int flag, struct ware_booking **pbooking,int *num);extern int query_car_stat(struct park **pcar,int *carnum);extern int query_bills(int flag,struct home_cost_bill **pbill,float *home_money,int *billnum);extern int home_cancel_ware(int flag,int *pbillid,time_t buytime,int warenum, int num,char *homepwd, char *homeid);extern int home_booking_ware(int falg,int warenum, int num, int *pbillid, char *homepwd,char *homeid);extern int net_check_shopping_pwd(char *pwd);extern int net_change_shopping_pwd(char *oldpwd,char *newpwd);extern int get_defence_option(struct defence_option **pdefop);extern int get_jydq_control_option(struct jydq_control_option **pjdkzop);extern int set_defence_option(struct defence_option *pdefop);extern int set_jydq_control_option(struct jydq_control_option *pjdkzop);extern int get_jydq_typename(struct jydq_typename **pname,int *pnum);extern int net_get_phone_num(struct phone_state *phone[],int *pnum);extern int net_add_phone_num(char *phone);extern int net_delete_phone_num(char *phone);extern int net_set_phone_state(struct phone_state phone);extern void md5_encrypt(unsigned char *input,int input_len,char output[32]);extern int get_jydq_typename(struct jydq_typename **pname,int *pnum);extern int wdc_find_cardid(int cardid);extern int wdc_get_info(struct info_for_dc *dcinfo);extern int cc_get_info(struct info_for_cc *info);extern int get_center_ip(struct centerip_info *centerinfo);extern int get_wdc_ip(char *psno,int *pos_ip);extern int defence_mask_init(void);extern int hc_get_notice_fromserv(char *buf,int *buflen);extern int hc_get_weather_info(int *type,int *temperature);#endif /* _WXXT_SHARE_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -