February 13, 20242 yr Hello, Lorby: Now that I have completely moved from SPAD to AAO, I have my aircraft of choice (C208B Grand Caravan) and the X-Touch Mini all set up. But now I want to set up the interactive Checklist (the main reason I moved to AAO). I am having moving from your manual to the real thing. Here's what I want to do (an example, showing only one item, the Parking Brake: 1. Copilot states the sub-checklist name, in this case the "Before Start" checklist. - I'm good here. 2. Copilot states the item name, in this case, the "Parking Brake - Set". Again, I am fine with this. 3. Here's where the wheels fall off. I want to say either "Check", "Repeat", or "Pause". 4. If I say "Check", I want AAO to confirm that the parking brake is actually set. If so, it should go on to the next item. 5. If I say "Repeat", I want AAO to say "I say again" (to confirm that it is being repeated) and then go to item 2. above. 6.If I say "Pause" I want AAO to wait until I'm ready (I don't know what the default word is to cancel the pause) but I will say "Unpause" or something. When I do, I want AAO to go to item 5. above. 7. If, in item 4. above, the parking brake is not set, I want AAO to go to item 5 above; in this case, the checklist cannot go past the called for item being completed but it does not do it itself! This takes a lot of words to describe but it's not too complicated. So, here's the meat of what I wrote (needless to say it didn't work). (@C208B:BeforeStart Checklist) (WAIT:2000) ; :Parking_Brake ; [*Check|Repeat|Pause*] (@C208B:Parking Brake - SET) (L:AaoClConfirm) 0 == if{ (GOTO:Brake_1) } ; Default - Check? (L:AaoClConfirm) 1 == if{ (GOTO:Brake_1) } ; "Check". (L:AaoClConfirm) 2 == if{ (GOTO:Parking_Brake) } ; "Repeat". (L:AaoClConfirm) 3 == if{ (AAO_CV_PAUSE_TOGGLE:C208B-00-BeforeStart.txt) (GOTO:Parking_Brake) } ; "Pause". :Brake_1 ;[(A:BRAKE PARKING INDICATOR, Bool) 1 == if{ (GOTO::Fuel_Tank_Selection) } els{ (SPEAK:I say again) (GOTO:Parking_Brake) } ; :Fuel_Tank_Selection Any suggestions would be most appreciated!
February 13, 20242 yr Commercial Member 1 hour ago, The Artful Dodger said: Any suggestions would be most appreciated! Just a technical point: the semicolon ";" is a line comment. You cannot use this character for this purpose anywhere else other than right at the beginning of a line. OK? From my point of view (and probably AAOs too) all your if's are invalid code, the comments must be in separate lines of their own. Edited February 13, 20242 yr by Lorby_SI LORBY-SI
February 14, 20242 yr Author Thank you for that critical bit of information - I guess my mind set was LUA and C/C++. Once I got past that most of it works but the [..] line still comes up as in error. Here's the "File Syntax Check" view: 1 <Macro Name="C208B">VOICE:Microsoft Zira Desktop) (VOICERATE:0) (VOICEVOLUME:20) (SPEAK</Macro> 2 ; 3 (@C208B:BeforeStart Checklist) (WAIT:2000) 4 ; 5 :Parking_Brake 6 ; 7 [*Check|Repeat|Quit*] (@C208B:Parking Brake - SET) 8 (L:AaoClConfirm) 1 == if{ (GOTO:Brake_1) } 9 (L:AaoClConfirm) 2 == if{ (SPEAK:I say again) (GOTO:Parking_Brake) } 10 (L:AaoClConfirm) 3 == if{ (AAO_CV_STOP:C208B-00-BeforeStart.txt) } 11 :Brake_1 12 (A:BRAKE PARKING INDICATOR, Bool) 1 == if{ (GOTO::Fuel_Tank_Selection) } els{ (SPEAK:I say again) (GOTO:Parking_Brake) } 13 ; 14 :Fuel_Tank_Selection Unfortunately, the site doesn't copy colors because line 7 is shown in red! Here's what happens when I play it: If I say "Check" and the brake is set, it correctly goes to the next line. If I say "Check" and the brake is not set (incorrect response), the program correctly says "I say again Parking Brake - Set". If I say "Quit" it does not quit - it continues. So it would appear there's something wrong with the [ .. ] command. I have no idea how to insert the pause clause nor where nor how to get out of it! Any help is most appreciated!!
February 14, 20242 yr Commercial Member 1 hour ago, The Artful Dodger said: So it would appear there's something wrong with the [ .. ] command I disagree. Assuming that the Quit is recognized, I would see the problem, if there is one, with the aao cv stop. Can't check right now if the syntax is correct. I would either add/substitute an (END) clause at that point, or use a GOTO to jump to a label at the end of the checklist LORBY-SI
February 14, 20242 yr Author Well, There certainly is something wrong - First, I am confused when to use "VOICE:" and when to use "C208B:" because the logic seems to get different values. But I think, because, the line 7 is flagged as in error, there is an error - now it could be another error so that the checker 'thinks' it's line 7 when it's something else - I've seen that kind of error in compilers a lot. But, here's the latest version - I added another option - it made no difference to the error. I wondered if I can use a "global" pause and stop but, if so, I don't know how to format that nor exactly where to put it! <Macro Name="C208B">VOICE:Microsoft Zira Desktop) (VOICERATE:0) (VOICEVOLUME:20) (SPEAK</Macro> ; (@C208B:BeforeStart Checklist) (WAIT:2000) ; :Parking_Brake ; [*Check|Repeat|Pause|Quit*] (@C208B:Parking Brake - SET - One) (L:AaoClConfirm) 1 == if{ (GOTO:Brake_Check) } (L:AaoClConfirm) 2 == if{ (@C208B:I say again - Two) (GOTO:Parking_Brake) } (L:AaoClConfirm) 3 == if{ (AAO_CV_PAUSE_TOGGLE:C208B-00-BeforeStart.txt) } (L:AaoClConfirm) 4 == if{ (AAO_CV_STOP:C208B-00-BeforeStart.txt) } (GOTO:Parking Brake) ; :Brake_Check I did add the GOTO at the bottom as you suggested but it had no effect. I think this is quite close and, once I get this segment right, I should be able to get the rest relatively quickly. But, for now, I am completely stumped!
February 14, 20242 yr Commercial Member On 2/14/2024 at 8:49 PM, The Artful Dodger said: I did add the GOTO at the bottom as you suggested but it had no effect That was not what I meant. I meant to insert (END) or (GOTO:theend) into the statement of your IFs, so they would end the checklist or jump to the end. As a simple safeguard. (L:AaoClConfirm) 4 == if{ (AAO_CL_STOP) (END) } or (L:AaoClConfirm) 4 == if{ (AAO_CL_STOP) (GOTO:theend) } ...code... :theend (END) But something else just struck me - are you creating a CHECKLIST or a CONVERSATION? Because if this is a checklist, then your _STOP and _PAUSE commands are wrong - those are for a CONVERSATION (AAO_CV_) and not the CHECKLIST (AAO_CL). And the checklist commands don't have a file name parameter, because there can always only be the one active checklist - OK? Again but - I would not use them like that. Remove the options Pause/3 and Quit/4 and instead create two button assignments "Pause" and "Quit" of type "Voice" and assign those to (AAO_CL_PAUSE_TOGGLE) and (AAO_CL_STOP) (you can select them from the event list). Then you can stop or pause the checklist any time you want. On 2/14/2024 at 8:49 PM, The Artful Dodger said: First, I am confused when to use "VOICE:" and when to use "C208B:" because the logic seems to get different values. I'm sorry, but I don't understand your question. (VOICE is the AAO command to select a specific voice for text-to-speech output. Which is then performed by (SPEAK:..). The @208B is apparently (I've never seen it before, I am guessing that you've copied it from another script file?) just a simple text replacement macro, wrapping the necessary commands for a SPEAK output into a convenient package, so you don't have to type the entire thing all the time. The VOICE etc. parameters are global in nature, so if you are using different voices across all your scripts, you would have to set a specific voice before every SPEAK. Of course, you can prefix every SPEAK with VOICE etc. if you want to, but I would recommend using macros - way less typing involved. The macro definition in your example will at runtime expand (@C208B:Parking Brake - SET - One) to (VOICE:Microsoft Zira Desktop) (VOICERATE:0) (VOICEVOLUME:20) (SPEAK:Parking Brake - SET - One) Edited February 16, 20242 yr by Lorby_SI LORBY-SI
February 14, 20242 yr Commercial Member 1 hour ago, The Artful Dodger said: But I think, because, the line 7 is flagged as in error, there is an error No, there isn't. The syntax checker is wrong - the code is correct. This is a bug that will be fixed in the next version of AAO. Edited February 14, 20242 yr by Lorby_SI LORBY-SI
February 15, 20242 yr Author Well, I am happy to tell you that, thanks to your help, it now works. I think the use of a button for Pause and Stop is a bit clunky, but, aafter I got it to work, I went back and added both back. The Pause worked to pause the checklist but I couldn't find a voice command to restart things and Stop didn't work so I took them both out and left the buttons in! In case anyone else is interested in this format, here's how it looked: <Macro Name="C208B">VOICE:Microsoft Zira Desktop) (VOICERATE:0) (VOICEVOLUME:15) (SPEAK</Macro> ; (@C208B:Before Start Checklist) (WAIT:2000) ; :Parking_Brake ; [*Check|Repeat*] (@C208B:Parking Brake - SET) (L:AaoClConfirm) 1 == if{ (GOTO:Brake_Check) } (L:AaoClConfirm) 2 == if{ (@C208B:I say again) (GOTO:Parking_Brake) } ; :Brake_Check (A:BRAKE PARKING INDICATOR, Bool) 0 == if{ (@C208B:I say again) (GOTO:Parking_Brake) } els{ (@C208B:Parking Brake Confirmed - Set) } ; :Fuel_Tank_Selection [](@C208B:Fuel Tank Selectors - ON) You will notice I put back the @C208B because I figured out where it came from and it works. Your first example in the Checklist section starts with: "<Macro Name="FOSPEAK">"; after that you use, for example, "[](@FOSPEAK:fueling)". You will notice that the FOSPEAK appears exactly the same as my Name="C208B". You may remember when I had, for example, "SET - One" and "I say again - Two" - those were debugging tools so I could see where I was in the code by where the voice spoke! I wasn't going out of my mind (that's a very short trip, let me tell you)! So, now I need to put this code in all of my checklist and then I can try it for real. Thanks again for all your help!! Edited February 15, 20242 yr by The Artful Dodger Errors
February 16, 20242 yr Author One additional question if I may: What is the response to Pause? Or, once in pause, how do I take AAO out of pause?
February 16, 20242 yr Commercial Member 7 hours ago, The Artful Dodger said: One additional question if I may: What is the response to Pause? Or, once in pause, how do I take AAO out of pause? Sorry, but I don't understand the question. What "Pause" are you referring to? There is no command that would put the entire AAO app "in pause" - what exactly do you mean? LORBY-SI
February 16, 20242 yr Author I am talking about AAO_CL_PAUSE; if I issue that command, what word do I say to continue the checklist?
February 16, 20242 yr Commercial Member 2 hours ago, The Artful Dodger said: I am talking about AAO_CL_PAUSE; if I issue that command, what word do I say to continue the checklist? The actual command is "AAO_CL_PAUSE_TOGGLE" and it is just that - a on/off toggle. It is up to you what you want to say, there is no relation between the command and the voice recognition. If you want to assign the voice command "cheesecake" to the toggle, it will use that too. It only pauses the checklist - everything else in AAO will continue working as normal (scripts, control inputs etc.) Edited February 16, 20242 yr by Lorby_SI LORBY-SI
Archived
This topic is now archived and is closed to further replies.