Subversion Repositories NaviCtrl

Rev

Rev 797 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
728 holgerb 1
#ifndef __CAMCTRL_H
2
#define __CAMCTRL_H
3
 
4
#define CAM_SLAVE_ADDRESS       0x26
790 holgerb 5
#define LASER_SLAVE_ADDRESS     0x24
728 holgerb 6
 
7
// FromCamCtrl.CamStatus
8
#define CAM_STATE_RDY                   0x80   // The camera seems to be ready
9
#define CAM_STATE_REC_ACTIVE    0x40   // Recording Video 
10
#define CAM_STATE_PHOTO_MODE    0x20   // Camera is in Photo Mode
11
#define CAM_STATE_OFF                   0x10   // Camera off but connected
12
#define CAM_STATE_CAM_DISCONN   0x08   // Camera is not connected 
13
#define CAM_STATE_I2C_OK                0x04   // Cam_Ctrl is connected by I2C (set by NC)
14
#define CAM_STATE_ZOOM                  0x02   // Zoom active
15
#define CAM_STATE_PIC_CAPTURED  0x01   // Bit for captured one Photo recently
16
 
17
 
790 holgerb 18
//FromLaserCtrl.LaserStatus
19
#define LASER_DATA_OK                   0x01
20
#define LASER_I2C_OK                    0x80
21
 
728 holgerb 22
// ToCamCtrl.CamCommand
23
#define CAM_CMD_SWITCH_ON       0x80
24
#define CAM_CMD_SWITCH_OFF      0x40
25
#define CAM_CMD_REC_ON          0x20
26
#define CAM_CMD_REC_OFF         0x10
27
#define CAM_CMD_SHUTTER         0x08
732 holgerb 28
 
728 holgerb 29
#define CAM_CMD_RESET_CAM       0x02
30
 
31
//FromCamCtrl.Type
32
#define TYPE_LANC                               1
33
#define TYPE_IR                                 2
34
#define TYPE_MULTI                              3
35
 
36
 
37
typedef struct
38
{
39
  u8 CamStatus;
40
  u16 PhotoCount;
41
  u8 free1;
42
  u8 PPM1Okay;
43
  u8 PPM1Data;
44
  u8 PPM2Okay;
45
  u8 PPM2Data;
46
  u8 Type;             
47
  u8 Version;   // 4 = V1.04   104 = V2.04
48
  u8 Compatible;
49
} __attribute__((packed)) FromCamCtrl_t;
50
extern FromCamCtrl_t FromCamCtrl;
51
 
52
typedef struct
53
{
54
  u8 CamCommand;
55
  u8 ZoomInput;
56
  u8 dummy;
57
  u8 dummy2;
58
} __attribute__((packed)) ToCamCtrl_t;
59
extern ToCamCtrl_t ToCamCtrl;
790 holgerb 60
 
61
typedef struct
62
{
63
  u8 LaserStatus;
64
  u16 Distance;
65
  u8 free1;
66
  u8 PPM1Okay;
67
  u8 PPM1Data;
68
  u8 PPM2Okay;
69
  u8 PPM2Data;
70
  u8 Type;             
71
  u8 Version;   // 4 = V1.04   104 = V2.04
72
  u8 Compatible;
73
} __attribute__((packed)) FromLaserCtrl_t;
74
extern FromLaserCtrl_t FromLaserCtrl;
75
 
76
typedef struct
77
{
78
  u8 CamCommand;
79
  u8 ZoomInput;
80
  u8 dummy;
81
  u8 dummy2;
82
} __attribute__((packed)) ToLaserCtrl_t;
83
extern ToLaserCtrl_t ToLaserCtrl;
84
 
728 holgerb 85
void CamCtrl_GetData(u8);
86
void InitCamCtrl(void);
87
extern u16 CamCtrlTimeout;
790 holgerb 88
extern u16 LaserCtrlTimeout;
89
extern void CamCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);
90
extern void LaserCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);                                                              
797 holgerb 91
extern void LaserCtrl_GetData(u8 timeout);
728 holgerb 92
#endif // __CAMCTRL_H
93