common.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef COMMON_H
  2. #define COMMON_H
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <stdint.h> /* FIX: was missing -> uint8_t/uint32_t undefined on some TU */
  7. #include <inttypes.h> /* PRIu64 etc for LP64-safe printf of 64-bit fields */
  8. #include <unistd.h>
  9. #include <pthread.h>
  10. #include <signal.h>
  11. #include <errno.h>
  12. #include <time.h>
  13. #include <stdarg.h>
  14. #include <sys/types.h>
  15. #include <sys/stat.h>
  16. #include <sys/socket.h>
  17. #include <netinet/in.h>
  18. #include <arpa/inet.h>
  19. #define PROJECT_NAME "Hikvision ISUP Client"
  20. #define PROJECT_VERSION "1.2.0"
  21. #define PROJECT_BUILD_DATE __DATE__ " " __TIME__
  22. typedef enum { LOG_DEBUG=0, LOG_INFO, LOG_WARN, LOG_ERROR, LOG_FATAL } LogLevel;
  23. #define LOG_TAG "ISUP"
  24. #define LOG_PRINT(level, fmt, ...) do { \
  25. char _ts[32]; _ts[0]=0; \
  26. struct timespec _t; clock_gettime(CLOCK_REALTIME,&_t); \
  27. struct tm _tm; localtime_r(&_t.tv_sec,&_tm); \
  28. strftime(_ts,sizeof(_ts),"%Y-%m-%d %H:%M:%S",&_tm); \
  29. fprintf(stderr,"[%s] %s [%s:%d] " fmt "\n", LOG_TAG, _ts, __FILE__, __LINE__, ##__VA_ARGS__); \
  30. } while(0)
  31. #define LOG_DEBUG(fmt, ...) LOG_PRINT(LOG_DEBUG, fmt, ##__VA_ARGS__)
  32. #define LOG_INFO(fmt, ...) LOG_PRINT(LOG_INFO, fmt, ##__VA_ARGS__)
  33. #define LOG_WARN(fmt, ...) LOG_PRINT(LOG_WARN, fmt, ##__VA_ARGS__)
  34. #define LOG_ERROR(fmt, ...) LOG_PRINT(LOG_ERROR, fmt, ##__VA_ARGS__)
  35. #define LOG_FATAL(fmt, ...) LOG_PRINT(LOG_FATAL, fmt, ##__VA_ARGS__)
  36. #define MAX_BUF_SIZE 65536
  37. #define MAX_IP_SIZE 64
  38. #define MAX_PATH_SIZE 256
  39. #define MAX_DEVICE_ID 64
  40. #define MAX_CHANNEL_NUM 32
  41. #define MAX_STREAM_NUM 32
  42. #define MAX_PLAYBACK_NUM 16
  43. #define MAX_ALARM_NUM 128
  44. #define DEFAULT_CMS_PORT 7031
  45. #define DEFAULT_SMS_PORT 7660
  46. #define DEFAULT_ALARM_PORT 9000
  47. #define DEFAULT_RTMP_PORT 1935
  48. #define ISUP_PROTO_VERSION "ISUP5.0"
  49. #define REG_RETRY_INTERVAL 5
  50. #define HEARTBEAT_INTERVAL 30
  51. #define SIM_IMAGE_DIR "./sim_images"
  52. #define SIM_IMAGE_WIDTH 1920
  53. #define SIM_IMAGE_HEIGHT 1080
  54. #define SIM_FPS 25
  55. #define SIM_BITRATE 4096000
  56. #define SUCCESS 0
  57. #define FAILURE -1
  58. #define NOT_FOUND -2
  59. #define INVALID_PARAM -3
  60. typedef enum { DEV_OFFLINE=0, DEV_ONLINE, DEV_REGISTERING, DEV_STREAMING, DEV_PLAYBACK } DeviceStatus;
  61. size_t safe_strcpy(char*dest,const char*src,size_t size);
  62. char* str_trim(char*s);
  63. #endif