Beamline Instrument Software Support |
|
SPEC Macro documentation:
[ Macro Index |
BCU Home ]
|
ICE.MAC | ||||||
[ source code | installed at | configured at ] | ||||||
See other macros in category: Positioning Isg | ||||||
Description:
| ||||||
Documentation:
| ||||||
Macros:
Usage: icepap_brief_messages [on|off] Switch on (default) brief messages on motors powering error during the reconfig. icepap_diagnostic Usage: icepap_diagnostic motor Print out information on the specified ICEPAP motor icepap_info Usage: icepap_info [hostname|motor] Print out information on the specified ICEPAP system or on an ICEPAP motor configured in the current SPEC session. icepap_mem_info Usage: icepap_mem_info motor | hostname [addr [addr ... ]] Print out detailed memory information for the specified DRIVERs The DRIVER can be specified by their address or by the corresponding motor already configured. If only an IcePAP system is given, all its DRIVERs will be print out. icepap_firmware_check Usage: icepap_firmware_check [hostname|motor] Check the firmware version(s) of the specificied ICEPAP system or ICEPAP motor configured in the current SPEC session. icepap_reset Usage: icepap_reset [hostname[:port]] Reset all the racks of the specified ICEPAP MASTER icepapenc_read Usage: icepapenc_read (<counter_mnemonic>) Returns value of encoder associated to macro-counter <encoder_mnemonic>. This function is similar to the previous one but provided to be user-callable by beeing more user-friendly. icepap_setenc Usage: icepap_setenc counter position icepap_all Usage: icepap_all hostname cmd [args] Execute the specified command with its args on all ICEPAP modules (MASTER, SLAVES and DRIVERS) known by the hostname. Note that quotes must be used when cmd includes a hash for the acknowledge. icepap_all_esrf Usage: icepap_all_esrf [option] cmd Execute the specified command with its args on all ESRF ICEPAP systems which follow the naming convention (hostname starting with "ice...") The option could be "slaves" to execute the command only on MASTERS and SLAVES modules. upgrade_firmware_1_22 Usage: upgrade_firmware_1_22 hostname Upgrade the specified icepap system from firmware 1.22 to 2.0 If called from SPEC wizard mode, the security of the mandatory same subnetwork is bypassed. icepap_alldis Usage: icepap_alldis hostname Will try to guess if the DISDIS parameter is really needed on each DRIVER of the specified ICEPAP systerm. If not needed, the macro will remove it. WARNING: this macro is for temporary usage only. icepap Usage: icepap [hostname[:port]] Console implementation to communicate to icepap MASTER icepap_rprog Usage: icepap_rprog [hostname[:port] [file] [rack ... ]] Program a the ICEPAP specified list of racks using the rack back plane serial line. icepap_prog Usage: icepap_prog [hostname[:port] [file] [addr] [options]] Program a the ICEPAP module with the specified binary file icepap_history Usage: icepap_history Print out the history of commands sent to ICEPAP systems linkedstat Usage: linkedstat virtual_axis [virtual_axis...] Display information about the given virtual axis configured as a motor in the current SPEC session. The list of real axes linked together should not be configured but can be accessed through dedicated commands (linkedmv, linkedhome, etc). linkedsync Usage: linkedsync virtual_axis position Synchronizes all real linked axes members of the given virtual axis to the give position. No motion will take place. The position is given in user units of the virtual axis. linkedhome Usage: linkedhome ["strict"] real_axis "home+"|"home-" [[real_axis "home+"|"home-"]...] Launch a homing sequence on the given list of real linked axes. If the strict option is given then the first real linked axis that finds its home switch will stop the homing sequence of the other axes. The macros does not wait for the end of the homing sequence. linkedmv Usage: linkedmv real_axis posititon [[real_axis posititon] ...] Move the specified real linked axes to absolute positions. The positions are given in user units of the virtual axis of which the real axes are members. linkedmvr Usage: linkedmvr real_axis relative-posititon [[real_axis relative-posititon] ...] Move the specified real linked axes to relative positions. The positions are given in user units of the virtual axis of which the real axes are member. linkedresetclosedloop Usage: linkedresetclosedloop real_axis [real_axis ...] In case of closed error on a real linked axis, this macro has to be called to resynchronize the motor and its encoder. The power will be also put back. linkedopenclosedloop Usage: linkedopenclosedloop real_axis [real_axis ...] Open the closed loop on the specified real linked axes. The power is not touched. linkedreset Usage: linkedreset virtual_axis Synchronizes all real linked axes members of the given virtual axis to the give position. No motion will take place. ecamsetup Usage: ecamsetup motor source signal {pos_array}|{pos_first pos_last npos} Configure for the given motor source which kind of signal will be generated and at which positions. These ones can be given as an array of motor source positions or only as the beginning and ending positions with the number of positions. Example: short array listpos[10] array_op("fill", listpos, 100) ecamsetup m2 AXIS PULSE listpos ecamlist m2 ecamlist m2 clear ecamlist Usage: ecamlist motor [clear] Print out current position list information for the given motor. Or remove already loaded position list. ecamon Usage: ecamon motor ecamoff Usage: ecamoff motor poslistsetup Usage: poslistsetup motor {cyclic|nocyclic} {pos_array}|{pos_first pos_last npos} Define for the given motor a list of positions that will be used cyclicelly or not. These positions can be given as an array of motor positions or as the beginning/ending positions plus the total number of positions. The positions are given in steps. Example: long array listpos[11] array_op("fill", listpos, 100) poslistsetup m2 nocyclic listpos poslist m2 poslist m2 clear poslistmv m2 2 poslist Usage: poslist motor [clear] Print out current position list information for the given motor. Or remove already loaded position list. poslistmv Usage: poslistmv motor index Move the given motor at the position corresponding to the given index within a pre-configured positions list. The index can be float, then the target position will be interpolated inbetween the two nearest pre-configured positions. The macro waits for the end of the motion. poslisttrackon Usage: poslisttrackon motor source_signal [start_index] The given motor will track the given source signal and move within the previously loaded list of positions starting from the position corresponding to the optional given index in the list. poslisttrackoff Usage: poslisttrackoff motor The given motor will no more track a signal. Its position is silently updated. | ||||||
Internal Macros: | ||||||
Usage: icepapdebug [personal msg] Switch on or off the print of debug messages icepap_fiforst Usage: icepap_fiforst(dev) Reset socket communication and MASTER FIFOs icepap_cleanup Usage: icepap_cleanup(dev) Called on <Ctrl-C> icepapdebug_init Usage: icepapdebug_init Needed to initialize debug print out macro the first time the file is loaded. icepap__tocase Usage: icepap__tocase (string, case) Convert to lower (case==1) or to upper (case==0) case the string passed icepap__tolower Usage: icepap__tolower (string) Return the lower string of the string passed icepap__toupper Usage: icepap__toupper (string) Return the upper string of the string passed icepap_trim Usage: icepap_trim (string) icepap_round Usage: icepap_round (x) Return a well rounded integer as opposed to int() which always round down icepap_chkerr Usage: icepap_chkerr (ans) Check if the answer given contains an ERROR and if yes request the error message icepap_config Usage: icepap_config(num,type,p1,p2,p3) icepap_par Usage: icepap_par(num,key,todo,p1) _icepap_prestart_all Usage: _icepap_prestart_all(dev) _icepap_start_all Usage: _icepap_start_all(dev) _icepap_start_one Usage: _icepap_start_one(dev, addr, pos) icepap_cmd Usage: icepap_cmd(num,key,p1,p2) _icepap_print_info Usage: _icepap_print_info (dev,addr,mne) _icepap_print_info_driver Usage: _icepap_print_info_driver (dev,addr) TODO: unify with icepap_info macro _icepap_print_tabbed Usage: _icepap_print_tabbed(tab,str) _icepap_print_info_mot Usage: _icepap_print_info_mot (motor) _icepap_print_info_system Usage: _icepap_print_info_system (hostname) _icepap_fw_check_mot Usage: _icepap_fw_check_mot (motor) _icepap_fw_check_system Usage: _icepap_fw_check_system (hostname) _icepap_fw_compare Usage: _icepap_fw_compare (rev1, rev2) Compare deux revisions, given as strings, and returns: 0 if rev1 equal rev2 1 if rev1 > rev2 2 if rev1 < rev2 -1 if invalid revision numbers _icepap_fw_controller Usage: _icepap_fw_controller (hostname) Returns, for the specified system, the firmware version of the CONTROLLER _icepap_fw_driver Usage: _icepap_fw_driver (hostname, addr) Returns, for the specified system, the firmware version of the DRIVER specified by its address. _icepap_mem_driver Usage: _icepap_mem_driver (hostname, addr) Print out, for the specified system, detailed memory information of the DRIVER specified by its address. Returns non null if error occured. _icepap_fw_saved Usage: _icepap_fw_saved (hostname) Returns, for the specified system, the firmware version saved in flash icepap_lock Usage: icepap_lock axis CONFIG LOCK: Add a lock on the specified axis (ex: 0/2) icepap_unlock Usage: icepap_unlock axis CONFIG LOCK: Remove a lock on the specified axis (ex: 0/2) _icepap_islockfile Usage: _icepap_islockfile() CONFIG LOCK: Check that lock file exist and create empty if not _icepap_lock Usage: _icepap_lock (axis,lock) CONFIG LOCK: Add or remove (lock=1 or 0) a lock on the specified axis (ex: 0/2) _icepap_islock Usage: _icepap_islock (axis) CONFIG LOCK: Return 1 if a lock exist for the specified axis (ex: 0/2) Return 0 if there is no lock. Return -1 in case of error. _icepapcnt_gettemp Usage: _icepapcnt_gettemp (hostname:port, address) icepapcnt_config Usage: icepapcnt_config(num,type,p1,p2,p3) icepapcnt_cmd Usage: icepapcnt_cmd(num,key,p1,p2) _icepapenc_getpos Usage: _icepapenc_getpos (<counter_number>, <hostname:port>, <address>) _icepapenc_setpos Usage: _icepapenc_setpos (counter, hostname:port, address, pos) _icepap_setenc Usage: _icepap_setenc (counter_mne, position) icepapenc_config Usage: icepapenc_config(num,type,p1,p2,p3) icepapenc_cmd Usage: icepapenc_cmd(num,key,p1,p2) icepapcalc_config Usage: icepapcalc_config(num,typ,p1,p2,p3) icepapcalc_cmd Usage: icepapcalc_cmd(num,key,p1,p2) icepapmeas_config Usage: icepapmeas_config(num,type,p1,p2,p3) icepapmeas_cmd Usage: icepapmeas_cmd(num,key,p1,p2) _icepap_all Usage: _icepap_all (hostname, cmd, prefix_string) _icepap_rid_esrf Usage: _icepap_rid_esrf [hostname [hostname [...]]] Print out the rack ID of all ESRF ICEPAP racks _icepap_get_all_hostnames Usage: _icepap_get_all_hostnames (host[]) Fills the given associative array with all ICEPAP hostnames found in DNS and which start with "ice..." Returns the number of system or -1 if error occured. _icepap_get_addrs Usage: _icepap_get_addrs (hostname, slaves_only) Returns the addresses of all ICEPAP modules alive on the specficed hostname. The addresses are returned in a single string, blank separated. _is_package_installed Usage: _is_package_installed (bliss_package_name) _is_same_subnetwork Usage: _is_same_subnetwork (icepap_hostname) _is_valid_version Usage: _is_valid_version (firmwares_list) _is_alive Usage: _is_alive (icepap_hostname) _emulate_alldis Usage: _emulate_alldis (dev, addr_list) Bypass external disable signal on the list of drivers given. (this was done with DISDIS command on old firmwares <2.0) Works only on firmware >=2.0 _emulate_onedis Usage: _emulate_onedis (dev, addr) Bypass external disable signal on the driver given. (this was done with DISDIS command on old firmwares <2.0) Works only on firmware >=2.0 _icepap_alldis Usage: _icepap_alldis(dev, silent) _icepap_getdev Usage: _icepap_getdev (string, n) Parse the string to get the ICEPAP device to talk to. Try to get as nth argument (starting from 1) in the string, if not prompt the user. _icepap_getfname Usage: _icepap_getfname (string, n) Parse the string to get the ICEPAP tocho file. Try to get as nth argument (starting from 1) in the string, if not prompt the user. _icepap_getaddr Usage: _icepap_getaddr (string, n) Parse the string to get the addr for programming. Try to get as nth argument (starting from 1) in the string, if not prompt the user. _icepap_getopts Usage: _icepap_getopts (string, n) Parse the string to get the options for programming. Try to get as nth argument (starting from 1) in the string, if not prompt the user. Any remaining argument is also return as option. _icepap_checkprog Usage: _icepap_checkprog (dev, filename, address, options) Check that the giving programming options are compatible with system to upgrade. Returns non null if error. _icepap_getracks Usage: _icepap_getracks (string, n) Parse the string to get the rack addresses for programming. Try to get as nth argument (starting from 1) in the string, if not prompt the user. Any remaining argument is also return as option. _icepap_prog Usage: _icepap_prog (dev,fname,addr,opt) Program a the ICEPAP module with the specified arguments. If no firmware file name is given, the programmatino will used the firmware saved in the controller flash. _icepap_wrbin Usage: _icepap_wrbin (dev,fname) Send the contain of the file to the ICEPAP using the ISG binary transfer protocol. icepap_mdspreset Usage: icepap_mdspreset [hostname:port] Reset the MASTER DSP icepap_ddsppgm_sl Usage: icepap_ddsppgm_sl [hostname:port [driver]] Program one or all DRIVER DSP numbered from 1 to 8 using the backplane serial line and the DDSP programm taken from MDSP flash (no binary transferred) _icepap_check Usage: _icepap_check (hostname:port) Do not touch, needed by the "raleur" _icepap_close Usage: _icepap_close (hostname:port) _icepap_err Usage: _icepap_err _icepap_warn Usage: _icepap_warn _icepap_postmove Usage: _icepap_postmove (num, status) _icepap_stopcode Usage: _icepap_stopcode (num, status) Decode stop reason for the driver status given. No action, print only for diagnostic _icepap_stopcode2str Usage: _icepap_stopcode2str (mne, stop_code) Returns a string describing the given stop code for the given motor. _icepap_wr Usage: _icepap_wr (dev,addr,cmd) _icepap_lastchar Usage: _icepap_lastchar (ans) Returns the last valid char of the IcePAP answer. The terminator chars are ignored. _icepap_wrrd Usage: _icepap_wrrd (dev,addr,cmd) _icepap_query Usage: _icepap_query (dev,addr,cmd,silent) _icepap_patch Usage: _icepap_patch () Temporary patch _icepap_patch_email Usage: _icepap_patch_email () Temporary email after patch _icepap_email Usage: _icepap_email (message) Send an email with the specificied patch _icepap_hist_init Usage: _icepap_hist_init () Init the ICEPAP history if needed _icepap_hist_add Usage: _icepap_hist_add (dev,cmd) Add to the ICEPAP history an entry _icepap_hist_append Usage: _icepap_hist_append (str) Append a string to the last line in the ICEPAP history _icepap_hist_dump Usage: _icepap_hist_dump () Return a string with the history of commands sent to ICEPAP systems _icepap_ismot Usage: _icepap_ismot (motor_mne) Returns non null if the given motor mne is not an IcePAP one icepap_duplicate_conf Usage: icepap_duplicate_conf (dev,src_addr,dst_addr) Will copy the source driver configuration to the destination one (bypass of icepapcms) ex: ("iceid207",11,25) _lvcheck_mne Usage: _lvcheck_mne _lvcheck_mne(virtual_axis_mne) Returns non null if the given axis mnemonic is not a valid virtual axis composed of real linked axes. _lrcheck_mne Usage: _lrcheck_mne _lrcheck_mne(real_axis_mne) Returns non null if the given axis mnemonic is not a real linked axis member of a virtual axis. _linkedstat Usage: _linkedstat (linked_axis) Update the global array ICEPAP[] with information about the given virtual axis. Returns non null if an error occured. _linkedsync Usage: _linkedsync (virtual_axis_mne, position) Synchronizes all real linked axes members of the given virtual axis to the give position. No motion will take place. The position is given in user units of the virtual axis. Returns non null if an error occured. _linkedhome Usage: _linkedhome ("mne "home+"|"home-" [[mne "home+"|"home-"]...]", mode) Launch a homing sequence on the given list of real linked axes. If the mode option is set to "strict" then the first real linked axis that finds its home switch will stop the homing sequence of the other axes. The global ICEPAP[] will then contains the name and the home position of this real axis. The macros does not wait for the end of the homing sequence. Returns non null if an error occured. _linkedmvr Usage: _linkedmvr (real_axis_mne, relative_position) _linkedmv Usage: _linkedmv ("mne posititon [[mne position]...]") Move the specified real linked axes to absolute positions. Returns non null if an error occured. _linked_clean_cleanup Usage: _linked_clean_cleanup () Needed to avoid side effects on <ctrl-C> _linked_stop Usage: _linked_stop ("dev=addr [addr...]") Stop the motion on the speficied axis identified by their address _linkedresetclosedloop Usage: _linkedresetclosedloop ("mne [mne ...]") Reset closed loop error on the specified real linked axes. Returns non null if an error occured. _linkedopenclosedloop Usage: _linkedopenclosedloop ("mne [mne ...]") Open the closed loop on the specified real linked axes. Returns non null if an error occured. _linkedreset Usage: _linkedreset (virtual_axis_mne) Synchronizes all real linked axes members of the given virtual axis to the give position. No motion will take place. Returns non null if an error occured. _ecamsetup Usage: _ecamsetup (motor, source, signal, posbeg, posend, npos) Returns non null if an error occured. _ecamaction Usage: _ecamaction (motor, action) Swith "ON" of "OFF" the electronic cam on the given axis which must have been previously configured with "ecamdat" macro. Returns non null if an error occured. _poslistsetup Usage: _poslistsetup (motor, mode, posbeg, posend, npos) or (motor, mode, posarray) Define for the given motor a list of positions. Returns non null if an error occured. _poslistmv Usage: _poslistmv (motor, index) Move the given motor at the position corresponding to the given index within a pre-configured positions list. The index can be float, then the target position will be interpolated inbetween the two nearest pre-configured positions. The function waits for the end of the motion. Returns non null if an error occured. _poslist_stop Usage: _poslist_stop (motor) Stop the motion on the speficied motor and resynchronize silently SPEC position _poslisttrackon Usage: _poslisttrackon (motor, src_sig) or (motor, src_sig, idx) The given motor will track the given source signal and move within the previously loaded list of positions starting from the position corresponding to the optional given index in the list. Returns non null if an error occured. _poslisttrackoff Usage: _poslisttrackoff (motor) The given motor will no more track a signal. _icepap_send_array Usage: _icepap_send_array (dev, addr, cmd, array, silent) Send the binary command with its data given in a SPEC data array. Supported types for the array are: short (16bits) ushort (16bits) ulong (32bits) float (32bits) double (64bits) Example: ushort array shdata[4] array_op("fill",shdata,2,2) _icepap_send_array("isgtmp5","#0","*ISG BINDATA WORD 4",shdata) _icepap_send_ushortarray Usage: _icepap_send_ushortarray (dev, addr, cmd, array, silent) Send the binary command with its data given in a SPEC ushort data array. _icepap_array_size Usage: _icepap_array_size (array) Returns the size in bytes of the data type of the given array. Otherwise -1 if not supported array type _icepap_array_type Usage: _icepap_array_type (array) Returns a string corresponding to IcePAP data type Otherwise "ERROR" if not supported array type _icepap_get_ushortarray Usage: _icepap_get_ushortarray (dev,addr,cmd,array) NOT IMPLEMENTED YET | ||||||
|