SERIAL INTERFACE DEVELOPERS GUIDE 
opportunity.  In other words if the host intends on changing the current AGC mode and have that 
mode restored on subsequent boots – then two writes are required.  The first to change the global 
data structure and then a second to force an update of the nonvolatile RAM. 
6.4 Process Code Detection (CAMERA_STATUS) During various routines, during normal operation, the embedded software will set a process codes.  
This code can be read by the host application to indicate why a camera may not be responding as 
desired.  For example when the host requests a change in operational modes that triggers a change in 
the TEC setting, the camera may delay (freeze) for a minute or two while the TEC is allowed to 
stabilize.  The code is located in the ‘ProcessCode’ member of the CAMERA_STATUS data structure. 
The current process codes are listed below. 
/* Process Code Enumerations */ 
enum 
{ 
  PRC_UNDETERMINED = 0, 
 PRC_FPGA_TESTS, 
 PRC_OP_TESTS, 
 PRC_MEM_TESTS, 
 PRC_VIDENC_TESTS, 
 PRC_TEC_STABILIZING, 
 PRC_CAM_READY 
}; 
6.5 Progress Code Detection (CAMERA_STATUS) As the embedded software initializes hardware, performs built-in tests, and then enters the main 
operational loop, it sets progress codes.   Reading the codes allows the host to detect the software’s 
progress towards start of normal operation.  The code is located in the ‘ProgressCode’ member of the 
CAMERA_STATUS data structure. 
The current progress codes are listed below. 
/* Progress Code Enumerations */ 
enum 
{ 
  UNDETERMINED = 0, 
 UNCONFIGURED_CONTROLLER, 
 FAULT_DETECTED, 
 MAIN_START, 
 DRIVERS_INITIALIZED, 
 GLOBALS_INITIALIZED, 
 SYSTEM_RESET, 
 BOARD_ID_CONFIRM, 
 FPGA_PROGRAMMED, 
 FPGA_REGISTER_TEST, 
 CAMERA_OP_TEST_SETUP, 
 INIT_FPA_SUPPORT_PWR, 
 TEC_DRIVE_INITIALIZED, 
 SYSTEM_TESTS_COMPLETE, 
 CAL_FLAG_INITIALIZED, 
 ENTERING_MAIN_LOOP, 
 PALETTES_LOADED, 
 OP_MODE_LOADED, 
 OVERLAY_INITIALIZED, 
 TEC_STABILIZED, 
 CAMERA_READY 
}; 
 It is not required to take any action when reading these values but the host should not begin intensive 
communications with the camera until it has detected the CAMERA_READY progress code.  This 
code is set just before entering the main processing loop (normal operation). 
30