From 795df466dc46119b65f720ab10f928c218914d5e Mon Sep 17 00:00:00 2001 From: merspieler Date: Fri, 23 Feb 2018 11:20:37 +0100 Subject: [PATCH 01/11] Added check.list.voc --- vocab/en-us/check.list.voc | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 vocab/en-us/check.list.voc 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 From e80842d91a624743cff86dacb70f9b166ec8c674 Mon Sep 17 00:00:00 2001 From: merspieler Date: Fri, 23 Feb 2018 13:25:16 +0100 Subject: [PATCH 02/11] Added dummy.dialog --- dialog/en-us/dummy.dialog | 1 + 1 file changed, 1 insertion(+) create mode 100644 dialog/en-us/dummy.dialog diff --git a/dialog/en-us/dummy.dialog b/dialog/en-us/dummy.dialog new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dialog/en-us/dummy.dialog @@ -0,0 +1 @@ + From 598f12ffe2c16d5079913e0b91ca19393efc55d1 Mon Sep 17 00:00:00 2001 From: merspieler Date: Sat, 24 Feb 2018 00:29:26 +0100 Subject: [PATCH 03/11] Added dummy.dialog Signed-off-by: merspieler --- dialog/en-us/dummy.dialog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dialog/en-us/dummy.dialog b/dialog/en-us/dummy.dialog index 8b13789..9c558e3 100644 --- a/dialog/en-us/dummy.dialog +++ b/dialog/en-us/dummy.dialog @@ -1 +1 @@ - +. From a970906ca12b3873c03b560f408808db6d8b008a Mon Sep 17 00:00:00 2001 From: merspieler Date: Sat, 24 Feb 2018 00:30:07 +0100 Subject: [PATCH 04/11] Removed not longer needed files Signed-off-by: merspieler --- dialog/en-us/check.after.ldg.apu.dialog | 1 - dialog/en-us/check.after.ldg.radar.dialog | 1 - dialog/en-us/check.after.ldg.spoilers.dialog | 1 - dialog/en-us/check.after.ldg.wx.dialog | 1 - dialog/en-us/check.after.start.anti.ice.dialog | 1 - dialog/en-us/check.after.start.pitch.trim.dialog | 1 - dialog/en-us/check.after.start.rudder.trim.dialog | 1 - dialog/en-us/check.appr.min.dialog | 1 - dialog/en-us/check.before.start.beacon.dialog | 1 - dialog/en-us/check.before.start.cockpit.preparation.dialog | 1 - dialog/en-us/check.before.start.fuel.quantity.dialog | 1 - dialog/en-us/check.before.start.gear.pin.dialog | 1 - dialog/en-us/check.before.start.thr.lever.dialog | 1 - dialog/en-us/check.before.start.to.data.dialog | 1 - dialog/en-us/check.before.start.window.dialog | 1 - dialog/en-us/check.climb.gear.up.dialog | 1 - dialog/en-us/check.general.adirs.dialog | 1 - dialog/en-us/check.general.apu.bleed.dialog | 1 - dialog/en-us/check.general.baro.ref.dialog | 1 - dialog/en-us/check.general.briefing.dialog | 1 - dialog/en-us/check.general.ecam.status.dialog | 1 - dialog/en-us/check.general.eng.mode.sel.dialog | 1 - dialog/en-us/check.general.flaps.dialog | 1 - dialog/en-us/check.general.packs.dialog | 1 - dialog/en-us/check.general.parking.break.dialog | 1 - dialog/en-us/check.general.seat.belts.dialog | 1 - dialog/en-us/check.general.signs.dialog | 1 - dialog/en-us/check.ldg.no.blue.dialog | 1 - dialog/en-us/check.parking.eng.dialog | 1 - dialog/en-us/check.parking.fuel.pumps.dialog | 1 - dialog/en-us/check.parking.lights.dialog | 2 -- dialog/en-us/check.securing.apu.bat.dialog | 1 - dialog/en-us/check.securing.emer.exit.lt.dialog | 1 - dialog/en-us/check.securing.oxygen.dialog | 1 - dialog/en-us/check.taxi.atc.dialog | 1 - dialog/en-us/check.taxi.cabin.crew.dialog | 1 - dialog/en-us/check.taxi.flaps.settings.dialog | 1 - dialog/en-us/check.taxi.flight.controls.dialog | 1 - dialog/en-us/check.taxi.flight.instruments.dialog | 1 - dialog/en-us/check.taxi.tcas.dialog | 1 - dialog/en-us/check.taxi.to.no.blue.dialog | 1 - dialog/en-us/check.taxi.to.rwy.dialog | 1 - dialog/en-us/check.taxi.v.spd.dialog | 1 - vocab/en-us/after.ldg.check.voc | 2 -- vocab/en-us/after.start.check.voc | 2 -- vocab/en-us/appr.check.voc | 3 --- vocab/en-us/before.start.check.voc | 2 -- vocab/en-us/climb.check.voc | 4 ---- vocab/en-us/flight.control.check.voc | 3 --- vocab/en-us/ldg.check.voc | 2 -- vocab/en-us/parking.check.voc | 2 -- vocab/en-us/securing.check.voc | 6 ------ vocab/en-us/taxi.check.voc | 4 ---- 53 files changed, 74 deletions(-) delete mode 100644 dialog/en-us/check.after.ldg.apu.dialog delete mode 100644 dialog/en-us/check.after.ldg.radar.dialog delete mode 100644 dialog/en-us/check.after.ldg.spoilers.dialog delete mode 100644 dialog/en-us/check.after.ldg.wx.dialog delete mode 100644 dialog/en-us/check.after.start.anti.ice.dialog delete mode 100644 dialog/en-us/check.after.start.pitch.trim.dialog delete mode 100644 dialog/en-us/check.after.start.rudder.trim.dialog delete mode 100644 dialog/en-us/check.appr.min.dialog delete mode 100644 dialog/en-us/check.before.start.beacon.dialog delete mode 100644 dialog/en-us/check.before.start.cockpit.preparation.dialog delete mode 100644 dialog/en-us/check.before.start.fuel.quantity.dialog delete mode 100644 dialog/en-us/check.before.start.gear.pin.dialog delete mode 100644 dialog/en-us/check.before.start.thr.lever.dialog delete mode 100644 dialog/en-us/check.before.start.to.data.dialog delete mode 100644 dialog/en-us/check.before.start.window.dialog delete mode 100644 dialog/en-us/check.climb.gear.up.dialog delete mode 100644 dialog/en-us/check.general.adirs.dialog delete mode 100644 dialog/en-us/check.general.apu.bleed.dialog delete mode 100644 dialog/en-us/check.general.baro.ref.dialog delete mode 100644 dialog/en-us/check.general.briefing.dialog delete mode 100644 dialog/en-us/check.general.ecam.status.dialog delete mode 100644 dialog/en-us/check.general.eng.mode.sel.dialog delete mode 100644 dialog/en-us/check.general.flaps.dialog delete mode 100644 dialog/en-us/check.general.packs.dialog delete mode 100644 dialog/en-us/check.general.parking.break.dialog delete mode 100644 dialog/en-us/check.general.seat.belts.dialog delete mode 100644 dialog/en-us/check.general.signs.dialog delete mode 100644 dialog/en-us/check.ldg.no.blue.dialog delete mode 100644 dialog/en-us/check.parking.eng.dialog delete mode 100644 dialog/en-us/check.parking.fuel.pumps.dialog delete mode 100644 dialog/en-us/check.parking.lights.dialog delete mode 100644 dialog/en-us/check.securing.apu.bat.dialog delete mode 100644 dialog/en-us/check.securing.emer.exit.lt.dialog delete mode 100644 dialog/en-us/check.securing.oxygen.dialog delete mode 100644 dialog/en-us/check.taxi.atc.dialog delete mode 100644 dialog/en-us/check.taxi.cabin.crew.dialog delete mode 100644 dialog/en-us/check.taxi.flaps.settings.dialog delete mode 100644 dialog/en-us/check.taxi.flight.controls.dialog delete mode 100644 dialog/en-us/check.taxi.flight.instruments.dialog delete mode 100644 dialog/en-us/check.taxi.tcas.dialog delete mode 100644 dialog/en-us/check.taxi.to.no.blue.dialog delete mode 100644 dialog/en-us/check.taxi.to.rwy.dialog delete mode 100644 dialog/en-us/check.taxi.v.spd.dialog delete mode 100644 vocab/en-us/after.ldg.check.voc delete mode 100644 vocab/en-us/after.start.check.voc delete mode 100644 vocab/en-us/appr.check.voc delete mode 100644 vocab/en-us/before.start.check.voc delete mode 100644 vocab/en-us/climb.check.voc delete mode 100644 vocab/en-us/flight.control.check.voc delete mode 100644 vocab/en-us/ldg.check.voc delete mode 100644 vocab/en-us/parking.check.voc delete mode 100644 vocab/en-us/securing.check.voc delete mode 100644 vocab/en-us/taxi.check.voc 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/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 From 037cb1427c3c69fa2ad3aad400870bda27b39947 Mon Sep 17 00:00:00 2001 From: merspieler Date: Sat, 24 Feb 2018 00:31:51 +0100 Subject: [PATCH 05/11] Added basic structure for using fg's checklists Signed-off-by: merspieler --- __init__.py | 682 +++++--------------------------------------------- settings.json | 2 +- 2 files changed, 69 insertions(+), 615 deletions(-) diff --git a/__init__.py b/__init__.py index 0262ed1..67e8a05 100644 --- a/__init__.py +++ b/__init__.py @@ -241,7 +241,6 @@ class FlightGearCopilotSkill(MycroftSkill): else: self.speak_dialog("gear.not.retractable") - ################################################################# # # # Checklists # @@ -249,621 +248,62 @@ class FlightGearCopilotSkill(MycroftSkill): ################################################################# # TODO make it possible, to play a .mp3 file instead of tts -# TODO read checklists from fg -################################# -# # -# Before Start Check # -# # -################################# + @intent_handler(IntentBuilder('CheckListIntent').require('check.list')) + def handle_check_list_intent(self, message): + + 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 - 1): + checklist = i + checklist_title = self.get_prop(tn, "/sim/checklists/checklist[" + str(checklist) + "]/title") + # TODO replace '/' with '|' + match = re.search(re.escape(checklist_title), cl_request, re.I) + + if match != None: + self.speak("Checklist found") + 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 - 1): + 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") + # TODO expand adverbations to full words, remove '/' + self.speak(item_name) + + response = self.get_response("dummy") + if response == None: + self.speak("Checklist not completed") + sys.exit(0) + # TODO modify item_value to make it speakable (eg removing '(') + # TODO replace '/' with '|' + match = re.search(item_value, response, re.I) + if match == None: + self.speak("Checklist not completed") + sys.exit(0) ################################################################# @@ -909,9 +349,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 + # exit routine to properly close the tn con def exit(self, tn): tn.close diff --git a/settings.json b/settings.json index 3b22dc3..ab4a5b2 100644 --- a/settings.json +++ b/settings.json @@ -1 +1 @@ -{"__mycroft_skill_firstrun": false, "host": "localhost", "port": 8081, "profiles": [{"gear-retractable": "true", "flaps-path": "/controls/flight/flap-lever", "acid": ["A320-200-CFM", "A320-200-IAE", "A320-100-CFM", "A320neo-CFM", "A320neo-PW"], "name": "Airbus 320", "flaps": [{"max-spd": 350, "min-spd": 210, "id": "up", "value": 0}, {"max-spd": 230, "min-spd": 180, "id": 1, "value": 1}, {"max-spd": 200, "min-spd": 165, "id": 2, "value": 2}, {"max-spd": 185, "min-spd": 150, "id": 3, "value": 3}, {"max-spd": 177, "min-spd": 0, "id": "full", "value": 4}]}, {"gear-retractable": "false", "acid": ["c172p"], "name": "c172p", "flaps": [{"max-spd": 300, "min-spd": 80, "id": "up", "value": 0}, {"max-spd": 110, "min-spd": 65, "id": 1, "value": 1}, {"max-spd": 85, "min-spd": 50, "id": "down", "value": 2}]}]} +{"__mycroft_skill_firstrun": false, "host": "localhost", "port": 8081, "profiles": [{"gear-retractable": "true", "flaps-path": "/controls/flight/flap-lever", "acid": ["A320-200-CFM", "A320-200-IAE", "A320-100-CFM", "A320neo-CFM", "A320neo-PW"], "name": "Airbus 320", "flaps": [{"max-spd": 350, "min-spd": 210, "id": "up", "value": 0}, {"max-spd": 230, "min-spd": 180, "id": 1, "value": 1}, {"max-spd": 200, "min-spd": 165, "id": 2, "value": 2}, {"max-spd": 185, "min-spd": 150, "id": 3, "value": 3}, {"max-spd": 177, "min-spd": 0, "id": "full", "value": 4}]}, {"gear-retractable": "false", "acid": ["c172p"], "name": "c172p", "flaps": [{"max-spd": 300, "min-spd": 80, "id": "up", "value": 0}, {"max-spd": 110, "min-spd": 65, "id": 1, "value": 1}, {"max-spd": 85, "min-spd": 50, "id": "down", "value": 2}]}]} \ No newline at end of file From aaeb6d77d99de5e2ca7819ef70b40b1e822a1cbf Mon Sep 17 00:00:00 2001 From: merspieler Date: Tue, 27 Feb 2018 23:02:22 +0100 Subject: [PATCH 06/11] Added expansion of adverbations to full words Signed-off-by: merspieler --- __init__.py | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/__init__.py b/__init__.py index 67e8a05..f7f5137 100644 --- a/__init__.py +++ b/__init__.py @@ -265,7 +265,7 @@ class FlightGearCopilotSkill(MycroftSkill): for i in range(0, checklist_count - 1): checklist = i checklist_title = self.get_prop(tn, "/sim/checklists/checklist[" + str(checklist) + "]/title") - # TODO replace '/' with '|' + checklist_title = checklist_title.replace('/', '|') match = re.search(re.escape(checklist_title), cl_request, re.I) if match != None: @@ -291,7 +291,37 @@ class FlightGearCopilotSkill(MycroftSkill): 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") - # TODO expand adverbations to full words, remove '/' + + # expand adverbations to full words + # TODO reduce collisions when used with other a/c + item_name = re.sub("\sALT\s?", "altitude", item_name, flags=re.I) + item_name = re.sub("L/G", "landing gear", item_name, flags=re.I) + item_name = re.sub("SPLRS", "spoilers", item_name, flags=re.I) + item_name = re.sub("PREP", "preperation", item_name, flags=re.I) + item_name = re.sub("TO ", "take off ", item_name) + item_name = re.sub(" TO", " take off", item_name) # have it twice to prevent collisions with words containing 'to' + item_name = re.sub("REF", "reference", item_name, flags=re.I) + item_name = re.sub("A/SKID", "anti skid", item_name, flags=re.I) + item_name = re.sub("N/W", "nose weel", item_name, flags=re.I) + item_name = re.sub("A/THR", "auto thrust", item_name, flags=re.I) + item_name = re.sub("THR", "thrust", item_name, flags=re.I) + item_name = re.sub("Eng", "engine", item_name, flags=re.I) + item_name = re.sub("Mstr", "master", item_name, flags=re.I) + item_name = re.sub("PB", "push button", item_name, flags=re.I) + item_name = re.sub("man", "manual", item_name, flags=re.I) + item_name = re.sub("FLT", "flight", item_name, flags=re.I) + item_name = re.sub("INST", "instruments", item_name, flags=re.I) + item_name = re.sub("TEMP", "temperature", item_name, flags=re.I) + item_name = re.sub("LT", "light", item_name, flags=re.I) + item_name = re.sub("SEL", "selector", item_name, flags=re.I) + item_name = re.sub("LDG", "landing", item_name, flags=re.I) + item_name = re.sub("MDA", "minimum decent altitude", item_name, flags=re.I) + item_name = re.sub("DH", "decision height", item_name, flags=re.I) + item_name = re.sub("EXT", "external", item_name, flags=re.I) + item_name = re.sub("FLX", "flex", item_name, flags=re.I) + item_name = re.sub("EMER", "emergency", item_name, flags=re.I) + item_name = re.sub("BRK", "break", item_name, flags=re.I) + item_name = item_name.replace('/', ' ') # has to be last cause some adverbations may contain a '/' self.speak(item_name) response = self.get_response("dummy") @@ -325,7 +355,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") From 59d392d3d57673046aad7e1ece747bc6f55298e7 Mon Sep 17 00:00:00 2001 From: merspieler Date: Wed, 28 Feb 2018 11:34:19 +0100 Subject: [PATCH 07/11] Moved adverbation replacement to own function Signed-off-by: merspieler --- __init__.py | 88 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 34 deletions(-) diff --git a/__init__.py b/__init__.py index f7f5137..bf41e0e 100644 --- a/__init__.py +++ b/__init__.py @@ -46,6 +46,8 @@ class FlightGearCopilotSkill(MycroftSkill): # might be useful # make_active() +# TODO make it possible, to play a .mp3 file instead of tts + ################################################################# # # # Actions # @@ -247,7 +249,6 @@ class FlightGearCopilotSkill(MycroftSkill): # # ################################################################# -# TODO make it possible, to play a .mp3 file instead of tts @intent_handler(IntentBuilder('CheckListIntent').require('check.list')) def handle_check_list_intent(self, message): @@ -291,50 +292,36 @@ class FlightGearCopilotSkill(MycroftSkill): 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") - - # expand adverbations to full words - # TODO reduce collisions when used with other a/c - item_name = re.sub("\sALT\s?", "altitude", item_name, flags=re.I) - item_name = re.sub("L/G", "landing gear", item_name, flags=re.I) - item_name = re.sub("SPLRS", "spoilers", item_name, flags=re.I) - item_name = re.sub("PREP", "preperation", item_name, flags=re.I) - item_name = re.sub("TO ", "take off ", item_name) - item_name = re.sub(" TO", " take off", item_name) # have it twice to prevent collisions with words containing 'to' - item_name = re.sub("REF", "reference", item_name, flags=re.I) - item_name = re.sub("A/SKID", "anti skid", item_name, flags=re.I) - item_name = re.sub("N/W", "nose weel", item_name, flags=re.I) - item_name = re.sub("A/THR", "auto thrust", item_name, flags=re.I) - item_name = re.sub("THR", "thrust", item_name, flags=re.I) - item_name = re.sub("Eng", "engine", item_name, flags=re.I) - item_name = re.sub("Mstr", "master", item_name, flags=re.I) - item_name = re.sub("PB", "push button", item_name, flags=re.I) - item_name = re.sub("man", "manual", item_name, flags=re.I) - item_name = re.sub("FLT", "flight", item_name, flags=re.I) - item_name = re.sub("INST", "instruments", item_name, flags=re.I) - item_name = re.sub("TEMP", "temperature", item_name, flags=re.I) - item_name = re.sub("LT", "light", item_name, flags=re.I) - item_name = re.sub("SEL", "selector", item_name, flags=re.I) - item_name = re.sub("LDG", "landing", item_name, flags=re.I) - item_name = re.sub("MDA", "minimum decent altitude", item_name, flags=re.I) - item_name = re.sub("DH", "decision height", item_name, flags=re.I) - item_name = re.sub("EXT", "external", item_name, flags=re.I) - item_name = re.sub("FLX", "flex", item_name, flags=re.I) - item_name = re.sub("EMER", "emergency", item_name, flags=re.I) - item_name = re.sub("BRK", "break", item_name, flags=re.I) - item_name = item_name.replace('/', ' ') # has to be last cause some adverbations may contain a '/' + 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) - # TODO modify item_value to make it speakable (eg removing '(') - # TODO replace '/' with '|' + + # 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 = item_value.replace('/', '|') + item_value = item_value.replace('_', '') + item_value = item_value.replace('(', ' ') + item_value = item_value.replace(')', ' ') 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) + ################################################################# # # @@ -396,6 +383,39 @@ class FlightGearCopilotSkill(MycroftSkill): return found + # 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) + return text + # exit routine to properly close the tn con def exit(self, tn): tn.close From 52b24ff49278d8b98aa949cf2cf5d06a59b98c90 Mon Sep 17 00:00:00 2001 From: merspieler Date: Wed, 28 Feb 2018 11:39:09 +0100 Subject: [PATCH 08/11] Readded accidently removed flight control check --- __init__.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index bf41e0e..846d877 100644 --- a/__init__.py +++ b/__init__.py @@ -249,7 +249,6 @@ class FlightGearCopilotSkill(MycroftSkill): # # ################################################################# - @intent_handler(IntentBuilder('CheckListIntent').require('check.list')) def handle_check_list_intent(self, message): @@ -322,6 +321,27 @@ class FlightGearCopilotSkill(MycroftSkill): if fo_conf = 1: self.speak(item_value) + @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") ################################################################# # # From decf553bd016855bb67ae1147986a3c24864d803 Mon Sep 17 00:00:00 2001 From: merspieler Date: Wed, 28 Feb 2018 22:50:24 +0100 Subject: [PATCH 09/11] Minor fixes Signed-off-by: merspieler --- __init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 846d877..552f140 100644 --- a/__init__.py +++ b/__init__.py @@ -318,7 +318,7 @@ class FlightGearCopilotSkill(MycroftSkill): self.speak("Checklist not completed") sys.exit(0) - if fo_conf = 1: + if fo_conf == 1: self.speak(item_value) @intent_handler(IntentBuilder('FlightControlCheckIntent').require('flight.control.check')) @@ -404,7 +404,7 @@ class FlightGearCopilotSkill(MycroftSkill): return found # expands adverbations to full words - def expand_adverbations(self, text) + 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) From f3ea5927e53521ed672d0491810b0cd0969ac9f6 Mon Sep 17 00:00:00 2001 From: merspieler Date: Wed, 7 Mar 2018 01:07:37 +0100 Subject: [PATCH 10/11] Fixed multiple problems Signed-off-by: merspieler --- __init__.py | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/__init__.py b/__init__.py index 552f140..21cbe85 100644 --- a/__init__.py +++ b/__init__.py @@ -262,14 +262,14 @@ class FlightGearCopilotSkill(MycroftSkill): self.speak("No checklists has been found") self.exit(tn) - for i in range(0, checklist_count - 1): + 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('/', '|') match = re.search(re.escape(checklist_title), cl_request, re.I) if match != None: - self.speak("Checklist found") + self.speak(checklist_title + " checklist") break if match == None: @@ -287,7 +287,7 @@ class FlightGearCopilotSkill(MycroftSkill): self.speak("The required checklist has no entrys") self.exit(tn) - for i in range(0, item_count - 1): + 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") @@ -301,17 +301,18 @@ class FlightGearCopilotSkill(MycroftSkill): 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 + 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 = item_value.replace('/', '|') - item_value = item_value.replace('_', '') - item_value = item_value.replace('(', ' ') - item_value = item_value.replace(')', ' ') + 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: @@ -321,6 +322,8 @@ class FlightGearCopilotSkill(MycroftSkill): 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") @@ -417,15 +420,15 @@ class FlightGearCopilotSkill(MycroftSkill): 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(" 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(" 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) @@ -434,6 +437,13 @@ class FlightGearCopilotSkill(MycroftSkill): 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 From 25c1d67076fb3578c9431615e1152825e4388792 Mon Sep 17 00:00:00 2001 From: merspieler Date: Wed, 7 Mar 2018 09:44:12 +0100 Subject: [PATCH 11/11] Fixed #7 Signed-off-by: merspieler --- __init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index 21cbe85..b86f394 100644 --- a/__init__.py +++ b/__init__.py @@ -266,7 +266,8 @@ class FlightGearCopilotSkill(MycroftSkill): checklist = i checklist_title = self.get_prop(tn, "/sim/checklists/checklist[" + str(checklist) + "]/title") checklist_title = checklist_title.replace('/', '|') - match = re.search(re.escape(checklist_title), cl_request, re.I) + checklist_title = "^" + checklist_title + match = re.search(checklist_title, cl_request, re.I) if match != None: self.speak(checklist_title + " checklist")