Xchecklist User Manual
User Manual:
Open the PDF directly: View PDF .
Page Count: 17
Download | |
Open PDF In Browser | View PDF |
Ver 1.33 History Xchecklist started out as a Linux checklist program to fill a void that was there in fall of 2010. Michal and I worked on it and initially was only in the forums and then it was in the download section. It looks like there is another void as there is no 64 bit checklist program. In the beginning of August 2013 I contacted Michal and told him I would like to port our Xchecklist to be multi-platform and 32/64 bit. He was on board and now we have a version that does work on all three platforms and is 32/64bit. Feature List Drop-in replacement for snailpup's checklister plugin Win/Mac/Lin 32/64 bit & 9.70 compatible Features speaking "copilot" saying checklist items for you Features native speech for each platform to allow more options Copilot may also check some actions for you as you perform them Actions (Check, Prev, Next, Hide, Reload) can be mapped to key/joystick button of choice Enforces strictly sequential checklist flow Installation Instructions Unpack the archive and place the folder Xchecklist to '.../Resources/plugins' then fire up XPlane and if the plane you fly has a checklist, you should see it.. The checklist file is called clist.txt and should be put in the aircraft folder which is the same place the *.acf file resides. You may also have a checklist file named aircraftname_clist.txt which will be searched for first then it will search for clist.txt. The default Cessna would be Cessna_172SP_clist.txt. This allows you to have multiple aircraft in one folder like a float and a wheeled version. Also in the archive is a folder called Checker that has test programs for your platform and bitsize. Paths are bgood/xchecklist/check_item, bgood/xchecklist/next_checklist, bgood/xchecklist/prev_checklist, bgood/xchecklist/hide_checklist and bgood/xchecklist/reload_checklist. If you have any ideas, comments or bug reports, don't hesitate and let us know... Kind regards, Michal & Bill Xchecklist Setup The "Xchecklist Setup" dialog box will be explained first and can be found by clicking on the Plugins menu item and selecting Xchecklist from the drop down list. Translucent Window when checked makes the checklist translucent. Unchecked the checklist is solid. Show Checklist if Checklist exist when checked if there is a clist.txt for the aircraft loaded it will display the checklist. Unchecked it will not display the checklist. Turn Copilot On when checked will automatically check in order items that have data refs in the clist.txt. These items are marked with a + sign in front of the check box. Unchecked you have to check each item yourself. Voice Prompt when checked will speak a prompt for the upcoming item. Unchecked it is quiet. Auto Hide when checked will automatically hide the checklist after it is complete and a small delay. Unchecked it will not hide. Show Widget when checked shows the older widget checklist. Show GUI when checked shows the new GUI checklist that can be scaled and popped to a second display. It is also the checklist widow type that is used in VR but in VR it has a transparent background. Move Checklist Window Down will move the checklist window down so you can grab it with the mouse if it is up under the top menu bar. Save Settings will save your settings including the window position of the checklist in a preference file. Before saving the window position it will make sure that what is saved is within the current screen. As a side benefit if you changed screen resolution and part of the checklist is outside the current screen pressing this button will put it back inside the screen. X-Plane 10 Joystick buttons setup Joystick buttons are setup using Buttons : Adv pane in the Joystick & Equipment window, that is accessible through Settings / Joystick, Keys & Equipment menu. Please note the four items in the right box - these are the four actions, that allow you to control the Xchecklist. Now just press the desired joystick button, in the upper middle box select xchecklist/ and in the right box select the appropriate action. Repeat those steps and when done, just close the window and the new bindings should be active. First item is 'check_item' that checks a item. Next item is 'next_checklist' that moves to the next page of the checklist. If the checklist is hidden it will also un hide it without moving to the next page. Next item is 'prev_checklist' that moves to the prev page of the checklist. Next item is 'hide_checklist' as it says hides the checklist. Reload item is 'reload_checklist' as it says reloads the checklist. X-Plane 10 Keystrokes setup Keystrokes are setup using Keys pane in the Joystick & Equipment window, that is accessible through Settings / Joystick, Keys & Equipment menu. Please note the four items in the right box - these are the four actions, that allow you to control the Xchecklist. Now just press the desired keystroke, in the left box select xchecklist/ and in the right box select the appropriate action. Repeat those steps and when done, just close the window and the new bindings should be active. First item is 'check_item' that checks a item. Next item is 'next_checklist' that moves to the next page of the checklist. If the checklist is hidden it will also un hide it without moving to the next page. Next item is 'prev_checklist' that moves to the next page of the checklist. Next item is 'hide_checklist' as it says hides the checklist. Last item is 'reload_checklist' as it says reloads the checklist. X-Plane 11 Joystick buttons setup Joystick buttons are setup using Settings dialog window which can be accessed through the Settings button on the first screen. Use the Joystick menu. Please note the four items in the right box - these are the four actions, that allow you to control the Xchecklist. Now just press the desired joystick button, on the right hand side you will see the button hi light. Click on the Edit button and type bg in the search box. Select the action you want to map and then click on the Apply button. Repeat these steps for the remaining actions. When you are done press the Done button. First item is 'check_item' that checks a item. Next item is 'next_checklist' that moves to the next page of the checklist. If the checklist is hidden it will also un hide it without moving to the next page. Next item is 'prev_checklist' that moves to the prev page of the checklist. Next item is 'hide_checklist' as it says hides the checklist. Reload item is 'reload_checklist' as it says reloads the checklist. X-Plane 11 Keystrokes setup Keystrokes are setup using Settings dialog window which can be accessed through the Settings button on the first screen. Use the Keyboard menu. After typing bg in the search box you should see the items you can map to Xchecklist. Now just click on the gray box to the left of the + sign of the item you want to map. When you do this the gray box will turn white and will say “Record keystroke(s)” . Record your keystrokes and the box will turn gray again with your recorded keystrokes in the gray box. You will now also see a + sign and a – sign. Repeat those steps and when done, press the done button. First item is 'check_item' that checks a item. Next item is 'next_checklist' that moves to the next page of the checklist. If the checklist is hidden it will also un hide it without moving to the next page. Next item is 'prev_checklist' that moves to the next page of the checklist. Next item is 'hide_checklist' as it says hides the checklist. Last item is 'reload_checklist' as it says reloads the checklist. Checklist files When the X-Plane loads a plane, Xchecklist looks to the airplane's directory and tries to load the acf specific checklist first (acfName_clist.txt), and if not found, the generic clist.txt is loaded. Checklist file structure The checklist file contains series of checklists for the given aircraft. Each checklist starts with the sw_checklist statement. This statement specifies the title of the checklist, and optionally the name, under which it appears in the XChecklist's menu (when the optional part is missing, the menu item is not created). This way the "entry points" of multi-page checklists are accessible via menu, without cluttering the menu with the interim pages. sw_checklist:Checklist name sw_checklist:Checklist name:Menu name The checklist itself can contain several types of statements: • • • • • • • sw_item - normal checklist item - spoken by copilot, checkable both manually and automaticaly sw_iteminfo - checklist item, checkable only by fulfilling the condition sw_itemvoid - noncheckable checklist item; ignored by copilot sw_remark - remarks spoken by copilot (no condition, non-checkable) sw_show - when no checklist is displayed and a condition is fulfilled, the checklist pops up sw_continue - designates which checklist should come next, when the current one finishes sw_rcolsize - specifies the size of the "right column" of the checklist sw_item This is the most used checklist item. There are several forms of this item: sw_item:Item text sw_item:Item text|Checked text This form displays a checkbox with the "Item text" caption; if the text contains a colon character, the text following it is displayed on the right side, otherwise the text "CHECK" is used. The checkbox must be checked by the pilot. sw_item:Item text:dataref expression This form allows the "copilot" check the item for you based on the dataref expression Dataref expressions Dataref expressions allows the "copilot" to check the checklist item or pop up a checklist based on the conditions/pilot actions. The expression can range for simple dataref value equality test to fairly complex expressions. Basic building blocks test/dataref:1 test/dataref:=1 true when the dataref "test/dataref" equals to 1 test/dataref:!1 true when the dataref "test/dataref" is not equal to 1 test/dataref:<1 true when the dataref "test/dataref" is lower than 1 test/dataref:>1 true when the dataref "test/dataref" is greater than 1 test/dataref:<=1 true when the dataref "test/dataref" is lower than or equal to 1 test/dataref:>=1 true when the dataref "test/dataref" is greater than or equal to 1 test/dataref:+>1 true when the dataref "test/dataref" grows more than 1 after the item is activated test/dataref:-<1 true when the dataref "test/dataref" shrinks more than 1 after the item is activated test/dataref:><1 true when the dataref "test/dataref" changes by more than 1 after the item is activated test/dataref:10|20 true when the "test/dataref" is in the interval of 10 to 20. test/dataref:10:20 true when the "test/dataref" changes from lower than 10 to higher than 20. If the dataref's value is not lower than 10 when the check is activated, it has to get below 10 first. The right side The right side of the dataref expression can be a simple number, or it can involve arithmetic, datarefs and several functions. test/dataref:((1+2)*3)**4 Valid operations are addition, subtraction, multiplication, division and power (**). Also parentheses can be used to enforce different priority. test/dataref:{test/other_dataref}+1 Expression can contain datarefs too test/dataref:(float)1 Datarefs typa can be explicitly stated in case the dataref exists in more than one variant. Available types are int, float and double test/dataref:round({test/other_dataref}) Expressions can call one of several functions (round, step, closer_than) Available functions round(value) rounds the value to the nearest integer step(value) equals to 1 when value >= 0, 0 otherwise closer_than(value1, value2, epsilon) returns 1.0 when value1 and value2 differ by less than epsilon, 0.0 otherwise Should you need more, please contact the developers. Compound dataref expressions Several dataref expressions can be combined using boolean operations. (expression1)&&(expression2) true when both expressons are true (expression1)||(expression2) true when either one(or both) of the expressions are true All of the above can be combined together to form very elaborate constructions. With that said, try to avoid the "when the tool I have is a hammer, then every problem looks like a nail" problem. Sometimes it might be good to consider to use some other methods (lua helper plugin computing those expressions and publishing the results in datarefs) to keep the complexity in reasonable limits. It will help with the overall readability and maintainability of the checklist. sw_iteminfo This item behaves mostly like the sw_item, with one distinction - user can't check it manually. That means that it has to have the dataref expression specified. sw_iteminfo:Item label|Check label:test/dataref:1 sw_itemvoid This item is usefull for adding delimiters, welcome messages and other parts of checklist, that are just displayed. Also they aren't read by the speech synthesizer. sw_itemvoid:Item label|Check label sw_remark This item is somewhat similar to the sw_itemvoid, with the only distinction that it is read by the speech synthesizer. It can be used for example to compliment the pilot... sw_remark:You did nicely! sw_show This item doesn't show up on the checklist, but allows a checklist to pop up when a specified condition if fulfilled. The sw_show conditions aren't checked when another checklist is being displayed (so it doesn't interrupt it). Disclaimer: The following paragraphs are just a view of one of the authors, so think about it and feel free to ignore it if you see fit... sw_show seem like a very convenient feature, which allows construction of very clever checklists. It might for example pop up after take off checklist when you reach certain altitude, or pop up a relevant checklist when a fire alarm sounds, ... Unfortunately there seems to be a downside to this kind of automation - in my view the pilot should know when a certain checklist is due and he should open it by himself - that way his memory is exercised and I think it also adds to the realism of the simulation (checklists don't pop up automaticaly in real plane either)... Also inflight emergencies might be a good example of this view - the pilot should be able to identify the source of the problem, while if the correct emergency checklist pops up by itself, it is a sort of giveaway... On the other hand, some people might argue that when a checklist pops up automaticaly, it remindes the pilot _to perform it, so when in the real plane, he/she will remember to perform the checklist. _ So feel free to use sw_show, just think whether it will really help pilots learning... sw_continue This is another item that doesn't show on the checkist, but it allows creation of "seamless" multipage checklists. If this statement is specified for a given checklist, then when the said checklist is finished, the checklist spacified by the sw_continue is opened up automaticaly. When no label is specified, next checklist is used, otherwise a checklist with a given label (first field of sw_checklist) is displayed. sw_continue sw_continue:Checklist name New in 1.26 Since 1.26 there is a possibility to attach a dataref condition to the sw_continue and several sw_continue statements can be attached to a checklist. This allows you to create a conditional "detours" in the checklist flow - for example when some equipment is used optionally, you can add a checklist page that reflects its usage. The sw_continue statement conditions are analyzed from the top to the bottom and the first one whose condition is true (or without a condition) is followed. Since the conditions are checked only at the moment the checklist is finished, dataref conditions analyzing dataref evolution in time ("+>", "-<", "><", ...) can't be used, as they always evaluate false when checked for the first time. sw_continue:Start with GPU:sim/cockpit/electrical/gpu_on:1 sw_continue:Start without GPU sw_rcolsize Checklist window width is determined automatically from the length of items displayed. Item sw_rcolsize explicitly specifies width of the right side field, which helps to keep checklist from changing width when differnet pages are displayed. sw_rcolsize : 150 # Any line starting with a # will be treated like a comment and not processed. Number of Lines Per Page It was brought to my attention that starting with version 1.29 if you had to many lines per page you would corrupt the text in the setup widget. With the release of version 1.32 this is resolved but in doing testing I have found some issues so will give some guide lines. If you are using the widget display I am not sure if there are any limits to the number of lines. If you are using the GUI display in 2d then the limit is less than 49 lines. If you are in VR then the limit is less that 30 lines which I have no control over. When I am talking about lines this is all lines displayed blank or not. So to the Xchecklist authors my recommendation is to keep your number of lines below 30 to allow all users to fully use your checklist. Checker Checker is a command line program that allows you to make sure your clist.txt has the proper syntax so it will work correctly with Xchecklist. This is a stand alone program so it can be run anywhere you like. It comes in three versions to match the platform and bit size you are running. On 64 bit Linux the syntax would be “lin_checker_64bit clist.txt 1” The first argument is the name of the checklist you want to check. With only the checklist name as a first argument and no second argument, the checker performs a simple syntax check with minimal output, most useful during checklist development. The second argument is optional and is a number 1 – 4. 1 Will print out parser internal working (good for parser/lexer development). 2 Will evaluate expressions. 3 Will do both 1 & 2. 4 Will do regression testing. Look in regres_test1.txt for explanation and examples. The way I have been using the checker is I have a folder called Xchecklist_Checker where the checker and a dataref dictionary or dictionaries reside. A dataref dictionary is a text file starting with clist_dict_ that is a list of datarefs like DataRefTool’s drt_last_run_datarefs.txt found in X-Plane Output/preferences. In this case the dictionary would be named clist_dict_drt_last_run_datarefs.txt and put in a folder named Xchecklist_Checker. To execute properly, you need to set the active working directory to the directory where all the files (checker, checklist and dictionary) are located. The following procedure simplifies the process: Open terminal window and type CD, followed by a space. Then drag the Xchecklist_Checker folder into the terminal window. Press enter. You have just set the active directory Next drag the checker file into the terminal window. This will type the checker command with its pathname for you. Next drag the checklist name which can be from anywhere you are going to test into the terminal and press enter. Create Dictionary Checker uses a dictionary to help make sure that all the datarefs are correct. To help with this there is a menu selection “Plugins/Xchecklist/Create Dictionary” that will automatically create a custom dictionary that will match the aircraft you are creating a checklist for. Since this tool uses a file created by DataRefTool it will need to be installed and can be found at https://github.com/leecbaker/datareftool/releases When X-Plane starts DataRefTool runs and parses many files to find default and custom datarefs and creates a file of datarefs called Output/preferences/drt_last_run_datarefs.txt. When you click on “Create Dictionary” it reads the drt_last_run_datarefs.txt file line by line. If it finds a non array dataref it will write that dataref to the dictionary file. If it finds a array dataref it will find the length and then create the proper datarefs needed for the dictionary to work corectly. The dictionary will be called Resources/plugins/Xchecklist/clist_dict_drt_last_run.txt Troubleshooting In writing Xchecklist we tried to mimic checklister so most clist.txt checklists should work but if the one you are trying to use did not follow the syntax of checklister there may issues. We will be trying to improve the parsing to remove many of these but in the meanwhile please use the following information to help you resolve them yourself. If you are having a issue please look in your Log.txt file and search for Xchecklist: to find any errors that might have been logged. Errors about "unexpected TOKEN_ITEM, expecting TOKEN_STRING" mean that there is some issue with the syntax so look at the line it is pointing to and compare it to the examples of syntax in the section above. Remove extraneous text that is obviously not part of the script. To quickly do this you can put a # as the first character on a line and that line will not be processed.
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : No Page Count : 17 Language : en-US Tagged PDF : Yes Part : 1 Conformance : A Creator : William Good Producer : LibreOffice 5.1 Creator Tool : Writer Create Date : 2018:06:27 20:09:49-04:00 Author : William GoodEXIF Metadata provided by EXIF.tools