Camera.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #ifndef __CAMERA_H__
  2. #define __CAMERA_H__
  3. /*****************使用摄像头发送宏开关*************************/
  4. #ifndef USING_CAMERA_FOR_MMS
  5. #define USING_CAMERA_FOR_MMS 1
  6. #endif
  7. /******************使用SD卡存储图片宏开关*************************/
  8. #ifndef USING_SAVE_SD
  9. #define USING_SAVE_SD 0
  10. #endif
  11. /*****************************************************************************/
  12. /*****************************************************************************/
  13. /*****************************************************************************/
  14. /*****************************************************************************/
  15. #if USING_CAMERA_FOR_MMS //条件宏,判断是否需要使用摄像头拍照发彩信
  16. #include <string.h>
  17. #include <stdio.h>
  18. typedef unsigned char u8;
  19. typedef unsigned short int u16;
  20. typedef unsigned int u32;
  21. //硬件引脚定义
  22. #define camer_pwerH() GPIO_SetBits(GPIOA,GPIO_Pin_1)
  23. #define camer_pwerL() GPIO_ResetBits(GPIOA,GPIO_Pin_1)
  24. //用户自定义宏变量
  25. //#define N_BYTE 512 //每次读取N_BYTE字节,N_BYTE必须是8的倍数
  26. #define N_BYTE 1024 //每次读取N_BYTE字节,N_BYTE必须是8的倍数
  27. //#define N_BYTE 224 //每次读取N_BYTE字节,N_BYTE必须是8的倍数/
  28. #define IMAGE_SIZE_160X120 0x22
  29. #define IMAGE_SIZE_320X240 0x11
  30. #define IMAGE_SIZE_640X480 0x00
  31. #define COMPRESS_RATE_36 0x36 //该压缩率是默认压缩率,160x120和320x240可用此压缩率
  32. #define COMPRESS_RATE_60 0x60 //640X480尺寸,默认压缩率36会占用45K左右的空间
  33. //选择60压缩率可将45K压缩到20K左右
  34. typedef enum
  35. {
  36. SERIAL_NUM_0 = 0x00,
  37. SERIAL_NUM_1,
  38. SERIAL_NUM_2,
  39. SERIAL_NUM_3,
  40. SERIAL_NUM_5,
  41. SERIAL_NUM_6,
  42. SERIAL_NUM_7,
  43. SERIAL_NUM_8,
  44. SERIAL_NUM_9,
  45. SERIAL_NUM_10
  46. }nSerialNum;
  47. extern const nSerialNum SerialNum_Byte;
  48. extern u8 g_SerialNumber;
  49. extern volatile u8 cameraReady;
  50. extern u32 picLen;//图片长度
  51. //串口驱动接口函数,移植时需要修改接口函数
  52. void cam_write(const u8 *buf,u8 len);
  53. u16 cam_receiver( u8 *buf,u16 send_len);
  54. // 应用实例函数
  55. u8 CameraDemoApp(u8 Serialnumber,u8 nCameraImageSize);
  56. u8 camera_init(u8 Serialnumber,u8 nSetImageSize);
  57. u8 send_cmd(const u8 *cmd,u8 n0,const u8 *rev,u8 n1);
  58. void SetSerailNumber(u8 *DstCmd, const u8 *SrcCmd, u8 SrcCmdLength,
  59. u8 *DstRcv, const u8 *SrcRcv, u8 SrcRcvLength,u8 nID);
  60. //摄像头属性设置:复位/图片尺寸大小/图片压缩率
  61. u8 send_reset(u8 Serialnumber);
  62. u8 current_photo_size(u8 Serialnumber,u8 * nImageSize);
  63. u8 send_photo_size(u8 Serialnumber,u8 nImageSize);
  64. u8 send_compress_rate(u8 Serialnumber,u8 nCompressRate);
  65. //移动侦测控制函数
  66. u8 send_motion_sensitivity(u8 Serialnumber);
  67. u8 send_open_motion(u8 Serialnumber);
  68. u8 send_close_motion(u8 Serialnumber);
  69. u8 Motion_Detecte_Idle(u8 *pSerialnumber);
  70. //拍照处理函数
  71. u8 send_photoBuf_cls(u8 Serialnumber);
  72. u8 send_start_photo(u8 Serialnumber);
  73. u32 send_read_len(u8 Serialnumber);
  74. u8 send_get_photo(u16 add,u16 read_len,u8 *buf,u8 Serialnumber);
  75. #endif
  76. #endif