Tags

...

CBIC Function tree (incomplete), might have useful info for understanding this page:
https://wiki.classe.cornell.edu/ACC/Bunch/FunctionTree

...

CBIC Start

Cycle through each instrument:

Verify connectivity

  • if connection attempt failed,
  • command power supply to ON
  • reset DSP using xbus
  • if fail too many times, then set active = CBI_INACTIVE

Set recovery = CBI_FALSE

Check CBI Communication Struct Version

  • if instrument and CBIC don't match, then set active = CBI_INACTIVE

Check CBPM Communication Struct Version

  • if instrument and CBIC don't match, then set active = CBI_INACTIVE

Check Timing Integrity

  • if cbi_heartbeat.timing_integrity is false, then set active = CBI_INACTIVE

Check Heartbeat

  • if cbi_heartbeat.heartbeat is bad, i.e. not changing, then set active = CBI_INACTIVE

Check Instrument status

  • if instrument status == CBI_F_HANDSHAKE_TIMEOUT, CBI_F_COMM_ERROR, or CBI_F_HANDSHAKE_ERROR, then set instrument in_recovery = CBI_TRUE
  • If in recovery, then call RESET AND INIT

...

Executing Commands:

happens in cbi_cesr_interface inside loop

Call PrepFunction

Copy_touched_structs

  • if fail to write to structure, then set active = CBI_INACTIVE

Call Cbi_Inst_Loop

  • if in_recovery = CBI_TRUE, and status not CBI_SUCCESS then set active = CBI_INACTIVE

Check Instrument status

  • if instrument status == CBI_F_HANDSHAKE_TIMEOUT, CBI_F_COMM_ERROR, or CBI_F_HANDSHAKE_ERROR, then set instrument in_recovery = CBI_TRUE
  • If in recovery, then call RESET AND INIT

Repeat steps in cbi_cesr_interface

...

-- MatthewStedinger - 08 Jan 2015
Topic revision: r4 - 12 Jan 2015, mgs9
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding CLASSE Wiki? Send feedback