TarzaNN
TarzaNN neural network simulator
|
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