Subversion Repositories NaviCtrl

Rev

Rev 866 | 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
 
853 holgerb 27
#define GIMBAL_CMD_BEEP                 0x01
28
#define GIMBAL_CMD_YW_REL_FRAME 0x02
29
#define GIMBAL_CMD_SPEED                0x04
30
#define GIMBAL_CMD_YW_ZERO              0x08
866 holgerb 31
#define GIMBAL_CMD_OUT1                 0x10
32
#define GIMBAL_CMD_OUT2                 0x20
33
#define GIMBAL_CMD_OUT_TRIGGER  0x40  // will set the Hardware Triggeroutput on the GimbalCtrl
826 holgerb 34
 
728 holgerb 35
// ToCamCtrl.CamCommand
36
#define CAM_CMD_SWITCH_ON       0x80
37
#define CAM_CMD_SWITCH_OFF      0x40
38
#define CAM_CMD_REC_ON          0x20
39
#define CAM_CMD_REC_OFF         0x10
40
#define CAM_CMD_SHUTTER         0x08
732 holgerb 41
 
728 holgerb 42
#define CAM_CMD_RESET_CAM       0x02
43
 
44
//FromCamCtrl.Type
45
#define TYPE_LANC                               1
46
#define TYPE_IR                                 2
47
#define TYPE_MULTI                              3
48
 
859 holgerb 49
extern s32 FromMenuGimbalYaw,FromMenuServoNickControl, MenuNickGimbalOffset;
50
 
826 holgerb 51
//ToGimbalCtrl.BitCmd
728 holgerb 52
 
53
typedef struct
54
{
55
  u8 CamStatus;
56
  u16 PhotoCount;
57
  u8 free1;
58
  u8 PPM1Okay;
59
  u8 PPM1Data;
60
  u8 PPM2Okay;
61
  u8 PPM2Data;
62
  u8 Type;             
63
  u8 Version;   // 4 = V1.04   104 = V2.04
64
  u8 Compatible;
65
} __attribute__((packed)) FromCamCtrl_t;
66
extern FromCamCtrl_t FromCamCtrl;
67
 
68
typedef struct
69
{
70
  u8 CamCommand;
71
  u8 ZoomInput;
72
  u8 dummy;
73
} __attribute__((packed)) ToCamCtrl_t;
74
extern ToCamCtrl_t ToCamCtrl;
790 holgerb 75
 
826 holgerb 76
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
77
//+ Laser
78
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
790 holgerb 79
typedef struct
80
{
81
  u8 LaserStatus;
82
  u16 Distance;
83
  u8 free1;
84
  u8 PPM1Okay;
85
  u8 PPM1Data;
86
  u8 PPM2Okay;
87
  u8 PPM2Data;
88
  u8 Type;             
89
  u8 Version;   // 4 = V1.04   104 = V2.04
90
  u8 Compatible;
91
} __attribute__((packed)) FromLaserCtrl_t;
92
extern FromLaserCtrl_t FromLaserCtrl;
93
 
94
typedef struct
95
{
96
  u8 CamCommand;
97
  u8 ZoomInput;
98
  u8 dummy;
99
} __attribute__((packed)) ToLaserCtrl_t;
100
extern ToLaserCtrl_t ToLaserCtrl;
101
 
826 holgerb 102
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
103
//+ Gimbal
104
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
105
typedef struct
106
{
107
  u8 GimbalStatus;
108
  s16 Nick;
109
  s16 Roll;
110
  s16 Yaw;
111
  u8 Free1;
112
  u8 Free2;            
113
  u8 Version;   // 4 = V1.04   104 = V2.04
114
  u8 Compatible;
115
} __attribute__((packed)) FromGimbalCtrl_t;
116
extern FromGimbalCtrl_t FromGimbalCtrl;
117
 
118
typedef struct
119
{
120
  s16 Nick;
121
  s16 Roll;
122
  s16 Yaw;
123
  unsigned char NRY_Speed;
124
  unsigned char Filter;
125
  unsigned char BitCmd;
845 holgerb 126
  unsigned char Crc;
826 holgerb 127
} __attribute__((packed)) ToGimbalCtrl_t;
128
extern ToGimbalCtrl_t ToGimbalCtrl;
129
 
130
 
728 holgerb 131
void CamCtrl_GetData(u8);
132
void InitCamCtrl(void);
133
extern u16 CamCtrlTimeout;
790 holgerb 134
extern u16 LaserCtrlTimeout;
826 holgerb 135
extern u16 GimbalCtrlTimeout;
864 holgerb 136
extern u16 I2C0_Timeout;
845 holgerb 137
extern u8 ResetNickServoValue;
790 holgerb 138
extern void CamCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);
139
extern void LaserCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);                                                              
797 holgerb 140
extern void LaserCtrl_GetData(u8 timeout);
826 holgerb 141
extern void GimbalCtrl_UpdateData(u8* pRxBuffer, u8 RxBufferSize);                                                             
142
extern void GimbalCtrl_GetData(u8 timeout);
853 holgerb 143
extern void CalcNickServoValue(void);
728 holgerb 144
#endif // __CAMCTRL_H
145