0 Members and 1 Guest are viewing this topic.
Dis-moi... tu as commencé ton "tableau de commande" il y a combien de temps déjà ??
-- ******************************************-- ********read number lines from scn file***-- ******************************************function line_read (file) number_lines=0 local g = io.open(file,"r") if g ~= nil then repeat t = g:read() number_lines=number_lines+1 until t == nil g:close() endend-- *****************************************-- *********end function line_read *********-- *****************************************
-- *******************************************-- ********load lines from scn file***********-- *******************************************function load_scnfile (file,n) slist={} local f = io.open(file,"r") if f ~= nil then for i=1,n do t = f:read() if t == nil then break end slist[i]=t end f:close() end return slistend-- ******************************************-- *********end function load_scnfile *******-- ******************************************
-- *******************************************-- ***********load ship status****************-- *******************************************function load_xr2_status (pattern) for i=1,number_lines-1 do s1 = slist[i] _,_,name,classname = string.find (s1, "(.-):(.+)") if (classname=='XR2Ravenstar') and (ship=='XR2Ravenstar') then name_ship=name for j=i, number_lines-1 do if string.match (slist[j], 'NOSECONE')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('NOSECONE=>'..status..' '..level) proc.wait_sysdt(0.41) elseif string.match (slist[j], 'GEAR')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('GEAR=>'..status..' '..level) proc.wait_sysdt(0.41) elseif string.match (slist[j], 'RADIATOR')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('RADIATOR=>'..status..' '..level) proc.wait_sysdt(0.41) elseif string.match (slist[j], 'HATCH')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('HATCH=>'..status..' '..level) elseif slist[j]=='END' then flag_out=1 break end end
--****************************************************************************-- ********** begin program ************************* begin program *********--*****************************************************************************note = oapi.create_annotation()note:set_pos (0.35,0.1,0.8,0.95)note:set_colour ({r=0.9,g=0.5,b=0.2})data_path = 'Scenarios/(Current state).scn'intro = 'Load scn data'note:set_text(intro)proc.wait_sysdt(0.5)note:set_colour ({r=0.9,g=0.0,b=0.0})v=vessel.get_focusinterface()ship=v:get_classname()name_ship_focused=v:get_name() -- ******************************************************-- ***********begin call functions for scn file**********-- ******************************************************sfirst = line_read (data_path)slist = load_file (data_path,number_lines)if ship=='XR2Ravenstar' then lstatus = load_xr2_status (ship)elseif ship=='Xr5Vanguard' then note:set_text('Toward function loop load of XR5Vanguard') proc.wait_sysdt(2.01)elseif ship=='ShuttleA' then note:set_text('Toward function loop load of ShuttleA') proc.wait_sysdt(2.01)else note:set_text('vessel not implemented, simpit not activated') proc.wait_sysdt(2.01)end-- ******************************************************-- ************ end call functions for scn file**********-- ******************************************************note:set_text('End of program')proc.wait_sysdt(1)note:set_text(' ')proc.wait_sysdt(1)
-- ******************************************-- ********read number lines from scn file***-- ******************************************function line_read (file) number_lines=0 local g = io.open(file,"r") if g ~= nil then repeat t = g:read() number_lines=number_lines+1 until t == nil g:close() endend-- *****************************************-- *********end function line_read *********-- *****************************************-- *******************************************-- ********load lines from scn file***********-- *******************************************function load_scnfile (file,n) slist={} local f = io.open(file,"r") if f ~= nil then for i=1,n do t = f:read() if t == nil then break end slist[i]=t end f:close() end return slistend-- ******************************************-- *********end function load_scnfile *******-- ******************************************-- *******************************************-- ***********load ship status****************-- *******************************************function load_xr2_status (pattern) for i=1,number_lines-1 do s1 = slist[i] _,_,name,classname = string.find (s1, "(.-):(.+)") if (classname=='XR2Ravenstar') and (ship=='XR2Ravenstar') then name_ship=name for j=i, number_lines-1 do if string.match (slist[j], 'NOSECONE')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('NOSECONE=>'..status..' '..level) proc.wait_sysdt(0.41) elseif string.match (slist[j], 'GEAR')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('GEAR=>'..status..' '..level) proc.wait_sysdt(0.41) elseif string.match (slist[j], 'RADIATOR')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('RADIATOR=>'..status..' '..level) proc.wait_sysdt(0.41) elseif string.match (slist[j], 'HATCH')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") note:set_text('HATCH=>'..status..' '..level) elseif slist[j]=='END' then flag_out=1 break end end--*****************************************************************************- ********** begin program ************************* begin program *********--*****************************************************************************note = oapi.create_annotation()note:set_pos (0.35,0.1,0.8,0.95)note:set_colour ({r=0.9,g=0.5,b=0.2})data_path = 'Scenarios/(Current state).scn'intro = 'Load scn data'noteTop:set_text (intro)proc.wait_sysdt(0.5)note:set_colour ({r=0.9,g=0.0,b=0.0})v=vessel.get_focusinterface()ship=v:get_classname()name_ship_focused=v:get_name() -- ******************************************************-- ***********begin call functions for scn file**********-- ******************************************************sfirst = line_read (data_path)slist = load_file (data_path,number_lines)if ship=='XR2Ravenstar' then lstatus = load_xr2_status (ship)elseif ship=='Xr5Vanguard' then note:set_text('Toward function loop load of XR5Vanguard') proc.wait_sysdt(2.01)elseif ship=='ShuttleA' then note:set_text('Toward function loop load of ShuttleA') proc.wait_sysdt(2.01)else note:set_text('vessel not implemented, simpit not activated') proc.wait_sysdt(2.01)end-- ******************************************************-- ************ end call functions for scn file**********-- ******************************************************note:set_text('End of program')proc.wait_sysdt(1)note:set_text(' ')proc.wait_sysdt(1)
-- ****************************************** -- ********read number lines from scn file*** -- ******************************************function line_read (file) number_lines=0 local g = io.open(file,"r") if g ~= nil then repeat t = g:read() number_lines=number_lines+1 until t == nil g:close() endend-- *****************************************-- *********end function line_read *********-- *****************************************-- *******************************************-- ********load lines from scn file***********-- *******************************************function load_file (file,n) slist={} local f = io.open(file,"r") if f ~= nil then for i=1,n do t = f:read() if t == nil then break end slist[i]=t end f:close() end return slistend-- ******************************************-- *********end function load_scnfile *******-- ******************************************-- *******************************************-- ***********load xr2 status****************-- *******************************************function load_xr2_status (pattern) status_array={} level_array={} position={} RCSstatus=1--valeur par dÈfaut dans le SCN docked=0--valeur par dÈfaut dans le SCN Miscstatus=1--valeur par dÈfaut (RCS en ROT) flag_out=0 main_fuel_tank=0 scram_fuel_tank=0 lox_tank=0 nb_tank_main_fuel=0 nb_tank_scram_fuel=0 nb_tank_lox=0 name_ship="" SIPOstatus=0 SIPOtransit_status=0 for i=1,40 do status_array[i]="" level_array[i]="" if (i<19)==true then position[i]="" end end for i=1,number_lines-1 do s1 = slist[i] _,_,name,classname = string.find (s1, "(.-):(.+)") --***************************************************************************--*****************************************************Begin Xr2 settings****--*************************************************************************** if (classname=='XR2Ravenstar') and (name==name_ship_focused) then name_ship=name status_array[1]=v:get_rcsmode() note:set_text('Mode rcs'..'=>'..status_array[1]) proc.wait_sysdt(0.21*afficher) main_fuel=v:get_propellanthandle(0) level_array[1]=v:get_propellantmass(main_fuel) note:set_text('Main fuel=>'..level_array[1]..'kg') proc.wait_sysdt(0.21*afficher) rcs_fuel=v:get_propellanthandle(1) level_array[2]=v:get_propellantmass(rcs_fuel) note:set_text('Rcs fuel=>'..level_array[2]..'kg') proc.wait_sysdt(0.21*afficher) scram_fuel=v:get_propellanthandle(2) level_array[3]=v:get_propellantmass(scram_fuel) note:set_text('Scram fuel=>'..level_array[3]..'kg') proc.wait_sysdt(0.5*afficher) for j=i, number_lines-1 do if string.match (slist[j], 'APU_FUEL_QTY')~=nil then _,_,aux,level = string.find(slist[j],"(.+) (.+)") level_array[4]=level*268 note:set_text('APU fuel'..'=>'..level_array[4]..'kg') proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'APU_STATUS')~=nil then --dÈbut process 13 auxiliaires _,_,aux,status = string.find(slist[j],"(.+) (.+)") power=15 level=0 delay=0 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('Status APU'..'=>'..SIPOstatus) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'NOSECONE')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=14 delay=20000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('NOSECONE==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'AIRLOCK')~=nil and string.match (slist[j], 'IAIRLOCK')==nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=13 delay=10000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('AIRLOCK==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'CHAMBER')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=12 delay=28000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('CHAMBER==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'IAIRLOCK')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=11 delay=10000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('IAIRLOCK==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'BAY_DOORS')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=10 delay=22000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('BAY DOORS==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'SCRAM_DOORS')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=9 delay=3000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('SCRAMDOORS==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'HOVER_DOORS')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=8 delay=5000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('HOVERDOORS==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'RCOVER')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=7 delay=33000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('RETRODOORS==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'HATCH')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=6 delay=6600 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('HATCH==>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'RADIATOR')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=5 delay=32000 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('RADIATOR=>'..SIPOstatus..' '..SIPOtransit_status..' Position:'..position[5]) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'AIRBRAKE')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=4 delay=3300 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('AIRBRAKE=>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher) --[[ elseif string.match (slist[j], 'GEAR')~=nil then _,_,_,status,level = string.find(slist[j],"(.+) (.+) (.+)") power=3 delay=6700 sprocess=process(SIPOtransit_status,SIPOstatus,power,status,level,delay) note:set_text('GEAR=>'..SIPOstatus..' '..SIPOtransit_status) proc.wait_sysdt(0.5*afficher)]] --fin traitement des 13 aux elseif string.match (slist[j], 'Landed')~=nil then --MSB de position[3] laissÈ ‡ 0 afin d'indiquer que le vaisseau est posÈ. Calcul fait par position[3]=position[3]+32768 flightflag=0 note:set_text('Ship landed') proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'Orbiting')~=nil then --MSB de position[3] ‡ 1 afin d'indiquer que le vaisseau est en vol. Calcul fait par position[3]=position[3]+32768 flightflag=1 note:set_text('Ship not landed') proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'MAIN0DIR')~=nil then _,_,_,main_yaw,main_pitch,main= string.find(slist[j],"(.+) (.+) (.+) (.+)") position[15]=math.floor(-143225.43*main_pitch+2500) --calcul position main pitch en ms position[16]=math.floor(27720.027*main_yaw+3600)--calcul position main yaw en ms note:set_text(' Main pitch='..position[15]..' Main yaw='..position[16]) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'SCRAM0DIR')~=nil then _,_,_,scram_yaw,scram_pitch,scram= string.find(slist[j],"(.+) (.+) (.+) (.+)") position[17]=math.floor(-34421.038*scram_pitch+3000) --calcul position scram pitch en ms note:set_text(' Scram pitch='..position[17]) proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'ATTITUDE_HOLD_DATA')~=nil then _,_,_,pitch,bank,status1,PitchAoA,level = string.find(slist[j],"(.+) (.+) (.+) (.+) (.+) (.+)") position[18]=math.floor(-6804.3742*level+28000) -- calcul de la valeur de position de gravity shift en 1.25 ms pitch=10*pitch--on met pitch en dixiËmes de degrÈs. Par contre, bank reste en degrÈs. bank=1*bank note:set_text('Data ATTITUDE_HOLD_DATA') proc.wait_sysdt(0.5*afficher) note:set_text('pitch='..pitch) proc.wait_sysdt(0.5*afficher) note:set_text('bank='..bank) proc.wait_sysdt(0.5*afficher) note:set_text('status1='..status1) proc.wait_sysdt(0.5*afficher) note:set_text('PitchAoA='..PitchAoA) proc.wait_sysdt(0.5*afficher) note:set_text('level='..level) proc.wait_sysdt(0.5*afficher) note:set_text('Gravity Shift='..position[18]) proc.wait_sysdt(0.5*afficher) PitchAoA=16*PitchAoA elseif string.match (slist[j], 'RCSMODE')~=nil then --dÈbut Èlaboration Miscstatus comprenant l'Ètat des RCS... _,_,aux,RCSstatus = string.find(slist[j],"(.+) (.+)") note:set_text('Etat RCS='..RCSstatus) proc.wait_sysdt(0.5) elseif string.match (slist[j], 'DOCKINFO')~=nil then --...savoir si on est dockÈ ou non... docked=4 elseif string.match (slist[j], 'LOX_QTY')~=nil then _,_,aux,level = string.find(slist[j],"(.+) (.+)") level_array[24]=level*364 note:set_text('LOX quantity'..'=>'..level_array[24]..'kg') proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'CUSTOM_AUTOPILOT_MODE')~=nil then --... savoir si Descent ou Attitude en fonction... _,_,aux,Autopilot_status = string.find(slist[j],"(.+) (.+)") Autopilot_status = Autopilot_status*64--Autopilot_status=1 pour Attitude Hold ON/AutopÓlot_status=2 pour Descent ON --=>Autopilot varie entre 64 et 128 elseif string.match (slist[j], 'AIRSPEED_HOLD_ENGAGED')~=nil then-- ... savoir si Airspeed hold en fonction... _,_,aux,Airspeed_autopilot_status = string.find(slist[j],"(.+) (.+)") Airspeed_autopilot_status = Airspeed_autopilot_status*8 elseif string.match (slist[j], 'AIRSPEED_HOLD_DATA')~=nil then _,_,aux,Airspeed_set = string.find(slist[j],"(.+) (.+)") Airspeed_set=Airspeed_set*10 Airspeed_set=math.min(Airspeed_set, 65535) note:set_text('Airspeed setting'..'=>'..Airspeed_set..'dm/s') proc.wait_sysdt(0.5*afficher) elseif string.match (slist[j], 'DESCENT_HOLD_DATA')~=nil then -- ...savoir si Autoland en fonction, et la consigne (Descent_set) _,_,_,Descent_set,Set2,Autoland= string.find(slist[j],"(.+) (.+) (.+) (.+)") note:set_colour ({r=0.2,g=0.5,b=0.9}) note:set_text('Descent_set=>'..Descent_set..' Set2==>'..Set2..' Autoland==>'..Autoland) proc.wait_sysdt(0.5) Autoland=Autoland*32 Descent_sign=0 Descent_set=Descent_set*10--on doit transmettre des dÈcimËtres. if Descent_set<0 then --(Type d'unitÈ incompatible, sinon?) On multiplie par 10 pour avoir des dÈcimËtres par seconde. Descent_sign=256 -- RÈglage du 9∞ bit pour Miscstatus end Descent_set=math.abs(Descent_set) note:set_colour ({r=0.9,g=0.5,b=0.2}) note:set_text('Descent_sign=>'..Descent_sign..' Set2==>'..Set2..' Autoland==>'..Autoland) proc.wait_sysdt(0.5) elseif slist[j]=='END' then flag_out=1 if pitch>=0 then-- rÈglage du signe du pitch Pitch_set=pitch else Pitch_set=math.abs(pitch)--si pitch<0, calcul pour retrouver une valeur <0 sur la Leonardo end if bank>=0 then-- rÈglage du signe du bank Bank_set=bank else Bank_set=math.abs(bank)--si bank<0, calcul pour retrouver une valeur <0 sur la Leonardo end Miscstatus=Descent_sign+Autopilot_status+Autoland+PitchAoA+Airspeed_autopilot_status+docked+RCSstatus -- ici, on a un octet occupÈ --le multiplicateur suivant est 256 (9∞bit) note:set_text('SIPOstatus=>'..SIPOstatus..' SIPOtransit_status==>'..SIPOtransit_status) proc.wait_sysdt(0.5) note:set_text('Miscstatus=>'..Miscstatus) proc.wait_sysdt(0.5) break end --Endif du Xr2 end --Next j--***************************************************************--************************************End Xr2 settings***********--***************************************************************--************************************Begin Xr2 payload setting**--*************************************************************** elseif(classname=='XR2PayloadCHM') then CHM_set=0 CHM_capacity=0 CHM_i=i lpayload=xr2_payload_setting(main_fuel_tank, nb_tank_main_fuel, CHM_capacity,CHM_set,CHM_i) elseif(classname=='XR2PayloadMainFuel') then main_fuel_set=4 main_fuel_max_capacity=3350 main_fuel_i=i lpayload=xr2_payload_setting(main_fuel_tank, nb_tank_main_fuel, main_fuel_max_capacity, main_fuel_set,main_fuel_i) elseif(classname=='XR2PayloadSCRAMFuel') then scram_fuel_set=6 scram_fuel_max_capacity=3350 scram_fuel_i=i lpayload=xr2_payload_setting(scram_fuel_tank, nb_tank_scram_fuel, scram_fuel_max_capacity, scram_fuel_set,scram_fuel_i) elseif(classname=='XR2PayloadLOX') then lox_set=9 lox_max_capacity=10545 lox_i=i lpayload=xr2_payload_setting(lox_tank, nb_tank_lox, lox_max_capacity, lox_set, lox_i) elseif(classname=='XR2PayloadLOX_Half') then lox_set=9 lox_max_capacity=5272.5 lox_i=i lpayload=xr2_payload_setting(lox_tank, nb_tank_lox, lox_max_capacity, lox_set, lox_i) elseif(classname=='XR2PayloadEmptyLOX') then lox_set=9 lox_max_capacity=0 lox_i=i lpayload=xr2_payload_setting(lox_tank, nb_tank_lox, lox_max_capacity, lox_set, lox_i)--********************************************************--*****************************End Xr2 payload setting****--******************************************************** end end --Next i end-- ****************************************-- *******end function load_xr2_status ***-- ****************************************-- ********************************************-- *******begin function process APU_status ***-- ********************************************function process(SIPOtransit_stat,SIPOstat,power,status,level,delay) if((status%2)==1)then SIPOstatus=SIPOstat+(2^power) end if(status%3==2)then --if (status==2)==true then note:set_text('Status vu ‡ 2 ou 3='..status) proc.wait_sysdt(0.5) SIPOtransit_status=SIPOtransit_stat+(2^power) end if(status%4==3)then --if(status==3)==true then note:set_text('Status vu ‡ 3='..status) proc.wait_sysdt(0.5) SIPOtransit_status=SIPOtransit_stat+(2^power) end if (power<15)then position[power]=level*delay endend-- ******************************************-- *******end function process APU_status ***-- ******************************************
-- ***********************************************-- *********** Xr2 payload setting ***************-- ***********************************************function xr2_payload_setting (payload_tank, nb_tank_payload,payload_max_capacity,payload_set,payload_i) for k=payload_i, number_lines-1 do if string.match (slist[k], 'ATTACHED')~=nil then _,_,attached,slot,carrier = string.find(slist[k],"(.+):(.+),(.+)") elseif (string.match (slist[k], 'PRPLEVEL')~=nil or classname=='XR2PayloadEmptyLOX') and name_ship_focused==carrier then if classname~='XR2PayloadEmptyLOX' then _,_,aux,level = string.find(slist[k],"(.+):(.+)") elseif classname=='XR2PayloadEmptyLOX' then level=0 end carrier="" payload_tank=level*payload_max_capacity+payload_tank nb_tank_payload=nb_tank_payload+1 level_array[payload_set+nb_tank_payload]=level*payload_max_capacity status_array[payload_set+nb_tank_payload]=slot+1 flag_out=1 if payload_set==4 then nb_tank_main_fuel=nb_tank_payload elseif payload_set==6 then nb_tank_scram_fuel=nb_tank_payload elseif payload_set==9 then nb_tank_lox=nb_tank_payload end break elseif (classname=='XR2PayloadCHM') and (name_ship_focused==carrier) then carrier="" level_array[9]=1 status_array[9]=1 flag_out=1 break elseif slist[k]=='END' then break end endend-- ****************************************-- ******* end function payload setting ***-- ****************************************
--********************************************************************************-- ********** begin program ************************* begin program ***************-- ********************************************************************************note = oapi.create_annotation()note:set_pos (0.55,0.1,0.8,0.95)note:set_colour ({r=0.9,g=0.5,b=0.2})intro = "Lecture des données du Xr2 Ravenstar"note:set_text(intro)proc.wait_sysdt(1)note:set_text(" ")proc.wait_sysdt(0.5)data_path = 'Scenarios/(Current state).scn'note:set_text(data_path)proc.wait_sysdt(1)v=vessel.get_focusinterface()ship=v:get_classname()name_ship_focused=v:get_name()-- ******************************************************-- ***********begin call functions for scn file**********-- ******************************************************afficher=2 --value <>0 for screen displaysfirst = line_read (data_path)slist = load_file (data_path,number_lines)if ship=='XR2Ravenstar' then lstatus = load_xr2_status (ship) note:set_text('Toward function loop load of XR2') proc.wait_sysdt(1) note:set_text('') -- ici, mettre la boucle de scrutation pour rafraîchissement des données du cockpitelseif ship=='Xr5Vanguard' then note:set_text('Toward function loop load of XR5Vanguard') proc.wait_sysdt(2.01)elseif ship=='ShuttleA' then note:set_text('Toward function loop load of ShuttleA') proc.wait_sysdt(2.01)else note:set_text('vessel not implemented, simpit not activated') proc.wait_sysdt(2.01)end-- ******************************************************-- ************ end call functions for scn file**********-- ****************************************************** note:set_text('End program') proc.wait_sysdt(1.5) note:set_text('')