De dei wêr't ik op wachte hat is oankommen dat ik dizze ûntwikkeling einlings presintearje kin. It projekt is krekt in jier lyn úteinset, op syn minst 1 septimber 2018 de earste commit hat krekt dizze datum.
Passagierstrein by Rostov Main Station (klikbaar)
Wat is RRS? Dit is in iepen cross-platform simulator fan 1520 mm gauge rôljend materieel. De lêzer sil fansels de fraach stelle: "Ekskús, wêr is dit projekt foar, as der in foldwaande oantal spoarsimulators binne, sawol kommersjeel as iepen?" Foar it antwurd op dizze fraach stel ik foar om ûnder de kat te sykjen.
Projektskiednis
Eartiids, yn 2001, waard it publisearre , dy't yn ús lân oanlieding joech ta in grutte mienskip fan spoarsimmers. Yn 'e rin fan' e ferskate jierren dat dit projekt bestie (oant Microsoft it ferlitten hie, trochgie nei nijsgjirrigere dingen foar it, lykas it fallisemint fan Nokia, ensfh.), krige it projekt in massa oanfollingen makke foar it: rûtes, rôljend materieel, senario's.
Op grûn fan MSTS binne neitiid in tal oare projekten makke, lykas , en oare tafoegings en derivatives. Kommersjele projekten ferskynden ek, lykas de ferneamde . En alles soe goed wêze, mar in protte fans fan spoarferfier binne net tefreden mei dizze produkten foar frij objektive redenen - se reflektearje op gjin inkelde manier de spesifikaasjes fan ynlânske rollende materieel eksploitearre en ûntwikkele yn 'e post-Sovjet-romte. Dit is foaral akuut as jo sjogge nei hoe't treinremmen wurde útfierd - gjin fan 'e neamde projekten hat of sil in normale ymplemintaasje fan automatyske remmen fan it Matrosov-systeem hawwe.
Yn it net sa fiere jier fan 2008 ferskynde in oar projekt - , ûntwikkele troch Vyacheslav Usov. It projekt is opmerklik yn dat it rekken hâldt en de boppeneamde tekoarten korrizjearret, wylst it yn earste ynstânsje rjochte is op Russyske mjitte rôljend materieel. Mar d'r is ien grutte "mar" - it projekt is proprietêr en sluten, en arsjitektoanysk net tastean de ynfiering fan syn eigen rôljend materieel.
Sels kaam ik yn 2007 op it spoarûnderwerp, doe't ik begon te wurkjen yn , as ûndersyksgenoat, en nei it ferdigenjen fan syn proefskrift yn 2008, as senior ûndersiker. It wie doe dat ik yn 'e kunde kaam mei de lêste prestaasjes op it mêd fan spoarsimulaasjespultsjes op dat stuit. En ik hâldde net fan wat ik seach, en it ZDSimulator-projekt bestie op dat stuit net. Letter, fassinearre troch de dynamyk fan rôljend materieel, kaam ik nei de Rostov State University of Transport () mei it ûnderwerp fan in doktoraal proefskrift oer de remdynamyk fan in frachttrein. Hjoed lied ik de ûntwikkeling fan opliedingskompleksen foar spoarferfier foar ús universiteit en lear spesjalisearre dissiplines by de ôfdieling Traction Rolling Stock.
Yn ferbân mei al it boppesteande is it idee ûntstien om in simulator te meitsjen dy't de ûntwikkelder fan in add-on foar it folsleine kontrôle krije soe oer de fysike prosessen dy't foarkomme yn it rollende materieel. Fergelykber mei de Orbiter romtesimulator, wêrfoar ik ienris in tafoeging ûntwikkele yn 'e foarm fan in famylje fan lansearingsauto's basearre op' e R-7. In jier lyn haw ik dit wurk oannommen en my der yn goaid. 26 desimber 2018 seach hjir it ljocht .
Myn wurk waard opmurken troch entûsjasters, en bekend yn 'e rûnten fan spoar simmers, de skepper fan fisuele ynhâld foar ZDsimulator bea my help en gearwurking oan by de fierdere ûntwikkeling fan it projekt. Letter kaam in oare ûntwikkelder by ús by - ), rûtemakker foar ZDsimulator. Us gearwurking late ús ta ús earste release. De fideo toant wat oersjoch fan hoe't it spultsje derút sjocht foar syn earste release

Funksjes fan 'e RRS Simulator
Earst en foaral is it in iepen software-arsjitektuer. Net allinich is de koade fan 'e simulator iepen boarne, mar d'r is ek in API en SDK rjochte op ûntwikkelders fan tafoegings fan tredden. De yngongsdrempel is frij heech - basis C++-ûntwikkelingsfeardigens binne fereaske. De simulator is skreaun yn C++, mei de GCC-kompiler en syn MinGW-fariant foar it bestjoeringssysteem. WindowsDerneist is it oan te rieden foar de ûntwikkelder om bekend te wêzen mei it Qt-framework, om't in protte fan syn konsepten de basis foarmje fan 'e arsjitektuer fan it spultsje.
Mei due diligence en winsk iepenet dit projekt lykwols enoarme kânsen foar de add-on-ûntwikkelder. Rolling stock wurdt ymplementearre yn 'e foarm fan modules basearre op dynamyske bibleteken. De wichtichste strukturele elemint yn de simulator is in ienheid fan rollend materieel, of mobile ienheid (MU) - in auto (net-selsridende of as ûnderdiel fan in trein mei meardere ienheden) of in diel fan in lokomotyf. De API makket it mooglik om te setten it koppel tapast oan de PE tsjil sets, yn reaksje ûntfangen fan de hoeke snelheid fan de tsjil sets, likegoed as eksterne parameters, lykas spanning en type stroom yn it kontakt netwurk. De simulator wit neat oars en wol net witte, wat de fysika fan 'e ynterne apparatuer ferlit oan it gewisse fan' e ûntwikkelder fan in bepaalde lokomotyf of auto.
It is net dreech om te rieden dat sa'n relatyf leech-nivo oanpak makket it mooglik om te fieren de lytste nuânses fan de lokomotyf circuit. Derneist omfettet de simulatorkit in set fan standertapparatuer ynstalleare op húslik rôljend materieel: konv. No.. 395, lucht distributeur condition. No.. 242, auxiliary brake valve condition. No.. 254 en oare eleminten fan rem apparatuer. De ûntwikkelder fan 'e add-on hoecht allinich dizze eleminten te ferbinen yn it pneumatyske circuit fan in spesifike lokomotyf of auto. Derneist is d'r in API foar it meitsjen fan jo eigen hardware-ienheden.
Arsjitektoanysk is RRS boud op 'e ynteraksje fan twa haadprosessen
- simulator - fysike trein dynamyk motor TrainEngine 2. Implementearret de fysika fan trein beweging rekken hâldend mei in protte eksterne faktoaren, rekken hâldend mei de ynteraksje fan bewegende ienheden fia coupling apparaten, ferwurket gegevens komme út eksterne modules dy't ymplemintearje de fysika fan wurking fan rôljend materieel apparatuer
- viewer - in grafysk subsysteem dat de treinbeweging visualisearret, boud op basis fan in grafyske motor
Dizze subsystemen ynteraksje mei elkoar troch dielde ûnthâld, útfierd basearre op de QSharedMemory klasse fan de Qt ramt. De earste demo's brûkten socket-basearre IPC, en d'r binne plannen om werom te gean nei dizze technology yn 'e takomst, rekken hâldend mei de ferfining fan guon dielen fan' e simulator en behoeften mei it each op 'e takomst. De oergong nei dielde ûnthâld wie foar in part in twongen maatregel dy't syn nut hat oerlibbe.
Ik sil de nuânses net beskriuwe - in protte fan 'e feroaringen fan' e ûntwikkeling fan dit projekt binne al beskreaun yn myn publikaasjes oer de boarne, yn 't bysûnder, ik haw in frij wiidweidich , dy't groeide út 'e praktyk fan it wurkjen oan dit projekt.
Net alles yn it projekt is sa glêd as wy wolle. Benammen it grafyske subsysteem is fier fan perfekt yn termen fan renderingskwaliteit, en de prestaasjes fan 'e sim litte in protte te winskjen oer. Dizze release hat ien doel - de mienskip fan spoarferfier-entûsjasters yntrodusearje oan it projekt, har mooglikheden sketst en úteinlik in iepen, cross-platform spoarsimulator meitsje mei in avansearre API foar tafoegingsûntwikkelders.
Perspektiven
Perspektyfen binne ôfhinklik fan jo, ús leave takomstige brûkers en ûntwikkelders. It projekt is iepen en bestiet wêr kinne jo downloade de simulator, fan , wêrfan de gearstalling kontinu oanfolle wurdt. Bestiet projekt, en , wêr kinne jo krije de meast detaillearre advys en help.
Спасибо за внимание!
Boarne: www.habr.com
