TarzaNN
TarzaNN neural network simulator
C:/Users/albertlr/projects/TarzaNN/TarzaNN/opcodes.h
Go to the documentation of this file.
00001 /*************************************************************************
00002 *****           PAN-TILT ENCODED COMMAND CODE                        *****
00003 *****                 C include file                                 *****
00004 *****                                                                *****
00005 *****           (C)1994,2010 FLIR Commercial Systems, Inc.           *****
00006 *****                     All Rights Reserved.                       *****
00007 *****                                                                *****
00008 *****   Licensed users may freely distribute compiled code including *****
00009 *****   this code and data. Source data and code may NOT be          *****
00010 *****   distributed without the prior written consent from FLIR      *****
00011 *****   Commercial Systems, Inc.                                     *****
00012 *****                                                                *****
00013 *****   FLIR Commercial Systems, Inc. reserves the right to make     *****
00014 *****   changes without further notice to any content herein to      *****
00015 *****   improve reliability, function or design. FLIR Commercial     *****
00016 *****   Systems, Inc. shall not assume any liability arising from    *****
00017 *****   the application or use of this code, data or function.       *****
00018 *****                                                                *****
00019 *****   FLIR Commercial Systems, Inc.                                *****
00020 *****   Motion Control Systems                                       *****
00021 *****   890C Cowan Rd, Burlingame, CA 94010                          *****
00022 *****   www.flir.com/mcs                                             *****
00023 *****   mcs-support@flir.com                                         *****
00024 *************************************************************************/
00025 
00026 
00027 /********* REVISION HISTORY *********/
00028 /*
00029           7/25/06: Fixed Async Event Check for negative numbers
00030 2.12.12  16Feb06 : Added ISM support
00031 1.07.07: 11/10/99: Added ASYNCHRONOUS_EVENT test for asynchronous return codes.
00032 1.07.06:  9/16/98: Added signed speed special opcodes. Added them at
00033                    end of opcodes to maintain compatibility with prior
00034                    firmware versions.
00035 1.07.05d: 2/19/95: reorganized the opcodes. Working on networking.
00036 1.07.04d: 1/26/95: added DEFINEs for reset enable disable opcodes.
00037                    But unique opcodes not assigned.
00038 10/06/94:       Added and reorganized opcodes
00039 9/18/94:        Initial version
00040 
00041 */
00042 
00043 #include "cpiver.h"
00044 
00045 
00046 /******************************************************/
00047 /**********  ASYNCHRONOUS EVENT RETURN CODES **********/
00048 /******************************************************/
00049 
00050 #define ASYNCHRONOUS_EVENT(char_val) ( (char_val >= 220) && (char_val < 240) )
00051 #define PAN_LIMIT_HIT                        220        /*   !P   */
00052 #define TILT_LIMIT_HIT                       221        /*   !T   */
00053 #define CABLE_DISCONNECT_DETECTED        222    /*   !D   */
00054 #define PAN_POSITION_TRIGGER_HIT         223    /*   #P   */
00055 #define TILT_POSITION_TRIGGER_HIT        224    /*   #T   */
00056 #define PAN_SPEED_TRIGGER_HIT            225    /*   $P   */
00057 #define TILT_SPEED_TRIGGER_HIT           226    /*   $T   */
00058 
00059 
00060 
00061 /*****************************************/
00062 /**********  RETURN STATE CODES **********/
00063 /*****************************************/
00064 
00065 /* power modes */
00066 #define PTU_HI_POWER    1
00067 #define PTU_REG_POWER   2
00068 #define PTU_LOW_POWER   3
00069 #define PTU_OFF_POWER   4
00070 
00071 /* speed control modes */
00072 #define PTU_INDEPENDENT_SPEED_CONTROL_MODE      1
00073 #define PTU_PURE_VELOCITY_SPEED_CONTROL_MODE    2
00074 
00075 /* return status codes */
00076 #define PTU_OK                                                                   0
00077 #define PTU_ILLEGAL_COMMAND                                      2
00078 #define PTU_ILLEGAL_POSITION_ARGUMENT                    3
00079 #define PTU_ILLEGAL_SPEED_ARGUMENT                       4
00080 #define PTU_ACCEL_TABLE_EXCEEDED                                 5
00081 #define PTU_DEFAULTS_EEPROM_FAULT                                6
00082 #define PTU_SAVED_DEFAULTS_CORRUPTED                     7
00083 #define PTU_LIMIT_HIT                                            8
00084 #define PTU_CABLE_DISCONNECTED                                   9
00085 #define PTU_ILLEGAL_UNIT_ID                                             10
00086 #define PTU_ILLEGAL_POWER_MODE                                  11
00087 #define PTU_RESET_FAILED                                                12
00088 #define PTU_ILLEGAL_PARAMETERS                                  13
00089 #define PTU_DUART_ERROR                                                 14
00090 #define GCU_ERROR                                                               15
00091 #define PTU_ERROR                                                               16
00092 #define NOT_SUPPORTED_BY_THIS_FIRMWARE_VERSION  17
00093 #define PTU_TILT_VANE_OUT_OF_RANGE_ERROR                19
00094 #define CHECKSUM_ERROR                          20
00095 
00096 
00097 /*******************************************/
00098 /********** INTERNAL RETURN CODES **********/
00099 /*******************************************/
00100 
00101 #define INTERACTIVE_MAIN_MENU                   1
00102 #define DISPLAY_PAN_MOTOR_COMMANDS              2
00103 #define DISPLAY_TILT_MOTOR_COMMANDS             3
00104 #define DISPLAY_MENU_OPTIONS                    4
00105 #define ILLEGAL_COMMAND_WITH_DELIMITER          5
00106 #define ASCII_COMMAND_WITH_NO_BINARY_EQUIV      6
00107 #define ILLEGAL_OPCODE                          7
00108 #define ILLEGAL_ARGUMENT                        8
00109 
00110 /**********************************/
00111 /********** PTU OP CODES **********/
00112 /**********************************/
00113 
00114 #define OPCODE_BASE     129
00115 #define MAX_OPCODE      235
00116 #define NUM_OPCODES     (MAX_OPCODE - OPCODE_BASE + 1)
00117 
00118 /*****/                                                           /*****/
00119 /*****  OPCODES with a 2 byte int ARGUMENT (returns a status byte) *****/
00120 /*****/                                                           /*****/
00121 
00122 #define PAN_SET_ABS_POS               129
00123 #define TILT_SET_ABS_POS              130
00124 #define PAN_SET_REL_POS               131
00125 #define TILT_SET_REL_POS              132
00126 
00127 //ISM Mode Commands only
00128 #define PAN_TILT_SET_ABS_POS      240   //Set's the pan and tilt positions to stabilize to
00129 #define PAN_TILT_GET_ABS_POS      241   //Get's the current pan and tilt positions
00130 
00131 #define PAN_SET_REL_SPEED             133
00132 #define TILT_SET_REL_SPEED            134
00133 #define PAN_SET_ABS_SPEED             135 /* unsigned in independent speed control */
00134 #define TILT_SET_ABS_SPEED            136 /* mode; signed in pure velocity SCM */
00135                                           /* change made 9/22/98 */
00136 
00137 #define LAST_SIGNED_2BYTE_INT_OPCODE  136
00138 
00139 /* unsigned 2 byte int argument */
00140 
00141 #define PAN_SET_BASE_SPEED                137
00142 #define TILT_SET_BASE_SPEED               138
00143 
00144 #define PAN_SET_UPPER_SPEED_LIMIT     139
00145 #define TILT_SET_UPPER_SPEED_LIMIT    140
00146 #define PAN_SET_LOWER_SPEED_LIMIT     141
00147 #define TILT_SET_LOWER_SPEED_LIMIT    142
00148 
00149 #define SET_UNIT_ID                           143       
00150 #define SELECT_UNIT_ID                    144
00151 #define LAST_2BYTE_INT_OPCODE         144
00152 
00153 /*****/                        /*****/
00154 /***** OPCODES with 0 ARGUMENTS *****/
00155 /*****/                        /*****/
00156 
00157 /*** returns 2 byte signed int ***/
00158 
00159 #define PAN_CURRENT_POS_QUERY        145
00160 #define TILT_CURRENT_POS_QUERY       146
00161 #define PAN_DESIRED_POS_QUERY        147
00162 #define TILT_DESIRED_POS_QUERY       148
00163 
00164 #define PAN_MIN_POSITION_QUERY       149
00165 #define TILT_MIN_POSITION_QUERY      150
00166 #define PAN_MAX_POSITION_QUERY       151
00167 #define TILT_MAX_POSITION_QUERY      152
00168 
00169 /*** returns 2 byte unsigned int ***/
00170 
00171 #define PAN_CURRENT_SPEED_QUERY      153
00172 #define TILT_CURRENT_SPEED_QUERY     154
00173 #define PAN_DESIRED_SPEED_QUERY      155
00174 #define TILT_DESIRED_SPEED_QUERY     156
00175 
00176 #define PAN_BASE_SPEED_QUERY         157
00177 #define TILT_BASE_SPEED_QUERY        158
00178 
00179 #define PAN_UPPER_SPEED_LIMIT_QUERY  159
00180 #define TILT_UPPER_SPEED_LIMIT_QUERY 160
00181 #define PAN_LOWER_SPEED_LIMIT_QUERY  161
00182 #define TILT_LOWER_SPEED_LIMIT_QUERY 162
00183 
00184 /*** returns 4 byte unsigned int ***/
00185 
00186 #define PAN_ACCEL_QUERY                 163
00187 #define TILT_ACCEL_QUERY                164
00188 
00189 /* value is 60x arc secs */
00190 #define PAN_RESOLUTION_QUERY            165
00191 #define TILT_RESOLUTION_QUERY           166
00192 
00193 /*** returns signed char (a status byte unless otherwise noted) ***/
00194 
00195 #define AWAIT_COMMAND_COMPLETION        167
00196 
00197 #define HALT                            168
00198 #define HALT_PAN                        169
00199 #define HALT_TILT                       170
00200 
00201 /* 1 if position limits enabled, 0 otherwise */
00202 #define POSITION_LIMITS_QUERY           171
00203 #define ENABLE_POSITION_LIMITS          172
00204 #define DISABLE_POSITION_LIMITS         173
00205 
00206 #define SET_IMMEDIATE_COMMAND_MODE      174
00207 
00208 #define SET_SLAVED_COMMAND_MODE         175
00209 
00210 #define UNIT_RESET                      176
00211 #define UNIT_RESET_ON_POWERUP           177     /***** NOT YET SUPPORTED *****/
00212 #define UNIT_RESET_ON_POWERUP_DISABLED  178     /***** NOT YET SUPPORTED *****/
00213 
00214 /* returns an unsigned char with the unit_id */
00215 #define UNIT_ID_QUERY                   179     /***** NOT YET SUPPORTED *****/
00216 
00217 /* 1 if echo, 0 otherwise */
00218 #define ECHO_QUERY                      180
00219 #define ENABLE_ECHO                     181
00220 #define DISABLE_ECHO                    182
00221 
00222 #define SAVE_DEFAULTS                   183
00223 #define RESTORE_SAVED_DEFAULTS          184
00224 #define RESTORE_FACTORY_DEFAULTS        185
00225 
00226 /* returns power mode byte */
00227 #define PAN_HOLD_POWER_QUERY            186
00228 #define TILT_HOLD_POWER_QUERY           187
00229 #define PAN_MOVE_POWER_QUERY            188
00230 #define TILT_MOVE_POWER_QUERY           189
00231 
00232 /* 1 if verbose, 0 otherwise */
00233 #define VERBOSE_QUERY                   190
00234 #define SET_VERBOSE_ASCII_ON            191
00235 #define SET_VERBOSE_ASCII_OFF           192
00236 
00237 /* 1 if joystick enabled, 0 otherwise */
00238 #define JOYSTICK_QUERY                  193             /***** NOT YET SUPPORTED *****/
00239 #define ENABLE_JOYSTICK                 194             /***** NOT YET SUPPORTED *****/
00240 #define DISABLE_JOYSTICK                195             /***** NOT YET SUPPORTED *****/
00241 
00242 /*** other return opcodes ***/
00243 
00244 /* returns string ending with '\n' */
00245 #define FIRMWARE_VERSION_QUERY          196
00246 
00247 #define LAST_0ARG_OPCODE                196
00248 
00249 /*****/                              /*****/
00250 /***** OPCODES with a 1 byte ARGUMENT *****/
00251 /*****/                              /*****/
00252 
00253 /*** returns signed char (a status byte) ***/
00254 
00255 /* ARG1: power mode byte */
00256 #define PAN_SET_HOLD_POWER              197
00257 #define TILT_SET_HOLD_POWER             198
00258 #define PAN_SET_MOVE_POWER              199
00259 #define TILT_SET_MOVE_POWER             200
00260 
00261 #define LAST_1BYTE_ARG_OPCODE           200
00262 
00263 /*****/                                  /*****/
00264 /***** OPCODES with a 4 byte int ARGUMENT *****/
00265 /*****/                                  /*****/
00266 
00267 /*** returns signed char (a status byte) ***/
00268 
00269 /* a 4 byte unsigned integer argument */
00270 #define PAN_SET_ACCEL                   201
00271 #define TILT_SET_ACCEL                  202
00272 
00273 #define LAST_4BYTE_ARG_OPCODE           202
00274 
00275 
00276 /*****/                                     /*****/
00277 /***** SPECIAL OPCODES with custom ARGUMENTS *****/
00278 /*****/                                     /*****/
00279 
00280 #define SPECIAL_OPCODE                  203
00281 
00282 
00283 /*** (Added 9/16/98 at end to maintain backward compatibility.) ***/
00284 /*** 0 byte argument, returns signed char                       ***/
00285 #define QUERY_SPEED_CONTROL_MODE        203
00286 #define SET_INDEPENDENT_CONTROL_MODE    204
00287 #define SET_PURE_VELOCITY_CONTROL_MODE  205
00288 
00289 #define UNIT_RESET_PAN                  220
00290 #define UNIT_RESET_TILT                 221
00291 
00292 #define SET_DESIRED_PTU_MOTION          222
00293 #define QUERY_CURRENT_PTU_MOTION        223
00294 
00295 /*** Added temperature and input voltage query on 9/16/2003 ***/
00296 #define OUTSIDE_ENVIRONMENT_QUERY       224
00297 
00298 /*** preset commands added 2.12.11r2  7/20/05 ***/
00299 #define PRESET_SET                      225                
00300 #define PRESET_GOTO                     226
00301 #define PRESET_CLEAR                    227
00302 
00303 /*** TTL control commands added 16Feb2006 ***/
00304 #define TTL_CONTROLS                    228
00305 
00306 /*** Trigger controls added v2.12.13d31 */
00307 #define TRIGGER_CONTROLS                229
00308 #define TRIGGER_OP_on         01
00309 #define TRIGGER_OP_off        02
00310 #define TRIGGER_OP_numPending 04
00311 
00312 
00313 /*** Added ISM support on 16Feb2006 ***/
00314 
00315 #define ISM_SET_PAN_DRIFT_RATE          230
00316 #define ISM_SET_TILT_DRIFT_RATE         231
00317 #define ISM_GET_PAN_DRIFT_RATE          232
00318 #define ISM_GET_TILT_DRIFT_RATE         233
00319 
00320 
00321 /*** high speed pan-tilt commands intended for ISM ***/
00322 #define SET_DESIRED_VELOCITIES          234
00323 #define SET_DESIRED_VELOCITES_GET_POS   235
00324 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines