CHDK Wiki
Register
m (→‎All Scripting Functions: made print_screen() a Y for uBASIC)
(38 intermediate revisions by 5 users not shown)
Line 12: Line 12:
 
|-
 
|-
 
|[[User_Written_Scripts|User Written Scripts]]
 
|[[User_Written_Scripts|User Written Scripts]]
  +
|[[PropertyCase|Property Case Values]]
 
|-
  +
|[[CHDK_Manual_Focus_and_Subject_Distance_Overrides|Manual Focus]]
 
|
 
|}
 
|}
   
Line 32: Line 36:
 
|[[Lua/PTP_Scripting|Lua PTP Scripting]]
 
|[[Lua/PTP_Scripting|Lua PTP Scripting]]
 
|-
 
|-
|[[Lua/Drawings|Lua Drawings]]
+
|[[Lua/Lua_Reference#Drawings|Lua Drawings]]
 
|[[Lua/Lua_Reference/Native_Function_Calls#call_event_proc.28name.2C....29|Native Function Calls]]
 
|[[Lua/Lua_Reference/Native_Function_Calls#call_event_proc.28name.2C....29|Native Function Calls]]
 
|-
 
|-
  +
| [[Lua_Development_Environment|Lua Development Environment]]
 
| [http://www.lua.org/manual/5.1/ Lua 5.1 Reference Manual ]
 
| [http://www.lua.org/manual/5.1/ Lua 5.1 Reference Manual ]
 
|}
 
|}
Line 72: Line 77:
 
| align="center" | [[Script_commands#get_zoom_steps | get_zoom_steps ]]||Y||Y||returns the number of zoom steps supported by the camera
 
| align="center" | [[Script_commands#get_zoom_steps | get_zoom_steps ]]||Y||Y||returns the number of zoom steps supported by the camera
 
|-
 
|-
| align="center" | [[Script_commands#set_aflock | set_aflock ]]||Y||Y||locks the lens focus at the current position
+
| align="center" | [[Script_commands#set_aflock | set_aflock ]]||Y||Y||disables automatic focus adjustments
  +
|-
 
| align="center" | [[Script_commands#set_mf | set_mf ]]||Y||Y||engages Canon manual focus mode (CHDK 1.3.0 or greater)
  +
|-
  +
| align="center" | [[Script_commands#set_aelock | set_aelock ]]||Y||Y||disables automatic exposure adjustments (CHDK 1.3.0 or greater)
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#set_focus_.2F_get_focus | set_focus ]]||Y||Y||sets current focus distance in mm
 
| align="center" | [[CHDK_scripting#set_focus_.2F_get_focus | set_focus ]]||Y||Y||sets current focus distance in mm
Line 116: Line 125:
 
| align="center" | [[CHDK_scripting#get_user_av_id | get_av ]]||N||Y||obsolete - replaced with get_user_av_id
 
| align="center" | [[CHDK_scripting#get_user_av_id | get_av ]]||N||Y||obsolete - replaced with get_user_av_id
 
|-
 
|-
| align="center" | [[CHDK_scripting#get_av96 | get_av96 ]]||Y||Y||gets APEX96 aperature value
+
| align="center" | [[CHDK_scripting#get_av96 | get_av96 ]]||Y||Y||gets APEX96 aperture value
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#get_bv96 | get_bv96 ]]||Y||Y||gets APEX96 luminance value
 
| align="center" | [[CHDK_scripting#get_bv96 | get_bv96 ]]||Y||Y||gets APEX96 luminance value
Line 136: Line 145:
 
| align="center" | [[CHDK_scripting#get_tv96 | get_tv96 ]]||Y||Y||gets APEX96 exposure time
 
| align="center" | [[CHDK_scripting#get_tv96 | get_tv96 ]]||Y||Y||gets APEX96 exposure time
 
|-
 
|-
| align="center" | [[CHDK_scripting#get_user_av_id | get_user_av_id ]]||Y||Y||gets M mode override APEX96 aperature value by index
+
| align="center" | [[CHDK_scripting#get_user_av_id | get_user_av_id ]]||Y||Y||gets M mode override APEX96 aperture value by index
 
|-
 
|-
| align="center" | [[CHDK_scripting#get_user_av_id | get_user_av96 ]]||Y||Y||gets APEX96 aperature value
+
| align="center" | [[CHDK_scripting#get_user_av_id | get_user_av96 ]]||Y||Y||gets APEX96 aperture value
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#get_user_tv_id | get_user_tv_id ]]||Y||Y||gets M mode override APEX96 exposure time by index
 
| align="center" | [[CHDK_scripting#get_user_tv_id | get_user_tv_id ]]||Y||Y||gets M mode override APEX96 exposure time by index
Line 148: Line 157:
 
| align="center" | [[CHDK_scripting#set_av_rel | set_av_rel ]]||N||Y||obsolete - replaced with set_user_ac_by_id_rel
 
| align="center" | [[CHDK_scripting#set_av_rel | set_av_rel ]]||N||Y||obsolete - replaced with set_user_ac_by_id_rel
 
|-
 
|-
| align="center" | [[CHDK_scripting#set_av96 | set_av96 ]]||Y||Y||sets the APEX96 aperature value
+
| align="center" | [[CHDK_scripting#set_av96 | set_av96 ]]||Y||Y||sets the APEX96 aperture value
 
|-
 
|-
| align="center" | [[CHDK_scripting#set_av96_direct | set_av96_direct ]]||Y||Y||sets the APEX96 aperature value (bypass validation check)
+
| align="center" | [[CHDK_scripting#set_av96_direct | set_av96_direct ]]||Y||Y||sets the APEX96 aperture value (bypass validation check)
 
|-
 
|-
 
| align="center" | [[Script_commands#set_ev | set_ev ]]||Y||Y||sets exposure adjustment amount
 
| align="center" | [[Script_commands#set_ev | set_ev ]]||Y||Y||sets exposure adjustment amount
Line 156: Line 165:
 
| align="center" | [[CHDK_scripting#set_iso_.2F_get_iso | set_iso ]]||N||Y||obsolete - replaced with set_iso_mode
 
| align="center" | [[CHDK_scripting#set_iso_.2F_get_iso | set_iso ]]||N||Y||obsolete - replaced with set_iso_mode
 
|-
 
|-
| align="center" | [[CHDK_scripting#set_iso_mode | set_iso_mode ]]||Y||Y||<needs a definition>
+
| align="center" | [[CHDK_scripting#set_iso_mode | set_iso_mode ]]||Y||Y||sets propcase PROPCASE_ISO_MODE
 
|-
 
|-
| align="center" | [[CHDK_scripting#set_iso_real | set_iso_real ]]||Y||Y||<needs a definition>
+
| align="center" | [[CHDK_scripting#set_iso_real | set_iso_real ]]||Y||Y||sets the sv96 override value base on ISO sensitivity value
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#set_nd_filter | set_nd_filter ]]||Y||Y||moves neutral density filter into or out of the optical path
 
| align="center" | [[CHDK_scripting#set_nd_filter | set_nd_filter ]]||Y||Y||moves neutral density filter into or out of the optical path
Line 172: Line 181:
 
| align="center" | [[CHDK_scripting#set_tv96_direct | set_tv96_direct ]]||Y||Y||set APEX96 exposure time (bypass validity checks)
 
| align="center" | [[CHDK_scripting#set_tv96_direct | set_tv96_direct ]]||Y||Y||set APEX96 exposure time (bypass validity checks)
 
|-
 
|-
| align="center" | [[CHDK_scripting#set_user_av_by_id | set_user_av_by_id ]]||Y||Y||set user override APEX96 aperature by index (M mode only)
+
| align="center" | [[CHDK_scripting#set_user_av_by_id | set_user_av_by_id ]]||Y||Y||set user override APEX96 aperture by index (M mode only)
 
|-
 
|-
| align="center" | [[CHDK_scripting#set_user_av_by_id_rel | set_user_av_by_id_rel ]]||Y||Y||set user override APEX96 aperature by index relative (M mode only)
+
| align="center" | [[CHDK_scripting#set_user_av_by_id_rel | set_user_av_by_id_rel ]]||Y||Y||set user override APEX96 aperture by index relative (M mode only)
 
|-
 
|-
| align="center" | [[CHDK_scripting#set_user_av96 | set_user_av96 ]]||Y||Y||set user override APEX96 aperature (M mode only)
+
| align="center" | [[CHDK_scripting#set_user_av96 | set_user_av96 ]]||Y||Y||set user override APEX96 aperture (M mode only)
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#set_user_tv_by_id | set_user_tv_by_id ]]||Y||Y||set user override APEX96 exposure time index (M mode only)
 
| align="center" | [[CHDK_scripting#set_user_tv_by_id | set_user_tv_by_id ]]||Y||Y||set user override APEX96 exposure time index (M mode only)
Line 183: Line 192:
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#set_user_tv96 | set_user_tv96 ]]||Y||Y||set user override APEX96 exposure time (M mode only)
 
| align="center" | [[CHDK_scripting#set_user_tv96 | set_user_tv96 ]]||Y||Y||set user override APEX96 exposure time (M mode only)
  +
|-
 
| align="center" | [[Lua/Lua_Reference#get_live_histo | get_live_histo ]]||Y||N|| Get a histogram of the live viewport
  +
|-
  +
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''APEX96 Conversion'''''
  +
| align="center" style="background:#06718e;"|
  +
| align="center" style="background:#06718e;"|
  +
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''Note : CHDK 1.3.0 or greater'''''
  +
|-
  +
| align="center" style="background:#e6e1e4;"|'''Function Link'''
  +
| align="center" style="background:#e6e1e4;"|'''Lua'''
  +
| align="center" style="background:#e6e1e4;"|'''uBASIC'''
  +
| align="left" style="background:#e6e1e4;"|'''Description'''
  +
|-
  +
| align="center" | [[Script_commands#iso_to_sv96 |iso_to_sv96 ]] ||Y||Y||converts ISO into sv96 units
  +
|-
  +
| align="center" | [[Script_commands#sv96_to_iso |sv96_to_iso ]] ||Y||Y||converts sv96 units to ISO
  +
|-
  +
| align="center" | [[Script_commands#iso_real_to_market |iso_real_to_market ]] ||Y||Y||converts ISO value from real to market
  +
|-
  +
| align="center" | [[Script_commands#iso_market_to_real |iso_market_to_real ]] ||Y||Y||converts ISO value from real to market
  +
|-
  +
| align="center" | [[Script_commands#sv96_real_to_market |sv96_real_to_market ]] ||Y||Y||converts sv96 value from real to market
  +
|-
  +
| align="center" | [[Script_commands#sv96_market_to_real |sv96_market_to_real ]] ||Y||Y||converts sv96 value from market to real
  +
|-
  +
| align="center" | [[Script_commands#aperture_to_av96 |aperture_to_av96 ]] ||Y||Y||converts f-stop to av96 units
  +
|-
  +
| align="center" | [[Script_commands#av96_to_aperture |av96_to_aperture ]] ||Y||Y||converts av96 value to f-stop
  +
|-
  +
| align="center" | [[Script_commands#usec_to_tv96 |usec_to_tv96 ]] ||Y||Y||converts shutter speed to tv96 units
  +
|-
  +
| align="center" | [[Script_commands#tv96_to_usec |tv96_to_usec ]] ||Y||Y||converts tv96 value to shutter speed
  +
|-
  +
| align="center" | [[Script_commands#seconds_to_tv96 |seconds_to_tv96 ]] ||Y||Y||converts fractional value to tv96 units
 
|-
 
|-
 
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''Camera Functions'''''
 
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''Camera Functions'''''
Line 243: Line 286:
 
|-
 
|-
 
| align="center" | [[Script_commands#restore | restore ]]||Y||Y||specifies the routine called before a script terminates
 
| align="center" | [[Script_commands#restore | restore ]]||Y||Y||specifies the routine called before a script terminates
|-
 
| align="center" | [[Script_commands#set_backlight.28.29 | set_backlight ]]||Y||Y||turns the LCD screen backlight on or off
 
 
|-
 
|-
 
| align="center" | [[Script_commands#set_capture_mode.28modenum.29 | set_capture_mode ]]||Y||Y||set capture mode by CHDK mode number
 
| align="center" | [[Script_commands#set_capture_mode.28modenum.29 | set_capture_mode ]]||Y||Y||set capture mode by CHDK mode number
Line 293: Line 334:
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#wheel_right | wheel_right ]]||Y||Y||simulates moving jog dial wheel to the right
 
| align="center" | [[CHDK_scripting#wheel_right | wheel_right ]]||Y||Y||simulates moving jog dial wheel to the right
  +
|-
  +
| align="center" | [[Script_commands#set_exit_key | set_exit_key ]]||Y||Y||changes the key used to terminate the script (CHDK 1.3.0 or greater)
 
|-
 
|-
 
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''SD Card Functions'''''
 
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''SD Card Functions'''''
Line 307: Line 350:
 
|-
 
|-
 
| align="center" | [[Script_commands#get_exp_count | get_exp_count ]]||Y||Y|| return number of shots in a session
 
| align="center" | [[Script_commands#get_exp_count | get_exp_count ]]||Y||Y|| return number of shots in a session
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#get_image_dir | get_image_dir ]]||Y||N|| get current image directory
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#file_browser.28path.29 | file_browser ]]||Y||N||activate SD card file browser on LCD screen
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#get_disk_size | get_free_disk_space ]]||Y||Y||return space left on SD card
 
| align="center" | [[CHDK_scripting#get_disk_size | get_free_disk_space ]]||Y||Y||return space left on SD card
Line 312: Line 359:
 
| align="center" | [[CHDK_scripting#get_jpg_count | get_jpg_count ]]||Y||Y||return number of JPG shots left on SD card
 
| align="center" | [[CHDK_scripting#get_jpg_count | get_jpg_count ]]||Y||Y||return number of JPG shots left on SD card
 
|-
 
|-
| align="center" | [[Script_commands#get_partitionInfo | get_partitionInfo ]]||Y||Y||get partition information from the SD card
+
| align="center" | [[Script_commands#get_partitionInfo | get_partitionInfo ]]||Y||N||get partition information from the SD card
 
|-
 
|-
| align="center" | [[Script_commands#set_file_attributes | set_file_attributes ]]||Y||Y||set file attributes of file on SD card
+
| align="center" | [[Script_commands#set_file_attributes | set_file_attributes ]]||Y||N||set file attributes of file on SD card
 
|-
 
|-
 
| align="center" | [[Script_commands#swap_partition | swap_partitions ]]||Y||Y||changes the partition order if SD card has multiple partitions
 
| align="center" | [[Script_commands#swap_partition | swap_partitions ]]||Y||Y||changes the partition order if SD card has multiple partitions
Line 331: Line 378:
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#end | end ]]||N||Y||terminate uBASIC program execution
 
| align="center" | [[CHDK_scripting#end | end ]]||N||Y||terminate uBASIC program execution
|-
 
| align="center" | [[Lua/Lua_Reference#file_browser.28path.29 | file_browser ]]||Y||Y||activate SD card file browser on LCD screen
 
 
|-
 
|-
 
| align="center" | [[Script_commands#get_autostart_.26_set_autostart | get_autostart ]]||Y||Y||reads the conf.script_autostart
 
| align="center" | [[Script_commands#get_autostart_.26_set_autostart | get_autostart ]]||Y||Y||reads the conf.script_autostart
Line 342: Line 387:
 
| align="center" | [[Script_commands#get_time | get_time ]]||Y||Y||returns elements of the camera\'s current date / time setting
 
| align="center" | [[Script_commands#get_time | get_time ]]||Y||Y||returns elements of the camera\'s current date / time setting
 
|-
 
|-
| align="center" | [[Script_commands#get_autostart_.26_set_autostart | set_autostart(a) ]]||Y||Y||write conf.script_autostart (0=off, 1=on, 2=once)
+
| align="center" | [[Script_commands#get_autostart_.26_set_autostart | set_autostart]]||Y||Y||write conf.script_autostart (0=off, 1=on, 2=once)
 
|-
 
|-
| align="center" | [[Script_commands#set_yield | set_yield ]]||Y||Y||control how much of the Camera CPU time is used by scripting engine
+
| align="center" | [[ Script_commands#set_yield | set_yield ]]||Y||Y||control how much of the Camera CPU time is used by scripting engine
 
|-
 
|-
 
| align="center" | [[CHDK_scripting#Sleep | sleep ]]||Y||Y||halts program execution for specified number of milliseconds
 
| align="center" | [[CHDK_scripting#Sleep | sleep ]]||Y||Y||halts program execution for specified number of milliseconds
Line 368: Line 413:
 
| align="center" | [[Lua/Lua_Reference/Levent#get_levent_index.28event.29 | get_levent_index ]]||Y||N||returns the index of the given event
 
| align="center" | [[Lua/Lua_Reference/Levent#get_levent_index.28event.29 | get_levent_index ]]||Y||N||returns the index of the given event
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference/Levent#post_levent_.2A.28event.2C.5Bunk.5D.29 | post_levent_for_npt ]]||Y||N||<needs a definition>
+
| align="center" | [[Lua/Lua_Reference/Levent#post_levent_.2A.28event.2C.5Bunk.5D.29 | post_levent_for_npt ]]||Y||N||Triggers a [[LogicalEvent]] in the Canon firmware.
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference/Levent | post_levent_to_ui ]]||Y||N||<needs a definition>
+
| align="center" | [[Lua/Lua_Reference/Levent | post_levent_to_ui ]]||Y||N||Triggers a [[LogicalEvent]] in the canon firmware.
 
|-
 
|-
 
| align="center" | [[Lua/Lua_Reference/Levent | set_levent_active ]]||Y||N||<needs a definition>
 
| align="center" | [[Lua/Lua_Reference/Levent | set_levent_active ]]||Y||N||<needs a definition>
Line 376: Line 421:
 
| align="center" | [[Lua/Lua_Reference/Levent | set_levent_script_mode ]]||Y||N||<needs a definition>
 
| align="center" | [[Lua/Lua_Reference/Levent | set_levent_script_mode ]]||Y||N||<needs a definition>
 
|-
 
|-
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''Text Console'''''
+
| align="left" style="color:#FFFFFF; background:#06718e;"|'''''Display & Text Console'''''
 
| align="center" style="background:#06718e;"|
 
| align="center" style="background:#06718e;"|
 
| align="center" style="background:#06718e;"|
 
| align="center" style="background:#06718e;"|
Line 385: Line 430:
 
| align="center" style="background:#e6e1e4;"|'''uBASIC'''
 
| align="center" style="background:#e6e1e4;"|'''uBASIC'''
 
| align="left" style="background:#e6e1e4;"|'''Description'''
 
| align="left" style="background:#e6e1e4;"|'''Description'''
  +
|-
  +
| align="center" | [[Script_commands#set_backlight.28.29 | set_backlight ]]||Y||Y||turns the LCD screen backlight on or off
  +
|-
  +
| align="center" | [[Script_commands#set_lcd_display.28.29 | set_lcd_display ]]||Y||Y||turns the LCD screen on or off
  +
|-
  +
| align="center" | [[Script_commands#set_draw_title_line | set_draw_title_line]]||Y||Y||turns the CHDK title line on or off  (CHDK 1.3.0 or greater)
  +
|-
  +
| align="center" | [[Script_commands#get_draw_title_line | get_draw_title_line]]||Y||Y||returns the current CHDK title state  (CHDK 1.3.0 or greater)
 
|-
 
|-
 
| align="center" | [[UBASIC/TutorialScratchpad#The_.22cls.22_Command | cls ]]||Y||Y||clear console screen
 
| align="center" | [[UBASIC/TutorialScratchpad#The_.22cls.22_Command | cls ]]||Y||Y||clear console screen
Line 408: Line 461:
 
| align="left" style="background:#e6e1e4;"|'''Description'''
 
| align="left" style="background:#e6e1e4;"|'''Description'''
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Drawings | draw_clear ]]||Y||N||clear drawing area on LCD screen
+
| align="center" | [[Lua/Drawings | draw.xxx ]]||Y||N||Lua drawing module
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Drawings | draw_ellipse ]]||Y||N||draws an ellipse on LCD screen
 
|-
 
|-
 
| align="center" | [[Lua/Lua_Reference#Drawings | draw_ellipse ]]||Y||N||draws an ellipse on LCD screen
 
| align="center" | [[Lua/Lua_Reference#Drawings | draw_ellipse ]]||Y||N||draws an ellipse on LCD screen
Line 423: Line 478:
 
|-
 
|-
 
| align="center" | [[Lua/Lua_Reference#Drawings | draw_string ]]||Y||N||prints a text string on LCD screen
 
| align="center" | [[Lua/Lua_Reference#Drawings | draw_string ]]||Y||N||prints a text string on LCD screen
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Drawings | get_gui_screen_width ]]||Y||N||returns screen width in pixels (CHDK 1.3.0 or greater)
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Drawings | get_gui_screen_height ]]||Y||N||returns screen height in pixels (CHDK 1.3.0 or greater)
 
|-
 
|-
 
| align="center" | [[Script_commands#textbox | textbox ]]||Y||N||input text function for Lua scripts
 
| align="center" | [[Script_commands#textbox | textbox ]]||Y||N||input text function for Lua scripts
Line 471: Line 530:
 
|-
 
|-
 
| align="center" | [[Script_commands#get_config_value | get_config_value ]]||Y||Y||get currently selected state of CHDK menu item
 
| align="center" | [[Script_commands#get_config_value | get_config_value ]]||Y||Y||get currently selected state of CHDK menu item
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#load_.26_save_CHDK_configuration_files | set_config_autosave ]]||Y||N|| on/off for the autosave function of the CHDK configuration (CHDK 1.3.0 or greater)
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#load_.26_save_CHDK_configuration_files | load_config_file ]]||Y||N||loads a CHDK configuration file (CHDK 1.3.0 or greater)
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#load_.26_save_CHDK_configuration_files | save_config_file ]]||Y||N||saves a CHDK configuration file (CHDK 1.3.0 or greater)
 
|-
 
|-
 
| align="center" | [[Script_commands#get_histo_range | get_histo_range ]]||Y||Y||return % if values in given range on histogram
 
| align="center" | [[Script_commands#get_histo_range | get_histo_range ]]||Y||Y||return % if values in given range on histogram
Line 541: Line 606:
 
|-
 
|-
 
| align="center" | [[Lua/PTP_Scripting#write_usb_msg | write_usb_msg ]]||Y||N||write a message via the CHDK ptp interface
 
| align="center" | [[Lua/PTP_Scripting#write_usb_msg | write_usb_msg ]]||Y||N||write a message via the CHDK ptp interface
  +
|-
  +
| align="center" | [[Lua/PTP_Scripting#usb_msg_table_to_string | usb_msg_table_to_string]]||Y||N|| User-definable callback used convert tables to string for write_usb_msg and PTP return
 
|-
 
|-
 
| align="center" | [[Lua/PTP_Scripting#switch_mode_usb | switch_mode_usb ]]||Y||N||set playback or record mode while PTP USB connected
 
| align="center" | [[Lua/PTP_Scripting#switch_mode_usb | switch_mode_usb ]]||Y||N||set playback or record mode while PTP USB connected
Line 580: Line 647:
 
| align="center" | [[Lua/Lua_Reference#Constants | imath.pi_2 ]]||Y||N||constant = 1517
 
| align="center" | [[Lua/Lua_Reference#Constants | imath.pi_2 ]]||Y||N||constant = 1517
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Helpers | imath.muldiv ]]||Y||N||a*b/c
+
| align="center" | [[Lua/Lua_Reference#Multiplication and Division | imath.muldiv ]]||Y||N||a*b/c
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Multiplication and Division | imath.mul ]]||Y||N||a*b
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Multiplication and Division | imath.div ]]||Y||N||a/b
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Conversions( degrees &lt;-&gt; radians ) | imath.rad ]]||Y||N||rad -> deg
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Conversions( degrees &lt;-&gt; radians ) | imath.deg ]]||Y||N||deg -> rad
  +
|-
  +
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.sinr ]]||Y||N||sin(rad)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Helpers | imath.mul ]]||Y||N||a*b
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.cosr ]]||Y||N||cos(rad)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Helpers | imath.div ]]||Y||N||a/b
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.tanr ]]||Y||N||tan(rad)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.rad ]]||Y||N||rad -> deg
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.asinr ]]||Y||N||arcsin(rad)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.deg ]]||Y||N||deg -> rad
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.acosr ]]||Y||N||arccos(rad)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.sinr ]]||Y||N||sin(rad)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.atanr ]]||Y||N||arctan(rad)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.cosr ]]||Y||N||cos(rad)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.polr ]]||Y||N||r, rad_alpha = pol(x, y)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.tanr ]]||Y||N||tan(rad)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (radians) | imath.recr ]]||Y||N||x, y = rec(r, rad_alpha)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.asinr ]]||Y||N||arcsin(rad)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.sind ]]||Y||N||sin(deg)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.acosr ]]||Y||N||arccos(rad)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.cosd ]]||Y||N||cos(deg)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.atanr ]]||Y||N||arctan(rad)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.tand ]]||Y||N||tan(deg)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.polr ]]||Y||N||r, rad_alpha = pol(x, y)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.asind ]]||Y||N||arcsin(deg)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#RAD | imath.recr ]]||Y||N||x, y = rec(r, rad_alpha)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.acosd ]]||Y||N||arccos(deg)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.sind ]]||Y||N||sin(deg)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.atand ]]||Y||N||arctan(deg)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.cosd ]]||Y||N||cos(deg)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.pold ]]||Y||N||r, deg_alpha = pol(x, y)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.tand ]]||Y||N||tan(deg)
+
| align="center" | [[Lua/Lua_Reference#Trigonometry (degrees) | imath.recd ]]||Y||N||x, y = rec(r, deg_alpha)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.asind ]]||Y||N||arcsin(deg)
+
| align="center" | [[Lua/Lua_Reference#Logarithmic | imath.pow ]]||Y||N||x^y
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.acosd ]]||Y||N||arccos(deg)
+
| align="center" | [[Lua/Lua_Reference#Logarithmic | imath.log ]]||Y||N||log(x)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.atand ]]||Y||N||arctan(deg)
+
| align="center" | [[Lua/Lua_Reference#Logarithmic | imath.log2 ]]||Y||N||log2(x)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.pold ]]||Y||N||r, deg_alpha = pol(x, y)
+
| align="center" | [[Lua/Lua_Reference#Logarithmic | imath.log10 ]]||Y||N||log10(x)
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#DEG | imath.recd ]]||Y||N||x, y = rec(r, deg_alpha)
+
| align="center" | [[Lua/Lua_Reference#Logarithmic | imath.sqrt ]]||Y||N||square root
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Other_functions | imath.pow ]]||Y||N||x^y
+
| align="center" | [[Lua/Lua_Reference#Integer Conversion and Rounding| imath.int ]]||Y||N||integer
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Other_functions | imath.log ]]||Y||N||log(x)
+
| align="center" | [[Lua/Lua_Reference#Integer Conversion and Rounding | imath.frac ]]||Y||N|| fractal
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Other_functions | imath.log2 ]]||Y||N||log2(x)
+
| align="center" | [[Lua/Lua_Reference#Integer Conversion and Rounding | imath.ceil ]]||Y||N|| ceil
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Other_functions | imath.log10 ]]||Y||N||log10(x)
+
| align="center" | [[Lua/Lua_Reference#Integer Conversion and Rounding | imath.floor ]]||Y||N||floor
 
|-
 
|-
| align="center" | [[Lua/Lua_Reference#Other_functions | imath.sqrt ]]||Y||N||square root
+
| align="center" | [[Lua/Lua_Reference#Integer Conversion and Rounding | imath.round ]]||Y||N||round
 
|-
 
|-
 
| align="center" style="background:#C0C0f0;"|
 
| align="center" style="background:#C0C0f0;"|

Revision as of 21:07, 5 April 2014

CHDK Scripting Links

CHDK Scripts CHDK Scripting
Script Commands Script Commands Stub
User Written Scripts Property Case Values
Manual Focus

uBASIC Links

uBASIC uBASIC Syntax
uBASIC Tutorial Scratchpad

Lua Links

Lua Lua Syntax
Lua Reference Lua PTP Scripting
Lua Drawings Native Function Calls
Lua Development Environment Lua 5.1 Reference Manual

Script Header Documentation

The Script Header Tutorial - The Script Header

All Scripting Functions

.

Lens Functions
Function Link Lua uBASIC Description
get_focus Y Y gets current focus distance in mm
get_focus_mode Y Y returns focus mode, 0=auto, 1=MF, 3=inf., 4=macro, 5=supermacro
get_focus_ok Y Y returns 0=focus not ok, 1=ok if get_focus_state<>0 and get_shooting=1
get_focus_state Y Y returns focus status, > 0 focus successful, =0 not successful, < 0 MF
get_IS_mode Y Y get image stabilization mode
get_zoom Y Y returns current zoom position
get_zoom_steps Y Y returns the number of zoom steps supported by the camera
set_aflock Y Y disables automatic focus adjustments
set_mf Y Y engages Canon manual focus mode (CHDK 1.3.0 or greater)
set_aelock Y Y disables automatic exposure adjustments (CHDK 1.3.0 or greater)
set_focus Y Y sets current focus distance in mm
set_zoom Y Y sets the current zoom position
set_zoom_rel Y Y moves zoom position a relative amount
set_zoom_speed Y Y sets zoom speed (only works on some cameras)
Depth of Field
Function Link Lua uBASIC Description
get_dofinfo Y - get DOF table (uBASIC commands below)
get_dof - Y get the depth of sharpness in mm
get_far_limit - Y get the far acceptable sharpness distance
get_near_limit - Y get near acceptable sharpness distance
get_focal_length - Y get current lens focal length
get_hyp_dist - Y get hyperfocal distance
Exposure Functions
Function Link Lua uBASIC Description
get_av N Y obsolete - replaced with get_user_av_id
get_av96 Y Y gets APEX96 aperture value
get_bv96 Y Y gets APEX96 luminance value
get_ev Y Y get exposure adjustment amount
get_iso N Y obsolete - replaced with get_iso_mode
get_iso_market Y Y get inflated marketing ISO value
get_iso_mode Y Y obtain ISO mode
get_iso_real Y Y get actual ISO value
get_nd_present Y Y returns whether camera has an ND filter (and / or diaphragm )
get_sv96 Y Y gets APEX96 ISO sensitivity setting
get_tv96 Y Y gets APEX96 exposure time
get_user_av_id Y Y gets M mode override APEX96 aperture value by index
get_user_av96 Y Y gets APEX96 aperture value
get_user_tv_id Y Y gets M mode override APEX96 exposure time by index
get_user_tv96 Y Y gets M mode override APEX96 exposure value
set_av N Y obsolete - replaced with set_user_av_by_id
set_av_rel N Y obsolete - replaced with set_user_ac_by_id_rel
set_av96 Y Y sets the APEX96 aperture value
set_av96_direct Y Y sets the APEX96 aperture value (bypass validation check)
set_ev Y Y sets exposure adjustment amount
set_iso N Y obsolete - replaced with set_iso_mode
set_iso_mode Y Y sets propcase PROPCASE_ISO_MODE
set_iso_real Y Y sets the sv96 override value base on ISO sensitivity value
set_nd_filter Y Y moves neutral density filter into or out of the optical path
set_sv96 Y Y set APEX96 ISO sensitivity value
set_tv N Y obsolete - replaced with set_user_tv_by_id
set_tv_rel N Y obsolete - replaced with set_user_tv_by_id_rel
set_tv96 Y Y set APEX96 exposure time
set_tv96_direct Y Y set APEX96 exposure time (bypass validity checks)
set_user_av_by_id Y Y set user override APEX96 aperture by index (M mode only)
set_user_av_by_id_rel Y Y set user override APEX96 aperture by index relative (M mode only)
set_user_av96 Y Y set user override APEX96 aperture (M mode only)
set_user_tv_by_id Y Y set user override APEX96 exposure time index (M mode only)
set_user_tv_by_id_rel Y Y set user override APEX96 exposure time index offset (M mode only)
set_user_tv96 Y Y set user override APEX96 exposure time (M mode only)
get_live_histo Y N Get a histogram of the live viewport
APEX96 Conversion Note : CHDK 1.3.0 or greater
Function Link Lua uBASIC Description
iso_to_sv96 Y Y converts ISO into sv96 units
sv96_to_iso Y Y converts sv96 units to ISO
iso_real_to_market Y Y converts ISO value from real to market
iso_market_to_real Y Y converts ISO value from real to market
sv96_real_to_market Y Y converts sv96 value from real to market
sv96_market_to_real Y Y converts sv96 value from market to real
aperture_to_av96 Y Y converts f-stop to av96 units
av96_to_aperture Y Y converts av96 value to f-stop
usec_to_tv96 Y Y converts shutter speed to tv96 units
tv96_to_usec Y Y converts tv96 value to shutter speed
seconds_to_tv96 Y Y converts fractional value to tv96 units
Camera Functions
Function Link Lua uBASIC Description
get_capture_mode N Y gets current camera Program mode setting
get_display_mode N Y returns state of LCD display info
get_drive_mode Y Y returns shutter drive mode (single, continuous, timer )
get_flash_mode Y Y returns flash mode (flash auto, flash on, flash off)
get_flash_params_count Y N returns # of flash memory parameters available in camera
get_flash_ready Y Y returns status indicating if flash is ready to fire
get_meminfo Y N get camera memory information
get_mode Y Y returns whether record mode or playback mode is active
get_movie_status Y Y gets state of video recording (off,on,paused)
get_orientation_sensor Y Y get camera rotation sensor value
get_parameter_data Y N get data from camera\'s flash memory
get_prop Y Y get PropertyCase value as short integer
get_prop_str Y N get the value of a PropertyCase as a string
get_propset Y Y get the propset number for this camera
get_quality N Y returns the current capture quality setting in Canon grades
get_resolution N Y returns the current capture resolution setting in Canon grades
get_shooting Y Y return value indicates if shooting is done
get_temperature Y Y returns specified temperature sensor value
get_vbatt Y Y get current battery charge state
get_video_button Y Y returns whether on not the camera has a video button
get_video_details Y N returns a struct with viewport configuration info
is_capture_mode_valid Y Y check if CHDK mode number is valid for this camera
play_sound Y * plays the specified sound sequence (uBASIC use playsound)
reboot Y Y restart the camera
restore Y Y specifies the routine called before a script terminates
set_capture_mode Y Y set capture mode by CHDK mode number
set_capture_mode_canon Y Y set capture mode by PROPCASE_SHOOTING_MODE value
set_led Y Y turns on or off the selected camera LED
set_movie_status Y Y allow video recording to pause, unpause and stop
set_prop Y Y set PropertyCase value as short integer
set_prop_str Y N used to set arbitraty sized propcases in Lua
set_quality N Y set the quality (in Canon grades),
set_record Y Y set playback or record mode
set_resolution N Y Set the resolution (in Canon grades)
shut_down Y Y turns the camera off
Keypad & Switches
Function Link Lua uBASIC Description
click Y Y press and release a key
is_key Y Y detemines if specified key was pressed
is_pressed Y Y determines if specified key is being pressed
press Y Y activates the specified camera button
release Y Y releases the specified camera button
shoot Y Y takes a picture
wait_click Y Y waits for any camera button to be pressed
wheel_left Y Y simulates moving jog dial wheel to the left
wheel_right Y Y simulates moving jog dial wheel to the right
set_exit_key Y Y changes the key used to terminate the script (CHDK 1.3.0 or greater)
SD Card Functions
Function Link Lua uBASIC Description
get_disk_size Y Y returns size of SD card
get_exp_count Y Y return number of shots in a session
get_image_dir Y N get current image directory
file_browser Y N activate SD card file browser on LCD screen
get_free_disk_space Y Y return space left on SD card
get_jpg_count Y Y return number of JPG shots left on SD card
get_partitionInfo Y N get partition information from the SD card
set_file_attributes Y N set file attributes of file on SD card
swap_partitions Y Y changes the partition order if SD card has multiple partitions
Script Status Functions
Function Link Lua uBASIC Description
autostarted Y Y checks if script was autostarted
end N Y terminate uBASIC program execution
get_autostart Y Y reads the conf.script_autostart
get_day_seconds Y Y return number of seconds since midnight
get_tick_count Y Y gets time in tic units since camera startup
get_time Y Y returns elements of the camera\'s current date / time setting
set_autostart Y Y write conf.script_autostart (0=off, 1=on, 2=once)
set_yield Y Y control how much of the Camera CPU time is used by scripting engine
sleep Y Y halts program execution for specified number of milliseconds
Firmware Interface
Function Link Lua uBASIC Description
call_event_proc(name,...) Y N calls a registered event procedure.
call_func_ptr(fptr,...) Y N call ARM or Thumb function in camera RAM or ROM
get_levent_def Y N returns (name, id, param) if index is valid, otherwise nil
get_levent_def_by_index Y N returns (name, id, param) if index is valid, otherwise nil
get_levent_index Y N returns the index of the given event
post_levent_for_npt Y N Triggers a LogicalEvent in the Canon firmware.
post_levent_to_ui Y N Triggers a LogicalEvent in the canon firmware.
set_levent_active Y N <needs a definition>
set_levent_script_mode Y N <needs a definition>
Display & Text Console
Function Link Lua uBASIC Description
set_backlight Y Y turns the LCD screen backlight on or off
set_lcd_display Y Y turns the LCD screen on or off
set_draw_title_line Y Y turns the CHDK title line on or off  (CHDK 1.3.0 or greater)
get_draw_title_line Y Y returns the current CHDK title state  (CHDK 1.3.0 or greater)
cls Y Y clear console screen
console_redraw Y Y manually refresh/rewrite the script console
print Y Y displays a line of text on console area of LCD screen
print_screen Y Y causes text written to screen to also be written to file on the SD card
set_console_autoredraw Y Y enable or disable automatic rewrite/refresh of the console
set_console_layout Y Y sets the dimensions the LCD message console
LCD Graphics
Function Link Lua uBASIC Description
draw.xxx Y N Lua drawing module
draw_ellipse Y N draws an ellipse on LCD screen
draw_ellipse Y N draws an ellipse on LCD screen
draw_ellipse_filled Y N draws a filled ellipse on LCD screen
draw_line Y N draw a line on LCD screen
draw_pixel Y N draws a single pixel on LCD screen
draw_rect Y N draws a rectangle on LCD screen
draw_rect_filled Y N draws a filled rectangle on LCD screen
draw_string Y N prints a text string on LCD screen
get_gui_screen_width Y N returns screen width in pixels (CHDK 1.3.0 or greater)
get_gui_screen_height Y N returns screen height in pixels (CHDK 1.3.0 or greater)
textbox Y N input text function for Lua scripts
RAW
Function Link Lua uBASIC Description
get_raw Y Y return status of RAW disabled or enabled
get_raw_count Y Y return number of RAW shots that will fit on remaining SD card space
get_raw_nr Y Y return state of RAW noise reduction ( off, on )
raw_merge_add_file Y N adds a RAW file to the current merge process
raw_merge_end Y N ends a RAW merge process on the camera
raw_merge_start Y N begins a RAW merge process on the camera
set_raw Y Y enables or disables the storage of RAW images
set_raw_develop Y N develop RAW image on next shot
set_raw_nr Y Y enables or disable noise reduction in RAW mode
CHDK Functionality
Function Link Lua uBASIC Description
enter_alt Y N activates CHDK mode
exit_alt Y Y exits CHDK mode
get_buildinfo Y N return info about CHDK version running on the camera
get_config_value Y Y get currently selected state of CHDK menu item
set_config_autosave Y N on/off for the autosave function of the CHDK configuration (CHDK 1.3.0 or greater)
load_config_file Y N loads a CHDK configuration file (CHDK 1.3.0 or greater)
save_config_file Y N saves a CHDK configuration file (CHDK 1.3.0 or greater)
get_histo_range Y Y return % if values in given range on histogram
get_platform_id N Y get the camera's platform ID value
set_config_value Y Y sets specified CHDK config value to specified value
shot_histo_enable Y Y enables creation of histogram data from a shot
Programming
Function Link Lua uBASIC Description
bitand(a, b) Y N returns bitwise logical AND of two variables
bitnot(a) Y N returns bitwise inversion of a variable
bitor(a, b) Y N returns bitwise logical OR of two variables
bitshl(a) Y N returns logical shift left of a variable
bitshri(a) Y N returns logical right of a variable (top bit stays in same state afterwards)
bitshru(a) Y N returns logical right of a variable (top bit = 0 afterwards)
bitxor(a, b) Y N returns logical exclusive or of two variables
peek Y N reads from specified camera memory address
poke Y N writes to specified camera memory address
Motion Detection
Function Link Lua uBASIC Description
md_detect_motion Y Y waits for a change in specified screen cells caused by motion
md_get_cell_diff Y Y gets change in motion detect level in specified cell
md_get_cell_val Y Y gets signal level in specified cell
md_af_on_time Y Y enable AF led for MD response testing
USB Port Interface
Function Link Lua uBASIC Description
get_usb_power Y Y get status of USB connector ( voltage present or not present )
read_usb_msg Y N read a message from the CHDK ptp usb interface
write_usb_msg Y N write a message via the CHDK ptp interface
usb_msg_table_to_string Y N User-definable callback used convert tables to string for write_usb_msg and PTP return
switch_mode_usb Y N set playback or record mode while PTP USB connected
Tone Curves
Function Link Lua uBASIC Description
get_curve_file Y N Lua commands to control tone curves
get_curve_state Y N Lua commands to control tone curves
set_curve_file Y N load a tone curve file
set_curve_state Y N enable/disable the use of a tone curve file
imath functions
Function Link Lua uBASIC Description
imath.scale Y N constant = 1000
imath.pi2 Y N constant = 6283
imath.pi Y N constant = 3142
imath.pi_2 Y N constant = 1517
imath.muldiv Y N a*b/c
imath.mul Y N a*b
imath.div Y N a/b
imath.rad Y N rad -> deg
imath.deg Y N deg -> rad
imath.sinr Y N sin(rad)
imath.cosr Y N cos(rad)
imath.tanr Y N tan(rad)
imath.asinr Y N arcsin(rad)
imath.acosr Y N arccos(rad)
imath.atanr Y N arctan(rad)
imath.polr Y N r, rad_alpha = pol(x, y)
imath.recr Y N x, y = rec(r, rad_alpha)
imath.sind Y N sin(deg)
imath.cosd Y N cos(deg)
imath.tand Y N tan(deg)
imath.asind Y N arcsin(deg)
imath.acosd Y N arccos(deg)
imath.atand Y N arctan(deg)
imath.pold Y N r, deg_alpha = pol(x, y)
imath.recd Y N x, y = rec(r, deg_alpha)
imath.pow Y N x^y
imath.log Y N log(x)
imath.log2 Y N log2(x)
imath.log10 Y N log10(x)
imath.sqrt Y N square root
imath.int Y N integer
imath.frac Y N fractal
imath.ceil Y N ceil
imath.floor Y N floor
imath.round Y N round