/* C code for program camCal, generated by snc from ../camCalibrate.st */ #include #include #include #include #include "seq_snc.h" # line 10 "../camCalibrate.st" #include # line 11 "../camCalibrate.st" #include # line 12 "../camCalibrate.st" #include # line 13 "../camCalibrate.st" #include # line 14 "../camCalibrate.st" #include # line 15 "../camCalibrate.st" #include "waveformRecord.h" # line 17 "../camCalibrate.st" # define TIMEOUT 10 /* Variable declarations */ struct seqg_vars { # line 19 "../camCalibrate.st" epicsInt32 camCalAbort; # line 24 "../camCalibrate.st" short calCam1; # line 28 "../camCalibrate.st" short calCam2; # line 32 "../camCalibrate.st" short calCam3; # line 36 "../camCalibrate.st" short calCam4; # line 40 "../camCalibrate.st" short calCam5; # line 45 "../camCalibrate.st" short calCam1M; # line 49 "../camCalibrate.st" short calCam2M; # line 53 "../camCalibrate.st" short calCam3M; # line 57 "../camCalibrate.st" short calCam4M; # line 61 "../camCalibrate.st" short calCam5M; # line 66 "../camCalibrate.st" epicsInt32 cam1EnableCtl; # line 69 "../camCalibrate.st" epicsInt32 cam2EnableCtl; # line 72 "../camCalibrate.st" epicsInt32 cam3EnableCtl; # line 75 "../camCalibrate.st" epicsInt32 cam4EnableCtl; # line 78 "../camCalibrate.st" epicsInt32 cam5EnableCtl; # line 81 "../camCalibrate.st" epicsInt32 trans1EnableCtl; # line 84 "../camCalibrate.st" epicsInt32 trans2EnableCtl; # line 89 "../camCalibrate.st" float camMotor; # line 94 "../camCalibrate.st" float camReadback; # line 100 "../camCalibrate.st" double rotaryPot; # line 106 "../camCalibrate.st" double linearPot1; # line 110 "../camCalibrate.st" double linearPot2; # line 114 "../camCalibrate.st" double linearPot3; # line 118 "../camCalibrate.st" double linearPot5; # line 122 "../camCalibrate.st" double linearPot6; # line 126 "../camCalibrate.st" double linearPot7; # line 132 "../camCalibrate.st" string calMsg1; # line 135 "../camCalibrate.st" string calMsg2; # line 138 "../camCalibrate.st" string calMsg3; # line 143 "../camCalibrate.st" float voltage; # line 145 "../camCalibrate.st" float voltageAvg; # line 147 "../camCalibrate.st" float camAngle[180]; # line 149 "../camCalibrate.st" double camPotentiometer[180]; # line 151 "../camCalibrate.st" double girderPotentiometer1[180]; # line 153 "../camCalibrate.st" double girderPotentiometer2[180]; # line 155 "../camCalibrate.st" double girderPotentiometer3[180]; # line 157 "../camCalibrate.st" double girderPotentiometer5[180]; # line 159 "../camCalibrate.st" double girderPotentiometer6[180]; # line 161 "../camCalibrate.st" double girderPotentiometer7[180]; # line 164 "../camCalibrate.st" short i; # line 165 "../camCalibrate.st" float voltageSrc[180]; # line 166 "../camCalibrate.st" float voltageSum; # line 167 "../camCalibrate.st" char *pvPrefix; # line 168 "../camCalibrate.st" string pvName; }; /* Function declarations */ #define seqg_var (*(struct seqg_vars *const *)seqg_env) /* Program init func */ static void seqg_init(PROG_ID seqg_env) { } /****** Code for state "init" in state set "camCal" ******/ /* Entry function for state "init" in state set "camCal" */ static void seqg_entry_camCal_0_init(SS_ID seqg_env) { # line 175 "../camCalibrate.st" seqg_var->pvPrefix = epicsStrDup(seq_macValueGet(seqg_env, "S")); } /* Event function for state "init" in state set "camCal" */ static seqBool seqg_event_camCal_0_init(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 177 "../camCalibrate.st" if (1) { *seqg_pnst = 2; *seqg_ptrn = 0; return TRUE; } return FALSE; } /* Action function for state "init" in state set "camCal" */ static void seqg_action_camCal_0_init(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { } return; } } /****** Code for state "checkPVsConnected" in state set "camCal" ******/ /* Event function for state "checkPVsConnected" in state set "camCal" */ static seqBool seqg_event_camCal_0_checkPVsConnected(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 187 "../camCalibrate.st" if (seq_pvConnectCount(seqg_env) != seq_pvChannelCount(seqg_env)) { *seqg_pnst = 1; *seqg_ptrn = 0; return TRUE; } # line 191 "../camCalibrate.st" if (seq_pvConnectCount(seqg_env) == seq_pvChannelCount(seqg_env)) { *seqg_pnst = 2; *seqg_ptrn = 1; return TRUE; } return FALSE; } /* Action function for state "checkPVsConnected" in state set "camCal" */ static void seqg_action_camCal_0_checkPVsConnected(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { /* C code definitions */ # line 188 "../camCalibrate.st" epicsThreadSleep(5); } return; case 1: { /* C code definitions */ # line 192 "../camCalibrate.st" epicsThreadSleep(1); } return; } } /****** Code for state "waitForCommand" in state set "camCal" ******/ /* Entry function for state "waitForCommand" in state set "camCal" */ static void seqg_entry_camCal_0_waitForCommand(SS_ID seqg_env) { # line 203 "../camCalibrate.st" seqg_var->cam1EnableCtl = 3; # line 204 "../camCalibrate.st" seqg_var->cam2EnableCtl = 3; # line 205 "../camCalibrate.st" seqg_var->cam3EnableCtl = 3; # line 206 "../camCalibrate.st" seqg_var->cam4EnableCtl = 3; # line 207 "../camCalibrate.st" seqg_var->cam5EnableCtl = 3; # line 208 "../camCalibrate.st" seqg_var->trans1EnableCtl = 3; # line 209 "../camCalibrate.st" seqg_var->trans2EnableCtl = 3; # line 210 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 11/*cam1EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 211 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 12/*cam2EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 212 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 13/*cam3EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 213 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 14/*cam4EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 214 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 15/*cam5EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 215 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 16/*trans1EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 216 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 17/*trans2EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); } /* Event function for state "waitForCommand" in state set "camCal" */ static seqBool seqg_event_camCal_0_waitForCommand(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 219 "../camCalibrate.st" if (seqg_var->calCam1) { *seqg_pnst = 3; *seqg_ptrn = 0; return TRUE; } # line 247 "../camCalibrate.st" if (seqg_var->calCam2) { *seqg_pnst = 3; *seqg_ptrn = 1; return TRUE; } # line 275 "../camCalibrate.st" if (seqg_var->calCam3) { *seqg_pnst = 3; *seqg_ptrn = 2; return TRUE; } # line 303 "../camCalibrate.st" if (seqg_var->calCam4) { *seqg_pnst = 3; *seqg_ptrn = 3; return TRUE; } # line 331 "../camCalibrate.st" if (seqg_var->calCam5) { *seqg_pnst = 3; *seqg_ptrn = 4; return TRUE; } return FALSE; } /* Action function for state "waitForCommand" in state set "camCal" */ static void seqg_action_camCal_0_waitForCommand(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 221 "../camCalibrate.st" seqg_var->calCam1 = 0; # line 222 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 1/*calCam1*/, DEFAULT, DEFAULT_TIMEOUT); # line 223 "../camCalibrate.st" seqg_var->calCam1M = 1; # line 224 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 6/*calCam1M*/, DEFAULT, DEFAULT_TIMEOUT); # line 225 "../camCalibrate.st" sprintf(seqg_var->calMsg1, "Initializing CAM1"); # line 226 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 227 "../camCalibrate.st" strcpy(seqg_var->calMsg2, ""); # line 228 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 229 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 230 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 231 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 232 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM1MOTOR.VAL"); # line 233 "../camCalibrate.st" seq_pvAssign(seqg_env, 18/*camMotor*/, seqg_var->pvName); # line 234 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 235 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM1MOTOR.RBV"); # line 236 "../camCalibrate.st" seq_pvAssign(seqg_env, 19/*camReadback*/, seqg_var->pvName); # line 237 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 238 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM1ADCM"); # line 239 "../camCalibrate.st" seq_pvAssign(seqg_env, 20/*rotaryPot*/, seqg_var->pvName); # line 240 "../camCalibrate.st" seqg_var->cam1EnableCtl = 3; # line 241 "../camCalibrate.st" seqg_var->cam2EnableCtl = 0; # line 242 "../camCalibrate.st" seqg_var->cam3EnableCtl = 0; # line 243 "../camCalibrate.st" seqg_var->cam4EnableCtl = 0; # line 244 "../camCalibrate.st" seqg_var->cam5EnableCtl = 0; } return; case 1: { # line 249 "../camCalibrate.st" seqg_var->calCam2 = 0; # line 250 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 2/*calCam2*/, DEFAULT, DEFAULT_TIMEOUT); # line 251 "../camCalibrate.st" seqg_var->calCam2M = 1; # line 252 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 7/*calCam2M*/, DEFAULT, DEFAULT_TIMEOUT); # line 253 "../camCalibrate.st" sprintf(seqg_var->calMsg1, "Initializing CAM2"); # line 254 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 255 "../camCalibrate.st" strcpy(seqg_var->calMsg2, ""); # line 256 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 257 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 258 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 259 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 260 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM2MOTOR.VAL"); # line 261 "../camCalibrate.st" seq_pvAssign(seqg_env, 18/*camMotor*/, seqg_var->pvName); # line 262 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 263 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM2MOTOR.RBV"); # line 264 "../camCalibrate.st" seq_pvAssign(seqg_env, 19/*camReadback*/, seqg_var->pvName); # line 265 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 266 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM2ADCM"); # line 267 "../camCalibrate.st" seq_pvAssign(seqg_env, 20/*rotaryPot*/, seqg_var->pvName); # line 268 "../camCalibrate.st" seqg_var->cam1EnableCtl = 0; # line 269 "../camCalibrate.st" seqg_var->cam2EnableCtl = 3; # line 270 "../camCalibrate.st" seqg_var->cam3EnableCtl = 0; # line 271 "../camCalibrate.st" seqg_var->cam4EnableCtl = 0; # line 272 "../camCalibrate.st" seqg_var->cam5EnableCtl = 0; } return; case 2: { # line 277 "../camCalibrate.st" seqg_var->calCam3 = 0; # line 278 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 3/*calCam3*/, DEFAULT, DEFAULT_TIMEOUT); # line 279 "../camCalibrate.st" seqg_var->calCam3M = 1; # line 280 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 8/*calCam3M*/, DEFAULT, DEFAULT_TIMEOUT); # line 281 "../camCalibrate.st" sprintf(seqg_var->calMsg1, "Initializing CAM3"); # line 282 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 283 "../camCalibrate.st" strcpy(seqg_var->calMsg2, ""); # line 284 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 285 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 286 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 287 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 288 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM3MOTOR.VAL"); # line 289 "../camCalibrate.st" seq_pvAssign(seqg_env, 18/*camMotor*/, seqg_var->pvName); # line 290 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 291 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM3MOTOR.RBV"); # line 292 "../camCalibrate.st" seq_pvAssign(seqg_env, 19/*camReadback*/, seqg_var->pvName); # line 293 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 294 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM3ADCM"); # line 295 "../camCalibrate.st" seq_pvAssign(seqg_env, 20/*rotaryPot*/, seqg_var->pvName); # line 296 "../camCalibrate.st" seqg_var->cam1EnableCtl = 0; # line 297 "../camCalibrate.st" seqg_var->cam2EnableCtl = 0; # line 298 "../camCalibrate.st" seqg_var->cam3EnableCtl = 3; # line 299 "../camCalibrate.st" seqg_var->cam4EnableCtl = 0; # line 300 "../camCalibrate.st" seqg_var->cam5EnableCtl = 0; } return; case 3: { # line 305 "../camCalibrate.st" seqg_var->calCam4 = 0; # line 306 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 4/*calCam4*/, DEFAULT, DEFAULT_TIMEOUT); # line 307 "../camCalibrate.st" seqg_var->calCam4M = 1; # line 308 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 9/*calCam4M*/, DEFAULT, DEFAULT_TIMEOUT); # line 309 "../camCalibrate.st" sprintf(seqg_var->calMsg1, "Initializing CAM4"); # line 310 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 311 "../camCalibrate.st" strcpy(seqg_var->calMsg2, ""); # line 312 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 313 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 314 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 315 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 316 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM4MOTOR.VAL"); # line 317 "../camCalibrate.st" seq_pvAssign(seqg_env, 18/*camMotor*/, seqg_var->pvName); # line 318 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 319 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM4MOTOR.RBV"); # line 320 "../camCalibrate.st" seq_pvAssign(seqg_env, 19/*camReadback*/, seqg_var->pvName); # line 321 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 322 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM4ADCM"); # line 323 "../camCalibrate.st" seq_pvAssign(seqg_env, 20/*rotaryPot*/, seqg_var->pvName); # line 324 "../camCalibrate.st" seqg_var->cam1EnableCtl = 0; # line 325 "../camCalibrate.st" seqg_var->cam2EnableCtl = 0; # line 326 "../camCalibrate.st" seqg_var->cam3EnableCtl = 0; # line 327 "../camCalibrate.st" seqg_var->cam4EnableCtl = 3; # line 328 "../camCalibrate.st" seqg_var->cam5EnableCtl = 0; } return; case 4: { # line 333 "../camCalibrate.st" seqg_var->calCam5 = 0; # line 334 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 5/*calCam5*/, DEFAULT, DEFAULT_TIMEOUT); # line 335 "../camCalibrate.st" seqg_var->calCam5M = 1; # line 336 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 10/*calCam5M*/, DEFAULT, DEFAULT_TIMEOUT); # line 337 "../camCalibrate.st" sprintf(seqg_var->calMsg1, "Initializing CAM1"); # line 338 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 339 "../camCalibrate.st" strcpy(seqg_var->calMsg2, ""); # line 340 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 341 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 342 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 343 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 344 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM5MOTOR.VAL"); # line 345 "../camCalibrate.st" seq_pvAssign(seqg_env, 18/*camMotor*/, seqg_var->pvName); # line 346 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 347 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM5MOTOR.RBV"); # line 348 "../camCalibrate.st" seq_pvAssign(seqg_env, 19/*camReadback*/, seqg_var->pvName); # line 349 "../camCalibrate.st" strcpy(seqg_var->pvName, seqg_var->pvPrefix); # line 350 "../camCalibrate.st" strcat(seqg_var->pvName, ":CM5ADCM"); # line 351 "../camCalibrate.st" seq_pvAssign(seqg_env, 20/*rotaryPot*/, seqg_var->pvName); # line 352 "../camCalibrate.st" seqg_var->cam1EnableCtl = 0; # line 353 "../camCalibrate.st" seqg_var->cam2EnableCtl = 0; # line 354 "../camCalibrate.st" seqg_var->cam3EnableCtl = 0; # line 355 "../camCalibrate.st" seqg_var->cam4EnableCtl = 0; # line 356 "../camCalibrate.st" seqg_var->cam5EnableCtl = 3; } return; } } /****** Code for state "waitForPVconnect" in state set "camCal" ******/ /* Event function for state "waitForPVconnect" in state set "camCal" */ static seqBool seqg_event_camCal_0_waitForPVconnect(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 368 "../camCalibrate.st" if (seq_pvConnected(seqg_env, 18/*camMotor*/) && seq_pvConnected(seqg_env, 19/*camReadback*/) && seq_pvConnected(seqg_env, 20/*rotaryPot*/)) { *seqg_pnst = 4; *seqg_ptrn = 0; return TRUE; } # line 376 "../camCalibrate.st" if (seq_delay(seqg_env, TIMEOUT)) { *seqg_pnst = 2; *seqg_ptrn = 1; return TRUE; } return FALSE; } /* Action function for state "waitForPVconnect" in state set "camCal" */ static void seqg_action_camCal_0_waitForPVconnect(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 370 "../camCalibrate.st" sprintf(seqg_var->calMsg2, "Moving motor to 0 degrees"); # line 371 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 372 "../camCalibrate.st" seqg_var->camMotor = 0.0; # line 373 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 18/*camMotor*/, DEFAULT, DEFAULT_TIMEOUT); } return; case 1: { # line 378 "../camCalibrate.st" strcpy(seqg_var->calMsg1, "Could not connect to PV's"); # line 379 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 380 "../camCalibrate.st" sprintf(seqg_var->calMsg2, "Timeout: Aborting Calibration"); # line 381 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 382 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 383 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 384 "../camCalibrate.st" seqg_var->calCam1M = 0; # line 385 "../camCalibrate.st" seqg_var->calCam2M = 0; # line 386 "../camCalibrate.st" seqg_var->calCam3M = 0; # line 387 "../camCalibrate.st" seqg_var->calCam4M = 0; # line 388 "../camCalibrate.st" seqg_var->calCam5M = 0; # line 389 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 6/*calCam1M*/, DEFAULT, DEFAULT_TIMEOUT); # line 390 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 7/*calCam2M*/, DEFAULT, DEFAULT_TIMEOUT); # line 391 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 8/*calCam3M*/, DEFAULT, DEFAULT_TIMEOUT); # line 392 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 9/*calCam4M*/, DEFAULT, DEFAULT_TIMEOUT); # line 393 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 10/*calCam5M*/, DEFAULT, DEFAULT_TIMEOUT); } return; } } /****** Code for state "zeroCAM" in state set "camCal" ******/ /* Event function for state "zeroCAM" in state set "camCal" */ static seqBool seqg_event_camCal_0_zeroCAM(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 403 "../camCalibrate.st" if (fabs(seqg_var->camReadback - seqg_var->camMotor) < 0.01) { *seqg_pnst = 5; *seqg_ptrn = 0; return TRUE; } # line 407 "../camCalibrate.st" if (seq_delay(seqg_env, TIMEOUT)) { *seqg_pnst = 2; *seqg_ptrn = 1; return TRUE; } return FALSE; } /* Action function for state "zeroCAM" in state set "camCal" */ static void seqg_action_camCal_0_zeroCAM(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { } return; case 1: { # line 409 "../camCalibrate.st" strcpy(seqg_var->calMsg1, "Motor did not move to 0 degrees"); # line 410 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 411 "../camCalibrate.st" sprintf(seqg_var->calMsg2, "Motor Timeout: Aborting Calibration"); # line 412 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 413 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 414 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); } return; } } /****** Code for state "calCAMx" in state set "camCal" ******/ /* Event function for state "calCAMx" in state set "camCal" */ static seqBool seqg_event_camCal_0_calCAMx(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 423 "../camCalibrate.st" if (1) { *seqg_pnst = 6; *seqg_ptrn = 0; return TRUE; } return FALSE; } /* Action function for state "calCAMx" in state set "camCal" */ static void seqg_action_camCal_0_calCAMx(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 425 "../camCalibrate.st" seqg_var->trans1EnableCtl = 0; # line 426 "../camCalibrate.st" seqg_var->trans2EnableCtl = 0; # line 427 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 11/*cam1EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 428 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 12/*cam2EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 429 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 13/*cam3EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 430 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 14/*cam4EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 431 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 15/*cam5EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 432 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 16/*trans1EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 433 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 17/*trans2EnableCtl*/, DEFAULT, DEFAULT_TIMEOUT); # line 434 "../camCalibrate.st" sprintf(seqg_var->calMsg1, "Calibrating CAM"); # line 435 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 436 "../camCalibrate.st" sprintf(seqg_var->calMsg2, "Measuring Gain/Offset"); # line 437 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 438 "../camCalibrate.st" seqg_var->i = 0; # line 439 "../camCalibrate.st" seqg_var->voltageAvg = 0.0; # line 440 "../camCalibrate.st" seqg_var->voltageSum = 0.0; } return; } } /****** Code for state "checkAbortCAMx" in state set "camCal" ******/ /* Event function for state "checkAbortCAMx" in state set "camCal" */ static seqBool seqg_event_camCal_0_checkAbortCAMx(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 450 "../camCalibrate.st" if (seqg_var->camCalAbort) { *seqg_pnst = 2; *seqg_ptrn = 0; return TRUE; } # line 471 "../camCalibrate.st" if (TRUE) { *seqg_pnst = 7; *seqg_ptrn = 1; return TRUE; } return FALSE; } /* Action function for state "checkAbortCAMx" in state set "camCal" */ static void seqg_action_camCal_0_checkAbortCAMx(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 451 "../camCalibrate.st" seqg_var->camCalAbort = 0; # line 452 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 0/*camCalAbort*/, DEFAULT, DEFAULT_TIMEOUT); # line 453 "../camCalibrate.st" strcpy(seqg_var->calMsg1, ""); # line 454 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 455 "../camCalibrate.st" sprintf(seqg_var->calMsg2, "Abort Command Received"); # line 456 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 457 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 458 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 459 "../camCalibrate.st" seqg_var->calCam1M = 0; # line 460 "../camCalibrate.st" seqg_var->calCam2M = 0; # line 461 "../camCalibrate.st" seqg_var->calCam3M = 0; # line 462 "../camCalibrate.st" seqg_var->calCam4M = 0; # line 463 "../camCalibrate.st" seqg_var->calCam5M = 0; # line 464 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 6/*calCam1M*/, DEFAULT, DEFAULT_TIMEOUT); # line 465 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 7/*calCam2M*/, DEFAULT, DEFAULT_TIMEOUT); # line 466 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 8/*calCam3M*/, DEFAULT, DEFAULT_TIMEOUT); # line 467 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 9/*calCam4M*/, DEFAULT, DEFAULT_TIMEOUT); # line 468 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 10/*calCam5M*/, DEFAULT, DEFAULT_TIMEOUT); } return; case 1: { } return; } } /****** Code for state "moveCAMx" in state set "camCal" ******/ /* Event function for state "moveCAMx" in state set "camCal" */ static seqBool seqg_event_camCal_0_moveCAMx(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 482 "../camCalibrate.st" if (seqg_var->i < 180) { *seqg_pnst = 8; *seqg_ptrn = 0; return TRUE; } # line 490 "../camCalibrate.st" if (seqg_var->i == 180) { *seqg_pnst = 10; *seqg_ptrn = 1; return TRUE; } return FALSE; } /* Action function for state "moveCAMx" in state set "camCal" */ static void seqg_action_camCal_0_moveCAMx(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 483 "../camCalibrate.st" seqg_var->camAngle[seqg_var->i] = seqg_var->i * 2; # line 484 "../camCalibrate.st" seqg_var->camMotor = seqg_var->camAngle[seqg_var->i]; # line 485 "../camCalibrate.st" sprintf(seqg_var->calMsg3, "%.1f degrees", seqg_var->camAngle[seqg_var->i]); # line 486 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 487 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 18/*camMotor*/, DEFAULT, DEFAULT_TIMEOUT); } return; case 1: { # line 492 "../camCalibrate.st" seqg_var->camMotor = 360; # line 493 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 18/*camMotor*/, DEFAULT, DEFAULT_TIMEOUT); } return; } } /****** Code for state "checkCAMx" in state set "camCal" ******/ /* Event function for state "checkCAMx" in state set "camCal" */ static seqBool seqg_event_camCal_0_checkCAMx(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 503 "../camCalibrate.st" if (fabs(seqg_var->camMotor - seqg_var->camReadback) < 0.01) { *seqg_pnst = 9; *seqg_ptrn = 0; return TRUE; } # line 507 "../camCalibrate.st" if (seq_delay(seqg_env, TIMEOUT)) { *seqg_pnst = 2; *seqg_ptrn = 1; return TRUE; } return FALSE; } /* Action function for state "checkCAMx" in state set "camCal" */ static void seqg_action_camCal_0_checkCAMx(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { } return; case 1: { # line 508 "../camCalibrate.st" strcpy(seqg_var->calMsg1, ""); # line 509 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 27/*calMsg1*/, DEFAULT, DEFAULT_TIMEOUT); # line 510 "../camCalibrate.st" sprintf(seqg_var->calMsg2, "Motor Timeout: Aborting Calibration"); # line 511 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 512 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 513 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 514 "../camCalibrate.st" seqg_var->calCam1M = 0; # line 515 "../camCalibrate.st" seqg_var->calCam2M = 0; # line 516 "../camCalibrate.st" seqg_var->calCam3M = 0; # line 517 "../camCalibrate.st" seqg_var->calCam4M = 0; # line 518 "../camCalibrate.st" seqg_var->calCam5M = 0; # line 519 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 6/*calCam1M*/, DEFAULT, DEFAULT_TIMEOUT); # line 520 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 7/*calCam2M*/, DEFAULT, DEFAULT_TIMEOUT); # line 521 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 8/*calCam3M*/, DEFAULT, DEFAULT_TIMEOUT); # line 522 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 9/*calCam4M*/, DEFAULT, DEFAULT_TIMEOUT); # line 523 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 10/*calCam5M*/, DEFAULT, DEFAULT_TIMEOUT); } return; } } /****** Code for state "readADCx" in state set "camCal" ******/ /* Event function for state "readADCx" in state set "camCal" */ static seqBool seqg_event_camCal_0_readADCx(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 533 "../camCalibrate.st" if (seq_delay(seqg_env, 1.1)) { *seqg_pnst = 6; *seqg_ptrn = 0; return TRUE; } return FALSE; } /* Action function for state "readADCx" in state set "camCal" */ static void seqg_action_camCal_0_readADCx(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 534 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 30/*voltage*/, DEFAULT, DEFAULT_TIMEOUT); # line 535 "../camCalibrate.st" seqg_var->voltageSrc[seqg_var->i] = seqg_var->voltage; # line 536 "../camCalibrate.st" seqg_var->voltageSum = seqg_var->voltageSum + seqg_var->voltage; # line 537 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 20/*rotaryPot*/, DEFAULT, DEFAULT_TIMEOUT); # line 538 "../camCalibrate.st" seqg_var->camPotentiometer[seqg_var->i] = seqg_var->rotaryPot; # line 539 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 21/*linearPot1*/, DEFAULT, DEFAULT_TIMEOUT); # line 540 "../camCalibrate.st" seqg_var->girderPotentiometer1[seqg_var->i] = seqg_var->linearPot1; # line 541 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 22/*linearPot2*/, DEFAULT, DEFAULT_TIMEOUT); # line 542 "../camCalibrate.st" seqg_var->girderPotentiometer2[seqg_var->i] = seqg_var->linearPot2; # line 543 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 23/*linearPot3*/, DEFAULT, DEFAULT_TIMEOUT); # line 544 "../camCalibrate.st" seqg_var->girderPotentiometer3[seqg_var->i] = seqg_var->linearPot3; # line 545 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 24/*linearPot5*/, DEFAULT, DEFAULT_TIMEOUT); # line 546 "../camCalibrate.st" seqg_var->girderPotentiometer5[seqg_var->i] = seqg_var->linearPot5; # line 547 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 25/*linearPot6*/, DEFAULT, DEFAULT_TIMEOUT); # line 548 "../camCalibrate.st" seqg_var->girderPotentiometer6[seqg_var->i] = seqg_var->linearPot6; # line 549 "../camCalibrate.st" seq_pvGetTmo(seqg_env, 26/*linearPot7*/, DEFAULT, DEFAULT_TIMEOUT); # line 550 "../camCalibrate.st" seqg_var->girderPotentiometer7[seqg_var->i] = seqg_var->linearPot7; # line 551 "../camCalibrate.st" seqg_var->i++; } return; } } /****** Code for state "calculate" in state set "camCal" ******/ /* Event function for state "calculate" in state set "camCal" */ static seqBool seqg_event_camCal_0_calculate(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 560 "../camCalibrate.st" if (1) { *seqg_pnst = 11; *seqg_ptrn = 0; return TRUE; } return FALSE; } /* Action function for state "calculate" in state set "camCal" */ static void seqg_action_camCal_0_calculate(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 562 "../camCalibrate.st" seqg_var->voltageAvg = seqg_var->voltageSum / seqg_var->i; } return; } } /****** Code for state "storeData" in state set "camCal" ******/ /* Event function for state "storeData" in state set "camCal" */ static seqBool seqg_event_camCal_0_storeData(SS_ID seqg_env, int *seqg_ptrn, int *seqg_pnst) { # line 571 "../camCalibrate.st" if (1) { *seqg_pnst = 2; *seqg_ptrn = 0; return TRUE; } return FALSE; } /* Action function for state "storeData" in state set "camCal" */ static void seqg_action_camCal_0_storeData(SS_ID seqg_env, int seqg_trn, int *seqg_pnst) { switch(seqg_trn) { case 0: { # line 573 "../camCalibrate.st" sprintf(seqg_var->calMsg2, "Import Data into Octave"); # line 574 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 28/*calMsg2*/, DEFAULT, DEFAULT_TIMEOUT); # line 575 "../camCalibrate.st" strcpy(seqg_var->calMsg3, ""); # line 576 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 29/*calMsg3*/, DEFAULT, DEFAULT_TIMEOUT); # line 577 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 31/*voltageAvg*/, DEFAULT, DEFAULT_TIMEOUT); # line 578 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 32/*camAngle*/, DEFAULT, DEFAULT_TIMEOUT); # line 579 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 33/*camPotentiometer*/, DEFAULT, DEFAULT_TIMEOUT); # line 580 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 34/*girderPotentiometer1*/, DEFAULT, DEFAULT_TIMEOUT); # line 581 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 35/*girderPotentiometer2*/, DEFAULT, DEFAULT_TIMEOUT); # line 582 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 36/*girderPotentiometer3*/, DEFAULT, DEFAULT_TIMEOUT); # line 583 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 37/*girderPotentiometer5*/, DEFAULT, DEFAULT_TIMEOUT); # line 584 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 38/*girderPotentiometer6*/, DEFAULT, DEFAULT_TIMEOUT); # line 585 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 39/*girderPotentiometer7*/, DEFAULT, DEFAULT_TIMEOUT); # line 586 "../camCalibrate.st" seqg_var->calCam1M = 0; # line 587 "../camCalibrate.st" seqg_var->calCam2M = 0; # line 588 "../camCalibrate.st" seqg_var->calCam3M = 0; # line 589 "../camCalibrate.st" seqg_var->calCam4M = 0; # line 590 "../camCalibrate.st" seqg_var->calCam5M = 0; # line 591 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 6/*calCam1M*/, DEFAULT, DEFAULT_TIMEOUT); # line 592 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 7/*calCam2M*/, DEFAULT, DEFAULT_TIMEOUT); # line 593 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 8/*calCam3M*/, DEFAULT, DEFAULT_TIMEOUT); # line 594 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 9/*calCam4M*/, DEFAULT, DEFAULT_TIMEOUT); # line 595 "../camCalibrate.st" seq_pvPutTmo(seqg_env, 10/*calCam5M*/, DEFAULT, DEFAULT_TIMEOUT); } return; } } #undef seqg_var /************************ Tables ************************/ /* Channel table */ static seqChan seqg_chans[] = { /* chName, offset, varName, varType, count, eventNum, efId, monitored, queueSize, queueIndex */ {"{S}:CALABORT", offsetof(struct seqg_vars, camCalAbort), "camCalAbort", P_INT32T, 1, 1, 0, 1, 0, 0}, {"{S}:CALCAM1C", offsetof(struct seqg_vars, calCam1), "calCam1", P_SHORT, 1, 2, 0, 1, 0, 0}, {"{S}:CALCAM2C", offsetof(struct seqg_vars, calCam2), "calCam2", P_SHORT, 1, 3, 0, 1, 0, 0}, {"{S}:CALCAM3C", offsetof(struct seqg_vars, calCam3), "calCam3", P_SHORT, 1, 4, 0, 1, 0, 0}, {"{S}:CALCAM4C", offsetof(struct seqg_vars, calCam4), "calCam4", P_SHORT, 1, 5, 0, 1, 0, 0}, {"{S}:CALCAM5C", offsetof(struct seqg_vars, calCam5), "calCam5", P_SHORT, 1, 6, 0, 1, 0, 0}, {"{S}:CALCAM1M", offsetof(struct seqg_vars, calCam1M), "calCam1M", P_SHORT, 1, 7, 0, 1, 0, 0}, {"{S}:CALCAM2M", offsetof(struct seqg_vars, calCam2M), "calCam2M", P_SHORT, 1, 8, 0, 1, 0, 0}, {"{S}:CALCAM3M", offsetof(struct seqg_vars, calCam3M), "calCam3M", P_SHORT, 1, 9, 0, 1, 0, 0}, {"{S}:CALCAM4M", offsetof(struct seqg_vars, calCam4M), "calCam4M", P_SHORT, 1, 10, 0, 1, 0, 0}, {"{S}:CALCAM5M", offsetof(struct seqg_vars, calCam5M), "calCam5M", P_SHORT, 1, 11, 0, 1, 0, 0}, {"{S}:CM1MOTOR.SPMG", offsetof(struct seqg_vars, cam1EnableCtl), "cam1EnableCtl", P_INT32T, 1, 12, 0, 0, 0, 0}, {"{S}:CM2MOTOR.SPMG", offsetof(struct seqg_vars, cam2EnableCtl), "cam2EnableCtl", P_INT32T, 1, 13, 0, 0, 0, 0}, {"{S}:CM3MOTOR.SPMG", offsetof(struct seqg_vars, cam3EnableCtl), "cam3EnableCtl", P_INT32T, 1, 14, 0, 0, 0, 0}, {"{S}:CM4MOTOR.SPMG", offsetof(struct seqg_vars, cam4EnableCtl), "cam4EnableCtl", P_INT32T, 1, 15, 0, 0, 0, 0}, {"{S}:CM5MOTOR.SPMG", offsetof(struct seqg_vars, cam5EnableCtl), "cam5EnableCtl", P_INT32T, 1, 16, 0, 0, 0, 0}, {"{S}:TM1MOTOR.SPMG", offsetof(struct seqg_vars, trans1EnableCtl), "trans1EnableCtl", P_INT32T, 1, 17, 0, 0, 0, 0}, {"{S}:TM1MOTOR.SPMG", offsetof(struct seqg_vars, trans2EnableCtl), "trans2EnableCtl", P_INT32T, 1, 18, 0, 0, 0, 0}, {"", offsetof(struct seqg_vars, camMotor), "camMotor", P_FLOAT, 1, 19, 0, 0, 0, 0}, {"", offsetof(struct seqg_vars, camReadback), "camReadback", P_FLOAT, 1, 20, 0, 1, 0, 0}, {"", offsetof(struct seqg_vars, rotaryPot), "rotaryPot", P_DOUBLE, 1, 21, 0, 1, 0, 0}, {"{S}:LP1ADCM", offsetof(struct seqg_vars, linearPot1), "linearPot1", P_DOUBLE, 1, 22, 0, 1, 0, 0}, {"{S}:LP2ADCM", offsetof(struct seqg_vars, linearPot2), "linearPot2", P_DOUBLE, 1, 23, 0, 1, 0, 0}, {"{S}:LP3ADCM", offsetof(struct seqg_vars, linearPot3), "linearPot3", P_DOUBLE, 1, 24, 0, 1, 0, 0}, {"{S}:LP5ADCM", offsetof(struct seqg_vars, linearPot5), "linearPot5", P_DOUBLE, 1, 25, 0, 1, 0, 0}, {"{S}:LP6ADCM", offsetof(struct seqg_vars, linearPot6), "linearPot6", P_DOUBLE, 1, 26, 0, 1, 0, 0}, {"{S}:LP7ADCM", offsetof(struct seqg_vars, linearPot7), "linearPot7", P_DOUBLE, 1, 27, 0, 1, 0, 0}, {"{S}:CALMSG1", offsetof(struct seqg_vars, calMsg1), "calMsg1", P_STRING, 1, 28, 0, 0, 0, 0}, {"{S}:CALMSG2", offsetof(struct seqg_vars, calMsg2), "calMsg2", P_STRING, 1, 29, 0, 0, 0, 0}, {"{S}:CALMSG3", offsetof(struct seqg_vars, calMsg3), "calMsg3", P_STRING, 1, 30, 0, 0, 0, 0}, {"{S}:EXCTTNADCM", offsetof(struct seqg_vars, voltage), "voltage", P_FLOAT, 1, 31, 0, 0, 0, 0}, {"{S}:CALVOLTAVG", offsetof(struct seqg_vars, voltageAvg), "voltageAvg", P_FLOAT, 1, 32, 0, 0, 0, 0}, {"{S}:CALCAMANGLE", offsetof(struct seqg_vars, camAngle), "camAngle", P_FLOAT, 180, 33, 0, 0, 0, 0}, {"{S}:CALCAMPOT", offsetof(struct seqg_vars, camPotentiometer), "camPotentiometer", P_DOUBLE, 180, 34, 0, 0, 0, 0}, {"{S}:CALGDRPOT1", offsetof(struct seqg_vars, girderPotentiometer1), "girderPotentiometer1", P_DOUBLE, 180, 35, 0, 0, 0, 0}, {"{S}:CALGDRPOT2", offsetof(struct seqg_vars, girderPotentiometer2), "girderPotentiometer2", P_DOUBLE, 180, 36, 0, 0, 0, 0}, {"{S}:CALGDRPOT3", offsetof(struct seqg_vars, girderPotentiometer3), "girderPotentiometer3", P_DOUBLE, 180, 37, 0, 0, 0, 0}, {"{S}:CALGDRPOT5", offsetof(struct seqg_vars, girderPotentiometer5), "girderPotentiometer5", P_DOUBLE, 180, 38, 0, 0, 0, 0}, {"{S}:CALGDRPOT6", offsetof(struct seqg_vars, girderPotentiometer6), "girderPotentiometer6", P_DOUBLE, 180, 39, 0, 0, 0, 0}, {"{S}:CALGDRPOT7", offsetof(struct seqg_vars, girderPotentiometer7), "girderPotentiometer7", P_DOUBLE, 180, 40, 0, 0, 0, 0}, }; /* Event masks for state set "camCal" */ static const seqMask seqg_mask_camCal_0_init[] = { 0x00000000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_checkPVsConnected[] = { 0x00000000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_waitForCommand[] = { 0x0000007c, 0x00000000, }; static const seqMask seqg_mask_camCal_0_waitForPVconnect[] = { 0x00380000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_zeroCAM[] = { 0x00180000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_calCAMx[] = { 0x00000000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_checkAbortCAMx[] = { 0x00000002, 0x00000000, }; static const seqMask seqg_mask_camCal_0_moveCAMx[] = { 0x00000000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_checkCAMx[] = { 0x00180000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_readADCx[] = { 0x00000000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_calculate[] = { 0x00000000, 0x00000000, }; static const seqMask seqg_mask_camCal_0_storeData[] = { 0x00000000, 0x00000000, }; /* State table for state set "camCal" */ static seqState seqg_states_camCal[] = { { /* state name */ "init", /* action function */ seqg_action_camCal_0_init, /* event function */ seqg_event_camCal_0_init, /* entry function */ seqg_entry_camCal_0_init, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_init, /* state options */ (0) }, { /* state name */ "checkPVsConnected", /* action function */ seqg_action_camCal_0_checkPVsConnected, /* event function */ seqg_event_camCal_0_checkPVsConnected, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_checkPVsConnected, /* state options */ (0) }, { /* state name */ "waitForCommand", /* action function */ seqg_action_camCal_0_waitForCommand, /* event function */ seqg_event_camCal_0_waitForCommand, /* entry function */ seqg_entry_camCal_0_waitForCommand, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_waitForCommand, /* state options */ (0) }, { /* state name */ "waitForPVconnect", /* action function */ seqg_action_camCal_0_waitForPVconnect, /* event function */ seqg_event_camCal_0_waitForPVconnect, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_waitForPVconnect, /* state options */ (0) }, { /* state name */ "zeroCAM", /* action function */ seqg_action_camCal_0_zeroCAM, /* event function */ seqg_event_camCal_0_zeroCAM, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_zeroCAM, /* state options */ (0) }, { /* state name */ "calCAMx", /* action function */ seqg_action_camCal_0_calCAMx, /* event function */ seqg_event_camCal_0_calCAMx, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_calCAMx, /* state options */ (0) }, { /* state name */ "checkAbortCAMx", /* action function */ seqg_action_camCal_0_checkAbortCAMx, /* event function */ seqg_event_camCal_0_checkAbortCAMx, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_checkAbortCAMx, /* state options */ (0) }, { /* state name */ "moveCAMx", /* action function */ seqg_action_camCal_0_moveCAMx, /* event function */ seqg_event_camCal_0_moveCAMx, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_moveCAMx, /* state options */ (0) }, { /* state name */ "checkCAMx", /* action function */ seqg_action_camCal_0_checkCAMx, /* event function */ seqg_event_camCal_0_checkCAMx, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_checkCAMx, /* state options */ (0) }, { /* state name */ "readADCx", /* action function */ seqg_action_camCal_0_readADCx, /* event function */ seqg_event_camCal_0_readADCx, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_readADCx, /* state options */ (0) }, { /* state name */ "calculate", /* action function */ seqg_action_camCal_0_calculate, /* event function */ seqg_event_camCal_0_calculate, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_calculate, /* state options */ (0) }, { /* state name */ "storeData", /* action function */ seqg_action_camCal_0_storeData, /* event function */ seqg_event_camCal_0_storeData, /* entry function */ 0, /* exit function */ 0, /* event mask array */ seqg_mask_camCal_0_storeData, /* state options */ (0) }, }; /* State set table */ static seqSS seqg_statesets[] = { { /* state set name */ "camCal", /* states */ seqg_states_camCal, /* number of states */ 12 }, }; /* Program table (global) */ seqProgram camCal = { /* magic number */ 2002004, /* program name */ "camCal", /* channels */ seqg_chans, /* num. channels */ 40, /* state sets */ seqg_statesets, /* num. state sets */ 1, /* user var size */ sizeof(struct seqg_vars), /* param */ "S={S}", /* num. event flags */ 0, /* encoded options */ (0 | OPT_DEBUG | OPT_NEWEF | OPT_REENT), /* init func */ seqg_init, /* entry func */ 0, /* exit func */ 0, /* num. queues */ 0 }; /* Register sequencer commands and program */ #include "epicsExport.h" static void camCalRegistrar (void) { seqRegisterSequencerCommands(); seqRegisterSequencerProgram (&camCal); } epicsExportRegistrar(camCalRegistrar);