Subversion Repositories NaviCtrl

Rev

Rev 797 | Rev 845 | Go to most recent revision | 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
826 holgerb 6
#define GIMBAL_SLAVE_ADDRESS    0x22
728 holgerb 7
 
8
// FromCamCtrl.CamStatus
9
#define CAM_STATE_RDY                   0x80   // The camera seems to be ready
10
#define CAM_STATE_REC_ACTIVE    0x40   // Recording Video 
11
#define CAM_STATE_PHOTO_MODE    0x20   // Camera is in Photo Mode
12
#define CAM_STATE_OFF                   0x10   // Camera off but connected
13
#define CAM_STATE_CAM_DISCONN   0x08   // Camera is not connected 
14
#define CAM_STATE_I2C_OK                0x04   // Cam_Ctrl is connected by I2C (set by NC)
15
#define CAM_STATE_ZOOM                  0x02   // Zoom active
16
#define CAM_STATE_PIC_CAPTURED  0x01   // Bit for captured one Photo recently
17
 
18
 
790 holgerb 19
//FromLaserCtrl.LaserStatus
20
#define LASER_DATA_OK                   0x01
21
#define LASER_I2C_OK                    0x80
22
 
826 holgerb 23
//FromGimbalCtrl.GimbalStatus
24
#define GIMBAL_DATA_OK                  0x01
25
#define GIMBAL_I2C_OK                   0x80
26
 
27
 
728 holgerb 28
// ToCamCtrl.CamCommand
29
#define CAM_CMD_SWITCH_ON       0x80
30
#define CAM_CMD_SWITCH_OFF      0x40
31
#define CAM_CMD_REC_ON          0x20
32
#define CAM_CMD_REC_OFF         0x10
33
#define CAM_CMD_SHUTTER         0x08
732 holgerb 34
 
728 holgerb 35
#define CAM_CMD_RESET_CAM       0x02
36
 
37
//FromCamCtrl.Type
38
#define TYPE_LANC                               1
39
#define TYPE_IR                                 2
40
#define TYPE_MULTI                              3
41
 
826 holgerb 42
//ToGimbalCtrl.BitCmd
43
#define BITCMD_BEEP                     0x01
728 holgerb 44
 
45
typedef struct
46
{
47
  u8 CamStatus;
48
  u16 PhotoCount;
49
  u8 free1;
50
  u8 PPM1Okay;
51
  u8 PPM1Data;
52
  u8 PPM2Okay;
53
  u8 PPM2Data;
54
  u8 Type;             
55
  u8 Version;   // 4 = V1.04   104 = V2.04
56
  u8 Compatible;
57
} __attribute__((packed)) FromCamCtrl_t;
58
extern FromCamCtrl_t FromCamCtrl;
59
 
60
typedef struct
61
{
62
  u8 CamCommand;
63
  u8 ZoomInput;
64
  u8 dummy;
65
} __attribute__((packed)) ToCamCtrl_t;
66
extern ToCamCtrl_t ToCamCtrl;
790 holgerb 67
 
826 holgerb 68
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
69
//+ Laser
70
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
790 holgerb 71
typedef struct
72
{
73
  u8 LaserStatus;
74
  u16 Distance;
75
  u8 free1;
76
  u8 PPM1Okay;
77
  u8 PPM1Data;
78
  u8 PPM2Okay;
79
  u8 PPM2Data;
80
  u8 Type;             
81
  u8 Version;   // 4 = V1.04   104 = V2.04
82
  u8 Compatible;
83
} __attribute__((packed)) FromLaserCtrl_t;
84
extern FromLaserCtrl_t FromLaserCtrl;
85
 
86
typedef struct
87
{
88
  u8 CamCommand;
89
  u8 ZoomInput;
90
  u8 dummy;
91
} __attribute__((packed)) ToLaserCtrl_t;
92
extern ToLaserCtrl_t ToLaserCtrl;
93
 
826 holgerb 94
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
95
//+ Gimbal
96
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
97
typedef struct
98
{
99
  u8 GimbalStatus;
100
  s16 Nick;
101
  s16 Roll;
102
  s16 Yaw;
103
  u8 Free1;
104
  u8 Free2;            
105
  u8 Version;   // 4 = V1.04   104 = V2.04
106
  u8 Compatible;
107
} __attribute__((packed)) FromGimbalCtrl_t;
108
extern FromGimbalCtrl_t FromGimbalCtrl;
109
 
110
typedef struct
111
{
112
  s16 Nick;
113
  s16 Roll;
114
  s16 Yaw;
115
  unsigned char NRY_Speed;
116
  unsigned char Filter;
117
  unsigned char BitCmd;
118
  unsigned char free1;
119
} __attribute__((packed)) ToGimbalCtrl_t;
120
extern ToGimbalCtrl_t ToGimbalCtrl;
121
 
122
 
728 holgerb 123
void CamCtrl_GetData(u8);
124
void InitCamCtrl(void);
125
extern u16 CamCtrlTimeout;
790 holgerb 126
extern u16 LaserCtrlTimeout;
826 holgerb 127
extern u16 GimbalCtrlTimeout;
790 holgerb 128
extern void CamCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);
129
extern void LaserCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);                                                              
797 holgerb 130
extern void LaserCtrl_GetData(u8 timeout);
826 holgerb 131
extern void GimbalCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);                                                             
132
extern void GimbalCtrl_GetData(u8 timeout);
728 holgerb 133
#endif // __CAMCTRL_H
134