Annonces vocal pour Dropix pixhawk amp
Page 1 sur 1
Annonces vocal pour Dropix pixhawk amp
- Code:
-- MODE VOCAL POUR DROPIX --
-- CHEMIN /SCRIPT/MIXES/
-- BETA VERSION 0.01 --
-- SB 16/01/2015
-- Annonces Mode de vol, armement moteur, distance, hauteur
local valuemode
local memmode
local gps
local memgps
local armed
local memarmed
local altitude
local memaltitude
local distance
local memdistance
local function init_func()
valuemode = 0
memmode = 0
gps = 0
memgps = 0
armed = 0
memarmed = 0
altitude = 0
memaltitude = 0
distance = 0
memdistance = 0
end
local function run_func()
valuemode = getValue(208) -- CARBURAN (mode de vol)
gps = getValue(209) -- T1 XX.Y XX = nombre, Y type de fixe
armed = getValue(210) -- T2
altitude = getValue(213) -- Altitude GPS
distance = getValue(212) -- DISTANCE
-- GESTION de l altitude
if (altitude - 10 > memaltitude ) or (altitude + 10 < memaltitude ) then
playFile("/SOUNDS/fr/SYSTEM/0152.wav")
playNumber(altitude,0,0)
playFile("/SOUNDS/fr/SYSTEM/0130.wav")
memaltitude = altitude
end
-- GESTION de la distance
if (distance - 10 > memdistance ) or (distance + 10 < memdistance ) then
playFile("/SOUNDS/fr/SYSTEM/0158.wav")
playNumber(distance,0,0)
playFile("/SOUNDS/fr/SYSTEM/0130.wav")
memdistance = distance
end
-- GESTION ARMEMENT MOTEURS
if not (armed == memarmed) then
if (armed == 0) then
playFile("/SOUNDS/fr/engoff.wav")
end
if (armed == 1) then
playFile("/SOUNDS/fr/engon.wav")
end
memarmed = armed
end
-- GESTION nombre de GPS et du type de fix
if not (gps == memgps) then
playNumber(gps,0,PREC1)
playFile("/SOUNDS/fr/gps.wav")
memgps = gps
end
-- GESTION DES MODES DE VOL
if not (valuemode == memmode) then
if (valuemode == 0) then
playFile("/SOUNDS/fr/stable.wav")
end
if (valuemode == 1) then
playFile("/SOUNDS/fr/acro.wav")
end
if (valuemode == 2) then
playFile("/SOUNDS/fr/althold.wav")
end
if (valuemode == 3) then
playFile("/SOUNDS/fr/auto.wav")
end
if (valuemode == 4) then
playFile("/SOUNDS/fr/guider.wav")
end
if (valuemode == 5) then
playFile("/SOUNDS/fr/flaner.wav")
end
if (valuemode == 6) then
playFile("/SOUNDS/fr/rth.wav")
end
if (valuemode == 7) then
playFile("/SOUNDS/fr/cercle.wav")
end
if (valuemode == 8) then
playFile("/SOUNDS/fr/SYSTEM/0008.wav")
end
if (valuemode == 9) then
playFile("/SOUNDS/fr/landing.wav")
end
if (valuemode == 10) then
playFile("/SOUNDS/fr/SYSTEM/0010.wav")
end
if (valuemode == 11) then
playFile("/SOUNDS/fr/drift.wav")
end
if (valuemode == 12) then
playFile("/SOUNDS/fr/sport.wav")
end
if (valuemode == 13) then
playFile("/SOUNDS/fr/SYSTEM/0013.wav") -- 13 ??
end
if (valuemode == 14) then
playFile("/SOUNDS/fr/SYSTEM/0014.wav") -- FLIP
end
if (valuemode == 15) then
playFile("/SOUNDS/fr/SYSTEM/0015.wav") -- AUTOTUNE
end
if (valuemode == 16) then
playFile("/SOUNDS/fr/SYSTEM/0016.wav") -- POSHOLD
end
if (valuemode == 17) then
playFile("/SOUNDS/fr/SYSTEM/0017.wav") -- 17 ??
end
if (valuemode == 18) then
playFile("/SOUNDS/fr/SYSTEM/0018.wav") -- 18 ??
end
memmode = valuemode
end
return memmode
end
return { init=init_func, run=run_func, output= {"MODE"} }
Invité- Invité
Re: Annonces vocal pour Dropix pixhawk amp
Mise a jour du code
encore du travail mais ça commence a prendre forme !
Bonne lecture
encore du travail mais ça commence a prendre forme !
Bonne lecture
- Code:
-- MODE VOCAL POUR DROPIX --
-- CHEMIN /SCRIPT/MIXES/
-- BETA VERSION 0.02 --
-- SB 17/JANVIER/2015
-- Annonces Mode de vol, armement moteur, distance, hauteur, tension
-- Recuperation des affichages par action sur bouton SA
local valuemode
local memmode
local gps
local memgps
local armed
local memarmed
local altitude
local memaltitude
local distance
local memdistance
local tension
local memtension
local boucle
local function init_func()
valuemode = 0
memmode = 0
gps = 0
memgps = 0
armed = 0
memarmed = 0
altitude = 0
memaltitude = 0
distance = 0
memdistance = 0
boucle = 0
end
local function run_func()
boucle = boucle + 1 -- pour ralentir les annonces GPS qui parlent trop
-- ################################# AFFICHAGE SUR ACTION BOUTON SA ################################################
if (getValue(92) > 0 ) then
lcd.lock()
lcd.clear()
-- ################# DESSIN CADRILLAGE ###################
lcd.drawLine(37, -1, 37, 64, SOLID, GREY_DEFAULT) -- Vertical 1
lcd.drawLine(100, -1, 100, 64, SOLID, GREY_DEFAULT) -- Vertical 2
lcd.drawLine(162, -1, 162, 64, SOLID, GREY_DEFAULT) -- Vertical 3
lcd.drawLine(36, 21, 162, 21, SOLID, GREY_DEFAULT) -- Horizointal 1
lcd.drawLine(36, 42, 162, 42, SOLID, GREY_DEFAULT) -- Horizontal 2
-- ################ Phantom Battery Display ############### A FINIR DE TRAVAILLER
-- Max Batt lt Taranis = 12,2V entspricht 12,6v Phantom => Spannung wird 0,4v zu niedrig angezeigt
-- Min Batt lt Taranis = 10,8V entspricht 11,2v Phantom => Spannung wird 0,4v zu niedrig angezeigt
local myCurrent = getValue("216") -- zuz¸glich 0,4v zum Ausgleich
-- local myCurrent = 12.4 -- f¸r Taranis Simulations Mode
local myMaxV = 25.2 -- Maximale Spannung des Akkus
local myMinV = 21.5 -- Minimale Spannung des Akkus
local myRangeV = myMaxV - myMinV -- Nutzspannung berechnen
local myAvailV = myCurrent - myMinV -- Restliche Nutzspannung berechnen
local myPercent = math.floor(myAvailV / myRangeV * 100) -- Restliche Nutzspannung in Prozent
if myAvailV < 0 then myAvailV = 0 end -- Fehlerhafte Werte abfangen
if myPercent < 0 then myPercent = 0 end -- Fehlerhafte Werte abfangen
if myPercent > 100 then myPercent = 100 end -- Fehlerhafte Werte abfangen
local myPxHeight = math.floor(myPercent * 0.37) -- Benˆtigte Zeilenhˆhe ermitteln
local myPxY = 11 + 37 - myPxHeight
lcd.drawPixmap(3, 1, "/SCRIPTS/BMP/battery.bmp") -- Leere Batterie anzeigen
if myPercent > 0 then
lcd.drawFilledRectangle(8, myPxY, 21, myPxHeight, FILL_WHITE )
end
local i = 36
while (i > 0) do
lcd.drawLine(7, 11 + i, 27, 11 +i, SOLID, GREY_DEFAULT)
i= i-2
end
if (myCurrent > myMaxV) or (myCurrent < myMinV) then
lcd.drawNumber(4,55, myCurrent * 100 ,PREC2 + LEFT + BLINK)
else
lcd.drawNumber(4,55, myCurrent * 100 ,PREC2 + LEFT)
end
lcd.drawText(lcd.getLastPos(), 55, "v", 0)
-- ################### MODE DISPLAY DROPIX ########################
-- lcd.drawPixmap(46, 3, "/SCRIPTS/BMP/fm.bmp")
-- custom_mode
local Mode = getValue(208)
if Mode == 0 then lcd.drawText(46, 5, "STABLE", MIDSIZE) end
if Mode == 1 then lcd.drawText(46, 5, "ACRO", MIDSIZE) end
if Mode == 2 then lcd.drawText(46, 5, "ALT-H", MIDSIZE) end
if Mode == 3 then lcd.drawText(46, 5, "AUTO", MIDSIZE) end
if Mode == 4 then lcd.drawText(46, 5, "GUIDE", MIDSIZE) end
if Mode == 5 then lcd.drawText(46, 5, "LOITER", MIDSIZE) end
if Mode == 6 then lcd.drawText(46, 5, "RTL", BLINK+MIDSIZE) end
if Mode == 7 then lcd.drawText(46, 5, "CERCLE", MIDSIZE) end
if Mode == 8 then lcd.drawText(46, 5, "M-08", MIDSIZE) end -- ???
if Mode == 9 then lcd.drawText(46, 5, "LANDING", MIDSIZE) end
if Mode == 10 then lcd.drawText(46, 5, "OF_LOITER", MIDSIZE) end -- ???
if Mode == 11 then lcd.drawText(46, 5, "DRIF", MIDSIZE) end
if Mode == 12 then lcd.drawText(46, 5, "SPORT", MIDSIZE) end -- ???
if Mode == 13 then lcd.drawText(46, 5, "M_13", MIDSIZE) end
if Mode == 14 then lcd.drawText(46, 5, "FLIP", MIDSIZE) end
if Mode == 15 then lcd.drawText(46, 5, "AUTOTUNE", MIDSIZE) end
if Mode == 16 then lcd.drawText(46, 5, "POSHOLD", MIDSIZE) end
if Mode == 17 then lcd.drawText(46, 5, "M_17", MIDSIZE) end
if Mode == 18 then lcd.drawText(46, 5, "M-18", MIDSIZE) end -- ???
-- ####################### CHRONO ##########################
-- lcd.drawPixmap(46, 46, "/SCRIPTS/BMP/timer.bmp")
lcd.drawTimer(50, 46, getValue(196) , DBLSIZE) -- Timer 1 value [seconds]
-- ############## Distance ########################################
lcd.drawPixmap(110, 0, "/SCRIPTS/BMP/dist.bmp")
lcd.drawNumber(130, 4, getValue(212), LEFT+MIDSIZE) -- 212 Distance
lcd.drawText(lcd.getLastPos(), 4, "m", MIDSIZE)
-- ############## GPS ALTITUDE ########################################
lcd.drawPixmap(110, 46, "/SCRIPTS/BMP/hgt.bmp")
lcd.drawNumber(130,49,getValue(213), MIDSIZE + LEFT )-- gps-altitude
lcd.drawText(lcd.getLastPos(), 53, "m" , 0)
-- ################# GPS Quality ##################################
local myNumSat = getValue(209) -- Temp1=209 ist Anzahl Sats
local myQualSat = getValue(210) -- Temp2=210 ist Qualit‰t des Satfix
-- myNumSat =5 -- f¸r Taranis Simulations Mode
-- myQualSat =3 -- f¸r Taranis Simulations Mode
if myQualSat == 0 then
lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat0.bmp") -- kein Fix
elseif myQualSat == 2 then
lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat1.bmp") -- 2D Fix
elseif myQualSat == 3 then
lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat2.bmp") -- 3D Fix
elseif myQualSat == 4 then
lcd.drawPixmap(46, 24, "/SCRIPTS/BMP/sat3.bmp") -- Differenzial GPS (DGPS)
end
if myNumSat > 5 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_6.bmp") -- 6 oder mehr Sats
elseif myNumSat > 4 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_5.bmp") -- 5 Sats
elseif myNumSat > 3 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_4.bmp") -- 4 Sats
elseif myNumSat > 2 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_3.bmp") -- 3 Sats
elseif myNumSat > 1 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_2.bmp") -- 2 Sats
elseif myNumSat > 0 then
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_1.bmp") -- 1 Sat
else
lcd.drawPixmap(66, 25, "/SCRIPTS/BMP/gps_0.bmp") -- kein Sat
end
lcd.drawNumber(73, 24, myNumSat, SMLSIZE) -- Anzahl anzeigen
-- ################### Home Point ######################################
-- ### wenn Pilot Position bekannt HP setzen ###########
-- ### muss noch korrigiert werden da NAZA erst sp‰ter setzt ###########
if getValue("pilot-longitude") == getValue("pilot-latitude") then
lcd.drawPixmap(110, 24, "/SCRIPTS/BMP/home1.bmp")
lcd.drawText(132, 26, "?", MIDSIZE + BLINK)
elseif myNumSat > 5 then
lcd.drawPixmap(110, 24, "/SCRIPTS/BMP/home.bmp")
lcd.drawPixmap(130, 24, "/SCRIPTS/BMP/check.bmp")
else
lcd.drawPixmap(110, 24, "/SCRIPTS/BMP/home.bmp")
lcd.drawText(132, 26, "X", BLINK+ MIDSIZE)
end
-- ####################### Logging display ############################
-- Enregistrement des log actif ( bizard le get 100 ??? )
-- ### Logging auf logischem Schalter LS1 = source 100 #############
if getValue(100) > 0 then
lcd.drawText(155,28,"O", SMLSIZE + BLINK) -- Clignotement sur la disquette
lcd.drawPixmap(152, 30, "/SCRIPTS/BMP/save.bmp") -- Logo disquette
end
-- ############### RSSI ##############################################
if getValue(200) > 38 then
percent = ((math.log(getValue(200)-28, 10)-1)/(math.log(72, 10)-1))*100
else
percent = 0
end
if percent > 90 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI10.bmp")
elseif percent > 80 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI09.bmp")
elseif percent > 70 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI08.bmp")
elseif percent > 60 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI07.bmp")
elseif percent > 50 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI06.bmp")
elseif percent > 40 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI05.bmp")
elseif percent > 30 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI04.bmp")
elseif percent > 20 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI03.bmp")
elseif percent > 10 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI02.bmp")
elseif percent > 0 then
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI01.bmp")
else
lcd.drawPixmap(164, 1, "/SCRIPTS/BMP/RSSI00.bmp")
end
lcd.drawChannel(178, 55, 200, LEFT)
lcd.drawText(lcd.getLastPos(), 56, "dB", SMLSIZE)
end
-- ########################################################################################
-- PARTIE VOCAL
-- ########################################################################################
valuemode = getValue(208) -- CARBURAN (mode de vol)
gps = getValue(209) -- T1 XX.Y XX = nombre, Y type de fixe
armed = getValue(210) -- T2
altitude = getValue(213) -- Altitude GPS
distance = getValue(212) -- DISTANCE
tension = getValue(216) -- tension (vfas)
-- GESTION de la tension
if not (tension == memtension) then
playNumber(tension * 10,1,PREC1)
memtension = tension
end
-- GESTION de l altitude
if (altitude - 10 > memaltitude ) or (altitude + 10 < memaltitude ) then
playFile("/SOUNDS/fr/altitude.wav")
playNumber(altitude,0,0)
playFile("/SOUNDS/fr/SYSTEM/0130.wav")
memaltitude = altitude
end
-- GESTION de la distance
if (distance - 10 > memdistance ) or (distance + 10 < memdistance ) then
playFile("/SOUNDS/fr/distance.wav")
playNumber(distance,0,0)
playFile("/SOUNDS/fr/SYSTEM/0130.wav")
memdistance = distance
end
-- GESTION ARMEMENT MOTEURS
if not (armed == memarmed) then
if (armed == 0) then
playFile("/SOUNDS/fr/engoff.wav")
end
if (armed == 1) then
playFile("/SOUNDS/fr/engon.wav")
end
memarmed = armed
end
-- GESTION nombre de GPS et du type de fix
if (boucle > 1000 ) then
if not (gps == memgps) then
playNumber(gps,0,PREC1)
playFile("/SOUNDS/fr/sat.wav")
memgps = gps
end
boucle = 0
end
-- GESTION DES MODES DE VOL
if not (valuemode == memmode) then
if (valuemode == 0) then
playFile("/SOUNDS/fr/stable.wav")
end
if (valuemode == 1) then
playFile("/SOUNDS/fr/acro.wav")
end
if (valuemode == 2) then
playFile("/SOUNDS/fr/althold.wav")
end
if (valuemode == 3) then
playFile("/SOUNDS/fr/auto.wav")
end
if (valuemode == 4) then
playFile("/SOUNDS/fr/guider.wav")
end
if (valuemode == 5) then
playFile("/SOUNDS/fr/flaner.wav")
end
if (valuemode == 6) then
playFile("/SOUNDS/fr/rth.wav")
end
if (valuemode == 7) then
playFile("/SOUNDS/fr/cercle.wav")
end
if (valuemode == then
playFile("/SOUNDS/fr/SYSTEM/0008.wav")
end
if (valuemode == 9) then
playFile("/SOUNDS/fr/landing.wav")
end
if (valuemode == 10) then
playFile("/SOUNDS/fr/SYSTEM/0010.wav")
end
if (valuemode == 11) then
playFile("/SOUNDS/fr/drift.wav")
end
if (valuemode == 12) then
playFile("/SOUNDS/fr/sport.wav")
end
if (valuemode == 13) then
playFile("/SOUNDS/fr/SYSTEM/0013.wav") -- 13 ??
end
if (valuemode == 14) then
playFile("/SOUNDS/fr/flip.wav") -- FLIP
end
if (valuemode == 15) then
playFile("/SOUNDS/fr/autotune.wav") -- AUTOTUNE
end
if (valuemode == 16) then
playFile("/SOUNDS/fr/poshold.wav") -- POSHOLD
end
if (valuemode == 17) then
playFile("/SOUNDS/fr/SYSTEM/0017.wav") -- 17 ??
end
if (valuemode == 18) then
playFile("/SOUNDS/fr/SYSTEM/0018.wav") -- 18 ??
end
memmode = valuemode
end
return memmode
end
return { init=init_func, run=run_func, output= {"MODE"} }
Invité- Invité
Sujets similaires
» Annonces vocal
» Pas de vocal sur inter RS
» Message vocal Taranis
» Message vocal temps restant
» alerte radio message vocal
» Pas de vocal sur inter RS
» Message vocal Taranis
» Message vocal temps restant
» alerte radio message vocal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum