Subversion Repositories NaviCtrl

Rev

Rev 733 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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