diff --git a/__init__.py b/__init__.py index 76399e4..95ab1b5 100644 --- a/__init__.py +++ b/__init__.py @@ -22,6 +22,8 @@ class FlightGearCopilotSkill(MycroftSkill): self.settings['port'] = 8081 self.write_default_profiles() +# TODO make it possible, to play a .mp3 file instead of tts + ################################################################# # # # Actions # @@ -214,629 +216,109 @@ class FlightGearCopilotSkill(MycroftSkill): else: self.speak_dialog("gear.not.retractable") - ################################################################# # # # Checklists # # # ################################################################# -# TODO make it possible, to play a .mp3 file instead of tts -# TODO read checklists from fg + @intent_handler(IntentBuilder('CheckListIntent').require('check.list')) + def handle_check_list_intent(self, message): -################################# -# # -# Before Start Check # -# # -################################# + tn = self.connect() + + cl_request = message.data['utterance'] + + checklist_count = self.get_item_count(tn, "/sim/checklists") + + if checklist_count == 0: + self.speak("No checklists has been found") + self.exit(tn) + + for i in range(0, checklist_count): + checklist = i + checklist_title = self.get_prop(tn, "/sim/checklists/checklist[" + str(checklist) + "]/title") + checklist_title = checklist_title.replace('/', '|') + checklist_title = "^" + checklist_title + match = re.search(checklist_title, cl_request, re.I) + + if match != None: + self.speak(checklist_title + " checklist") + break - @intent_handler(IntentBuilder('BeforeStartCheckIntent').require('before.start.check')) - def handle_before_start_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.before.start.cockpit.preparation") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'completed', response, re.I) if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.before.start.gear.pin") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'removed', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.signs") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.adirs") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'nav', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.before.start.fuel.quantity") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'check|checked', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.before.start.to.data") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.baro.ref") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.before.start.window") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'close|closed', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.before.start.beacon") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.before.start.thr.lever") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'idle', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.parking.break") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on|off|set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("Before start checklist completed") - -################################# -# # -# After Start Check # -# # -################################# - - @intent_handler(IntentBuilder('AfterStartCheckIntent').require('after.start.check')) - def handle_after_start_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.after.start.anti.ice") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on|off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.ecam.status") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'checked|check', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.after.start.pitch.trim") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.after.start.rudder.trim") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'0|zero', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("After start checklist completed") - -######################### -# # -# Taxi Check # -# # -######################### - - @intent_handler(IntentBuilder('TaxiCheckIntent').require('taxi.check')) - def handle_taxi_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.taxi.flight.controls") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'checked|check', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.flight.instruments") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'checked|check', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.briefing") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'confirmed', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.flaps.settings") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.v.spd") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.atc") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.to.no.blue") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'no blue|all green', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.to.rwy") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'confirmed', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.cabin.crew") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'confirmed|advised', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.taxi.tcas") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'TA|RA|on', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.eng.mode.sel") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on|off|norm|normal|start', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.packs") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on|off|packs?', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("Before start checklist completed") - -######################### -# # -# Climb Check # -# # -######################### - - @intent_handler(IntentBuilder('ClimbCheckIntent').require('climb.check')) - def handle_climb_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.climb.gear.up") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'up|retracted', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.flaps") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'up|retracted|0', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.packs") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.baro.ref") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("After take off checklist completed") - -################################# -# # -# Approach Check # -# # -################################# - - @intent_handler(IntentBuilder('ApprCheckIntent').require('appr.check')) - def handle_appr_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.general.briefing") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'confirmed', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.ecam.status") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'checked|check', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.seat.belts") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.baro.ref") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.appr.min") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.eng.mode.sel") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on|off|norm|normal|start', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("Approach checklist completed") - -######################### -# # -# LDG Check # -# # -######################### - - @intent_handler(IntentBuilder('LDGCheckIntent').require('ldg.check')) - def handle_ldg_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.ldg.no.blue") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'no blue|all green', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("Landing checklist completed") - -################################# -# # -# After LDG Check # -# # -################################# - - @intent_handler(IntentBuilder('AfterLDGCheckIntent').require('after.ldg.check')) - def handle_after_ldg_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.general.flaps") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'up|retracted', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.after.ldg.spoilers") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'disarmed', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.after.ldg.apu") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off|on|start', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.after.ldg.radar") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.after.ldg.wx") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("After landing checklist completed") - -################################# -# # -# Parking Check # -# # -################################# - - @intent_handler(IntentBuilder('ParkingCheckIntent').require('parking.check')) - def handle_parking_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.general.apu.bleed") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.parking.eng") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.seat.belts") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.parking.lights") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.parking.fuel.pumps") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.parking.break") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'on|off|set', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - self.speak("Parking checklist completed") - -################################# -# # -# Securing Check # -# # -################################# - - @intent_handler(IntentBuilder('SecuringCheckIntent').require('securing.check')) - def handle_securing_check_intent(self, message): - # TODO make checklist plane specific - response = self.get_response("check.general.adirs") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.securing.oxygen") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.apu.bleed") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.securing.emer.exit.lt") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.general.signs") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - response = self.get_response("check.securing.apu.bat") - if response == None: - self.speak("Checklist not completed") - sys.exit(0) - match = re.search(r'off', response, re.I) - if match == None: - self.speak("Checklist not completed") - sys.exit(0) - - @intent_handler(IntentBuilder('FlightControlCheckIntent').require('flight.control.check')) - def handle_securing_check_intent(self, message): - self.speak("Full up") - sleep(2) - self.speak("Full down") - sleep(2) - self.speak("Neutral") - sleep(2) - self.speak("Full left") - sleep(2) - self.speak("Full right") - sleep(2) - self.speak("Neutral") - sleep(2) - self.speak("Full left") - sleep(4) - self.speak("Full right") - sleep(4) - self.speak("Neutral") - sleep(2) - self.speak("Flight controls checked") + self.speak("Required checklist wasn't found") + self.exit(tn) + + # TODO make the programm use all pages, not only the first + page = "" + if self.prop_exist(tn, "page", "/sim/checklists/checklist[" + str(checklist) + "]") == 1: + page = "page/" + + item_count = self.get_item_count(tn, "/sim/checklists/checklist[" + str(checklist) + "]/" + page) + + if item_count == 0: + self.speak("The required checklist has no entrys") + self.exit(tn) + + for i in range(0, item_count): + item = i + item_name = self.get_prop(tn, "/sim/checklists/checklist[" + str(checklist) + "]/" + page + "item[" + str(item) + "]/name") + item_value = self.get_prop(tn, "/sim/checklists/checklist[" + str(checklist) + "]/" + page + "item[" + str(item) + "]/value") + item_name = self.expand_adverbations(item_name) + item_name = item_name.replace('/', ' ') # maybe make the replace '/' -> ' and ' to be spoken out better + self.speak(item_name) + + response = self.get_response("dummy") + if response == None: + self.speak("Checklist not completed") + sys.exit(0) + + # check if F/O has to confirm as well + item_value_check = re.sub("\(BOTH\)", "", item_value, flags=re.I) # Add more indication of this case, that are used in other A/C + fo_conf = 0 + if item_value_check != item_value: + fo_conf = 1 + item_value = item_value_check + + item_value = self.expand_adverbations(item_value) + item_value = re.sub('/', '|', item_value) + item_value = re.sub('_', '', item_value) + item_value = re.sub('\(', ' ', item_value) + item_value = re.sub('\)', ' ', item_value) + response = self.expand_adverbations(response) + match = re.search(item_value, response, re.I) + + if match == None: + self.speak("Checklist not completed") + sys.exit(0) + + if fo_conf == 1: + self.speak(item_value) + + self.speak(checklist_title + " checklist completed") + + @intent_handler(IntentBuilder('FlightControlCheckIntent').require('flight.control.check')) + def handle_securing_check_intent(self, message): + self.speak("Full up") + sleep(2) + self.speak("Full down") + sleep(2) + self.speak("Neutral") + sleep(2) + self.speak("Full left") + sleep(2) + self.speak("Full right") + sleep(2) + self.speak("Neutral") + sleep(2) + self.speak("Full left") + sleep(4) + self.speak("Full right") + sleep(4) + self.speak("Neutral") + sleep(2) + self.speak("Flight controls checked") ################################################################# # # @@ -1084,7 +566,7 @@ class FlightGearCopilotSkill(MycroftSkill): return tn - # running an nasal command + # running a nasal command def nasal_exec(self, tn, call): tn.write("nasal\r\n") tn.write(call + "\r\n") @@ -1108,9 +590,23 @@ class FlightGearCopilotSkill(MycroftSkill): ret = ret + 1 ret = ret - 1 - tn.write("cd /\r\n") return ret + # checks if a property exists at a given path + def prop_exist(self, tn, prop, path): + tn.write("ls " + path + "\r\n") + found = 0 + result = " " + + while result != "": + result = tn.read_until("\n", 1) + match = re.search(prop, result, re.I) + if match != None: + found = 1 + break + + return found + # get ip address def get_ip(self): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) @@ -1266,6 +762,46 @@ class FlightGearCopilotSkill(MycroftSkill): self.settings['profiles'] = profiles pass + # expands adverbations to full words + def expand_adverbations(self, text): + # TODO reduce collisions when used with other a/c + # TODO add more adverbations + text = re.sub("\sALT\s?", "altitude", text, flags=re.I) + text = re.sub("L/G", "landing gear", text, flags=re.I) + text = re.sub("SPLRS", "spoilers", text, flags=re.I) + text = re.sub("PREP", "preperation", text, flags=re.I) + text = re.sub("^TO ", "take off ", text) + text = re.sub(" TO$", " take off", text) # have it twice to prevent collisions with words containing 'to' + text = re.sub("REF", "reference", text, flags=re.I) + text = re.sub("A/SKID", "anti skid", text, flags=re.I) + text = re.sub("N/W", "nose weel", text, flags=re.I) + text = re.sub("A/THR", "auto thrust", text, flags=re.I) + text = re.sub(" THR ", "thrust", text, flags=re.I) + text = re.sub("Eng ", "engine", text, flags=re.I) + text = re.sub("Mstr", "master", text, flags=re.I) + text = re.sub("PB", "push button", text, flags=re.I) + text = re.sub("man", "manual", text, flags=re.I) + text = re.sub("FLT", "flight", text, flags=re.I) + text = re.sub("INST", "instruments", text, flags=re.I) + text = re.sub("TEMP", "temperature", text, flags=re.I) + text = re.sub(" LT", "light", text, flags=re.I) + text = re.sub("SEL", "selector", text, flags=re.I) + text = re.sub("LDG", "landing", text, flags=re.I) + text = re.sub("MDA", "minimum decent altitude", text, flags=re.I) + text = re.sub("DH", "decision height", text, flags=re.I) + text = re.sub("EXT", "external", text, flags=re.I) + text = re.sub("FLX", "flex", text, flags=re.I) + text = re.sub("EMER", "emergency", text, flags=re.I) + text = re.sub("BRK", "break", text, flags=re.I) + text = re.sub("KG", "kilogram", text, flags=re.I) + text = re.sub("LB", "pounds", text, flags=re.I) + text = re.sub("LBS", "pounds", text, flags=re.I) + text = re.sub("AS RQRD", "on|set|off|normal", text, flags=re.I) # since we don't know, what is needed in the current situation + text = re.sub("CONF", "config", text, flags=re.I) + text = re.sub(" OR ", "|", text, flags=re.I) + text = re.sub("0", "zero", text, flags=re.I) + return text + # exit routine to properly close the tn con def exit(self, tn): tn.close diff --git a/dialog/en-us/check.after.ldg.apu.dialog b/dialog/en-us/check.after.ldg.apu.dialog deleted file mode 100644 index 6c76029..0000000 --- a/dialog/en-us/check.after.ldg.apu.dialog +++ /dev/null @@ -1 +0,0 @@ -A P U diff --git a/dialog/en-us/check.after.ldg.radar.dialog b/dialog/en-us/check.after.ldg.radar.dialog deleted file mode 100644 index 453df10..0000000 --- a/dialog/en-us/check.after.ldg.radar.dialog +++ /dev/null @@ -1 +0,0 @@ -Radar diff --git a/dialog/en-us/check.after.ldg.spoilers.dialog b/dialog/en-us/check.after.ldg.spoilers.dialog deleted file mode 100644 index 90daa8f..0000000 --- a/dialog/en-us/check.after.ldg.spoilers.dialog +++ /dev/null @@ -1 +0,0 @@ -Spoilers diff --git a/dialog/en-us/check.after.ldg.wx.dialog b/dialog/en-us/check.after.ldg.wx.dialog deleted file mode 100644 index 9ef4c99..0000000 --- a/dialog/en-us/check.after.ldg.wx.dialog +++ /dev/null @@ -1 +0,0 @@ -Predictive windshear system diff --git a/dialog/en-us/check.after.start.anti.ice.dialog b/dialog/en-us/check.after.start.anti.ice.dialog deleted file mode 100644 index 232a042..0000000 --- a/dialog/en-us/check.after.start.anti.ice.dialog +++ /dev/null @@ -1 +0,0 @@ -Anti ice diff --git a/dialog/en-us/check.after.start.pitch.trim.dialog b/dialog/en-us/check.after.start.pitch.trim.dialog deleted file mode 100644 index 71ef6a9..0000000 --- a/dialog/en-us/check.after.start.pitch.trim.dialog +++ /dev/null @@ -1 +0,0 @@ -Pitch trim diff --git a/dialog/en-us/check.after.start.rudder.trim.dialog b/dialog/en-us/check.after.start.rudder.trim.dialog deleted file mode 100644 index 20e016b..0000000 --- a/dialog/en-us/check.after.start.rudder.trim.dialog +++ /dev/null @@ -1 +0,0 @@ -Rudder trim diff --git a/dialog/en-us/check.appr.min.dialog b/dialog/en-us/check.appr.min.dialog deleted file mode 100644 index a1a9b0b..0000000 --- a/dialog/en-us/check.appr.min.dialog +++ /dev/null @@ -1 +0,0 @@ -Minimum diff --git a/dialog/en-us/check.before.start.beacon.dialog b/dialog/en-us/check.before.start.beacon.dialog deleted file mode 100644 index 9b0bc6e..0000000 --- a/dialog/en-us/check.before.start.beacon.dialog +++ /dev/null @@ -1 +0,0 @@ -Beacon diff --git a/dialog/en-us/check.before.start.cockpit.preparation.dialog b/dialog/en-us/check.before.start.cockpit.preparation.dialog deleted file mode 100644 index c65f0fd..0000000 --- a/dialog/en-us/check.before.start.cockpit.preparation.dialog +++ /dev/null @@ -1 +0,0 @@ -Cockpit preparation diff --git a/dialog/en-us/check.before.start.fuel.quantity.dialog b/dialog/en-us/check.before.start.fuel.quantity.dialog deleted file mode 100644 index 86885bf..0000000 --- a/dialog/en-us/check.before.start.fuel.quantity.dialog +++ /dev/null @@ -1 +0,0 @@ -Fuel quantity diff --git a/dialog/en-us/check.before.start.gear.pin.dialog b/dialog/en-us/check.before.start.gear.pin.dialog deleted file mode 100644 index 0ab57cf..0000000 --- a/dialog/en-us/check.before.start.gear.pin.dialog +++ /dev/null @@ -1 +0,0 @@ -Gear pins and covers diff --git a/dialog/en-us/check.before.start.thr.lever.dialog b/dialog/en-us/check.before.start.thr.lever.dialog deleted file mode 100644 index 390a170..0000000 --- a/dialog/en-us/check.before.start.thr.lever.dialog +++ /dev/null @@ -1 +0,0 @@ -Thrust lever diff --git a/dialog/en-us/check.before.start.to.data.dialog b/dialog/en-us/check.before.start.to.data.dialog deleted file mode 100644 index cc760cb..0000000 --- a/dialog/en-us/check.before.start.to.data.dialog +++ /dev/null @@ -1 +0,0 @@ -Take off data diff --git a/dialog/en-us/check.before.start.window.dialog b/dialog/en-us/check.before.start.window.dialog deleted file mode 100644 index ae849ed..0000000 --- a/dialog/en-us/check.before.start.window.dialog +++ /dev/null @@ -1 +0,0 @@ -Windows and doors diff --git a/dialog/en-us/check.climb.gear.up.dialog b/dialog/en-us/check.climb.gear.up.dialog deleted file mode 100644 index 118004a..0000000 --- a/dialog/en-us/check.climb.gear.up.dialog +++ /dev/null @@ -1 +0,0 @@ -Landing gear diff --git a/dialog/en-us/check.general.adirs.dialog b/dialog/en-us/check.general.adirs.dialog deleted file mode 100644 index ebe2952..0000000 --- a/dialog/en-us/check.general.adirs.dialog +++ /dev/null @@ -1 +0,0 @@ -A D I R S diff --git a/dialog/en-us/check.general.apu.bleed.dialog b/dialog/en-us/check.general.apu.bleed.dialog deleted file mode 100644 index a684c7a..0000000 --- a/dialog/en-us/check.general.apu.bleed.dialog +++ /dev/null @@ -1 +0,0 @@ -APU bleed diff --git a/dialog/en-us/check.general.baro.ref.dialog b/dialog/en-us/check.general.baro.ref.dialog deleted file mode 100644 index 3c18297..0000000 --- a/dialog/en-us/check.general.baro.ref.dialog +++ /dev/null @@ -1 +0,0 @@ -Baro reference diff --git a/dialog/en-us/check.general.briefing.dialog b/dialog/en-us/check.general.briefing.dialog deleted file mode 100644 index d8aa81e..0000000 --- a/dialog/en-us/check.general.briefing.dialog +++ /dev/null @@ -1 +0,0 @@ -Briefing diff --git a/dialog/en-us/check.general.ecam.status.dialog b/dialog/en-us/check.general.ecam.status.dialog deleted file mode 100644 index a4c175a..0000000 --- a/dialog/en-us/check.general.ecam.status.dialog +++ /dev/null @@ -1 +0,0 @@ -ECAM status diff --git a/dialog/en-us/check.general.eng.mode.sel.dialog b/dialog/en-us/check.general.eng.mode.sel.dialog deleted file mode 100644 index b3111dd..0000000 --- a/dialog/en-us/check.general.eng.mode.sel.dialog +++ /dev/null @@ -1 +0,0 @@ -Engine mode selector diff --git a/dialog/en-us/check.general.flaps.dialog b/dialog/en-us/check.general.flaps.dialog deleted file mode 100644 index e1349cc..0000000 --- a/dialog/en-us/check.general.flaps.dialog +++ /dev/null @@ -1 +0,0 @@ -Flaps diff --git a/dialog/en-us/check.general.packs.dialog b/dialog/en-us/check.general.packs.dialog deleted file mode 100644 index e6b9745..0000000 --- a/dialog/en-us/check.general.packs.dialog +++ /dev/null @@ -1 +0,0 @@ -Packs diff --git a/dialog/en-us/check.general.parking.break.dialog b/dialog/en-us/check.general.parking.break.dialog deleted file mode 100644 index 0def177..0000000 --- a/dialog/en-us/check.general.parking.break.dialog +++ /dev/null @@ -1 +0,0 @@ -Parking break diff --git a/dialog/en-us/check.general.seat.belts.dialog b/dialog/en-us/check.general.seat.belts.dialog deleted file mode 100644 index 1a3df7f..0000000 --- a/dialog/en-us/check.general.seat.belts.dialog +++ /dev/null @@ -1 +0,0 @@ -Seat belts diff --git a/dialog/en-us/check.general.signs.dialog b/dialog/en-us/check.general.signs.dialog deleted file mode 100644 index b8cf7f5..0000000 --- a/dialog/en-us/check.general.signs.dialog +++ /dev/null @@ -1 +0,0 @@ -Signs diff --git a/dialog/en-us/check.ldg.no.blue.dialog b/dialog/en-us/check.ldg.no.blue.dialog deleted file mode 100644 index 08ae5ae..0000000 --- a/dialog/en-us/check.ldg.no.blue.dialog +++ /dev/null @@ -1 +0,0 @@ -Landing no blue diff --git a/dialog/en-us/check.parking.eng.dialog b/dialog/en-us/check.parking.eng.dialog deleted file mode 100644 index a2a6926..0000000 --- a/dialog/en-us/check.parking.eng.dialog +++ /dev/null @@ -1 +0,0 @@ -Engines diff --git a/dialog/en-us/check.parking.fuel.pumps.dialog b/dialog/en-us/check.parking.fuel.pumps.dialog deleted file mode 100644 index 0e32117..0000000 --- a/dialog/en-us/check.parking.fuel.pumps.dialog +++ /dev/null @@ -1 +0,0 @@ -Fuel pumps diff --git a/dialog/en-us/check.parking.lights.dialog b/dialog/en-us/check.parking.lights.dialog deleted file mode 100644 index cebf235..0000000 --- a/dialog/en-us/check.parking.lights.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Lights -External lights diff --git a/dialog/en-us/check.securing.apu.bat.dialog b/dialog/en-us/check.securing.apu.bat.dialog deleted file mode 100644 index 7a31ef9..0000000 --- a/dialog/en-us/check.securing.apu.bat.dialog +++ /dev/null @@ -1 +0,0 @@ -APU and Battery diff --git a/dialog/en-us/check.securing.emer.exit.lt.dialog b/dialog/en-us/check.securing.emer.exit.lt.dialog deleted file mode 100644 index f9526e1..0000000 --- a/dialog/en-us/check.securing.emer.exit.lt.dialog +++ /dev/null @@ -1 +0,0 @@ -Emergency exit lights diff --git a/dialog/en-us/check.securing.oxygen.dialog b/dialog/en-us/check.securing.oxygen.dialog deleted file mode 100644 index 6153ca3..0000000 --- a/dialog/en-us/check.securing.oxygen.dialog +++ /dev/null @@ -1 +0,0 @@ -Oxygen diff --git a/dialog/en-us/check.taxi.atc.dialog b/dialog/en-us/check.taxi.atc.dialog deleted file mode 100644 index 42cd13c..0000000 --- a/dialog/en-us/check.taxi.atc.dialog +++ /dev/null @@ -1 +0,0 @@ -ATC diff --git a/dialog/en-us/check.taxi.cabin.crew.dialog b/dialog/en-us/check.taxi.cabin.crew.dialog deleted file mode 100644 index 85f3f06..0000000 --- a/dialog/en-us/check.taxi.cabin.crew.dialog +++ /dev/null @@ -1 +0,0 @@ -Cabin crew diff --git a/dialog/en-us/check.taxi.flaps.settings.dialog b/dialog/en-us/check.taxi.flaps.settings.dialog deleted file mode 100644 index d5f9526..0000000 --- a/dialog/en-us/check.taxi.flaps.settings.dialog +++ /dev/null @@ -1 +0,0 @@ -Flaps settings diff --git a/dialog/en-us/check.taxi.flight.controls.dialog b/dialog/en-us/check.taxi.flight.controls.dialog deleted file mode 100644 index 9b2eaa1..0000000 --- a/dialog/en-us/check.taxi.flight.controls.dialog +++ /dev/null @@ -1 +0,0 @@ -Flight controls diff --git a/dialog/en-us/check.taxi.flight.instruments.dialog b/dialog/en-us/check.taxi.flight.instruments.dialog deleted file mode 100644 index dc2c3a7..0000000 --- a/dialog/en-us/check.taxi.flight.instruments.dialog +++ /dev/null @@ -1 +0,0 @@ -Flight instruments diff --git a/dialog/en-us/check.taxi.tcas.dialog b/dialog/en-us/check.taxi.tcas.dialog deleted file mode 100644 index 026f3f1..0000000 --- a/dialog/en-us/check.taxi.tcas.dialog +++ /dev/null @@ -1 +0,0 @@ -TCAS diff --git a/dialog/en-us/check.taxi.to.no.blue.dialog b/dialog/en-us/check.taxi.to.no.blue.dialog deleted file mode 100644 index 4705302..0000000 --- a/dialog/en-us/check.taxi.to.no.blue.dialog +++ /dev/null @@ -1 +0,0 @@ -ECAM, take off no blue diff --git a/dialog/en-us/check.taxi.to.rwy.dialog b/dialog/en-us/check.taxi.to.rwy.dialog deleted file mode 100644 index 17fa1d9..0000000 --- a/dialog/en-us/check.taxi.to.rwy.dialog +++ /dev/null @@ -1 +0,0 @@ -Take off runway diff --git a/dialog/en-us/check.taxi.v.spd.dialog b/dialog/en-us/check.taxi.v.spd.dialog deleted file mode 100644 index d78a677..0000000 --- a/dialog/en-us/check.taxi.v.spd.dialog +++ /dev/null @@ -1 +0,0 @@ -V1, VR and V2 diff --git a/vocab/en-us/after.ldg.check.voc b/vocab/en-us/after.ldg.check.voc deleted file mode 100644 index 7a72567..0000000 --- a/vocab/en-us/after.ldg.check.voc +++ /dev/null @@ -1,2 +0,0 @@ -after landing check list -after landing checklist diff --git a/vocab/en-us/after.start.check.voc b/vocab/en-us/after.start.check.voc deleted file mode 100644 index 9886de7..0000000 --- a/vocab/en-us/after.start.check.voc +++ /dev/null @@ -1,2 +0,0 @@ -After start checklist -After start check list diff --git a/vocab/en-us/appr.check.voc b/vocab/en-us/appr.check.voc deleted file mode 100644 index 18458a3..0000000 --- a/vocab/en-us/appr.check.voc +++ /dev/null @@ -1,3 +0,0 @@ -approach check -approach check list -approach checklist diff --git a/vocab/en-us/before.start.check.voc b/vocab/en-us/before.start.check.voc deleted file mode 100644 index b9a6531..0000000 --- a/vocab/en-us/before.start.check.voc +++ /dev/null @@ -1,2 +0,0 @@ -Before start checklist -Before start check list diff --git a/vocab/en-us/check.list.voc b/vocab/en-us/check.list.voc new file mode 100644 index 0000000..8ae6536 --- /dev/null +++ b/vocab/en-us/check.list.voc @@ -0,0 +1,2 @@ +check list +checklist diff --git a/vocab/en-us/climb.check.voc b/vocab/en-us/climb.check.voc deleted file mode 100644 index bcb1d4f..0000000 --- a/vocab/en-us/climb.check.voc +++ /dev/null @@ -1,4 +0,0 @@ -after take off checklist -after take off check list -climb checklist -climb check list diff --git a/vocab/en-us/flight.control.check.voc b/vocab/en-us/flight.control.check.voc deleted file mode 100644 index bf32b19..0000000 --- a/vocab/en-us/flight.control.check.voc +++ /dev/null @@ -1,3 +0,0 @@ -Flight control check -Flight controls check -Flight controls diff --git a/vocab/en-us/ldg.check.voc b/vocab/en-us/ldg.check.voc deleted file mode 100644 index e9b29c5..0000000 --- a/vocab/en-us/ldg.check.voc +++ /dev/null @@ -1,2 +0,0 @@ -landing check list -landing checklist diff --git a/vocab/en-us/parking.check.voc b/vocab/en-us/parking.check.voc deleted file mode 100644 index c9d5170..0000000 --- a/vocab/en-us/parking.check.voc +++ /dev/null @@ -1,2 +0,0 @@ -parking check list -parking checklist diff --git a/vocab/en-us/securing.check.voc b/vocab/en-us/securing.check.voc deleted file mode 100644 index 8a97fbb..0000000 --- a/vocab/en-us/securing.check.voc +++ /dev/null @@ -1,6 +0,0 @@ -Securing checklist -Securing check list -Securing the aircraft checklist -Securing the aircraft check list -Securing aircraft checklist -Securing aircraft check list diff --git a/vocab/en-us/taxi.check.voc b/vocab/en-us/taxi.check.voc deleted file mode 100644 index ff43b5a..0000000 --- a/vocab/en-us/taxi.check.voc +++ /dev/null @@ -1,4 +0,0 @@ -taxi checklist -taxi check list -before take off checklist -before take off check list