testsuite.h 792 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756
  1. /** @file
  2. * @brief MAVLink comm protocol testsuite generated from common.xml
  3. * @see https://mavlink.io/en/
  4. */
  5. #pragma once
  6. #ifndef COMMON_TESTSUITE_H
  7. #define COMMON_TESTSUITE_H
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #ifndef MAVLINK_TEST_ALL
  12. #define MAVLINK_TEST_ALL
  13. static void mavlink_test_standard(uint8_t, uint8_t, mavlink_message_t *last_msg);
  14. static void mavlink_test_common(uint8_t, uint8_t, mavlink_message_t *last_msg);
  15. static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  16. {
  17. mavlink_test_standard(system_id, component_id, last_msg);
  18. mavlink_test_common(system_id, component_id, last_msg);
  19. }
  20. #endif
  21. #include "../standard/testsuite.h"
  22. static void mavlink_test_sys_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  23. {
  24. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  25. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  26. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SYS_STATUS >= 256) {
  27. return;
  28. }
  29. #endif
  30. mavlink_message_t msg;
  31. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  32. uint16_t i;
  33. mavlink_sys_status_t packet_in = {
  34. 963497464,963497672,963497880,17859,17963,18067,18171,18275,18379,18483,18587,18691,223,963499076,963499284,963499492
  35. };
  36. mavlink_sys_status_t packet1, packet2;
  37. memset(&packet1, 0, sizeof(packet1));
  38. packet1.onboard_control_sensors_present = packet_in.onboard_control_sensors_present;
  39. packet1.onboard_control_sensors_enabled = packet_in.onboard_control_sensors_enabled;
  40. packet1.onboard_control_sensors_health = packet_in.onboard_control_sensors_health;
  41. packet1.load = packet_in.load;
  42. packet1.voltage_battery = packet_in.voltage_battery;
  43. packet1.current_battery = packet_in.current_battery;
  44. packet1.drop_rate_comm = packet_in.drop_rate_comm;
  45. packet1.errors_comm = packet_in.errors_comm;
  46. packet1.errors_count1 = packet_in.errors_count1;
  47. packet1.errors_count2 = packet_in.errors_count2;
  48. packet1.errors_count3 = packet_in.errors_count3;
  49. packet1.errors_count4 = packet_in.errors_count4;
  50. packet1.battery_remaining = packet_in.battery_remaining;
  51. packet1.onboard_control_sensors_present_extended = packet_in.onboard_control_sensors_present_extended;
  52. packet1.onboard_control_sensors_enabled_extended = packet_in.onboard_control_sensors_enabled_extended;
  53. packet1.onboard_control_sensors_health_extended = packet_in.onboard_control_sensors_health_extended;
  54. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  55. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  56. // cope with extensions
  57. memset(MAVLINK_MSG_ID_SYS_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SYS_STATUS_MIN_LEN);
  58. }
  59. #endif
  60. memset(&packet2, 0, sizeof(packet2));
  61. mavlink_msg_sys_status_encode(system_id, component_id, &msg, &packet1);
  62. mavlink_msg_sys_status_decode(&msg, &packet2);
  63. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  64. memset(&packet2, 0, sizeof(packet2));
  65. mavlink_msg_sys_status_pack(system_id, component_id, &msg , packet1.onboard_control_sensors_present , packet1.onboard_control_sensors_enabled , packet1.onboard_control_sensors_health , packet1.load , packet1.voltage_battery , packet1.current_battery , packet1.battery_remaining , packet1.drop_rate_comm , packet1.errors_comm , packet1.errors_count1 , packet1.errors_count2 , packet1.errors_count3 , packet1.errors_count4 , packet1.onboard_control_sensors_present_extended , packet1.onboard_control_sensors_enabled_extended , packet1.onboard_control_sensors_health_extended );
  66. mavlink_msg_sys_status_decode(&msg, &packet2);
  67. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  68. memset(&packet2, 0, sizeof(packet2));
  69. mavlink_msg_sys_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.onboard_control_sensors_present , packet1.onboard_control_sensors_enabled , packet1.onboard_control_sensors_health , packet1.load , packet1.voltage_battery , packet1.current_battery , packet1.battery_remaining , packet1.drop_rate_comm , packet1.errors_comm , packet1.errors_count1 , packet1.errors_count2 , packet1.errors_count3 , packet1.errors_count4 , packet1.onboard_control_sensors_present_extended , packet1.onboard_control_sensors_enabled_extended , packet1.onboard_control_sensors_health_extended );
  70. mavlink_msg_sys_status_decode(&msg, &packet2);
  71. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  72. memset(&packet2, 0, sizeof(packet2));
  73. mavlink_msg_to_send_buffer(buffer, &msg);
  74. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  75. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  76. }
  77. mavlink_msg_sys_status_decode(last_msg, &packet2);
  78. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  79. memset(&packet2, 0, sizeof(packet2));
  80. mavlink_msg_sys_status_send(MAVLINK_COMM_1 , packet1.onboard_control_sensors_present , packet1.onboard_control_sensors_enabled , packet1.onboard_control_sensors_health , packet1.load , packet1.voltage_battery , packet1.current_battery , packet1.battery_remaining , packet1.drop_rate_comm , packet1.errors_comm , packet1.errors_count1 , packet1.errors_count2 , packet1.errors_count3 , packet1.errors_count4 , packet1.onboard_control_sensors_present_extended , packet1.onboard_control_sensors_enabled_extended , packet1.onboard_control_sensors_health_extended );
  81. mavlink_msg_sys_status_decode(last_msg, &packet2);
  82. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  83. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  84. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SYS_STATUS") != NULL);
  85. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SYS_STATUS) != NULL);
  86. #endif
  87. }
  88. static void mavlink_test_system_time(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  89. {
  90. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  91. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  92. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SYSTEM_TIME >= 256) {
  93. return;
  94. }
  95. #endif
  96. mavlink_message_t msg;
  97. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  98. uint16_t i;
  99. mavlink_system_time_t packet_in = {
  100. 93372036854775807ULL,963497880
  101. };
  102. mavlink_system_time_t packet1, packet2;
  103. memset(&packet1, 0, sizeof(packet1));
  104. packet1.time_unix_usec = packet_in.time_unix_usec;
  105. packet1.time_boot_ms = packet_in.time_boot_ms;
  106. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  107. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  108. // cope with extensions
  109. memset(MAVLINK_MSG_ID_SYSTEM_TIME_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SYSTEM_TIME_MIN_LEN);
  110. }
  111. #endif
  112. memset(&packet2, 0, sizeof(packet2));
  113. mavlink_msg_system_time_encode(system_id, component_id, &msg, &packet1);
  114. mavlink_msg_system_time_decode(&msg, &packet2);
  115. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  116. memset(&packet2, 0, sizeof(packet2));
  117. mavlink_msg_system_time_pack(system_id, component_id, &msg , packet1.time_unix_usec , packet1.time_boot_ms );
  118. mavlink_msg_system_time_decode(&msg, &packet2);
  119. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  120. memset(&packet2, 0, sizeof(packet2));
  121. mavlink_msg_system_time_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_unix_usec , packet1.time_boot_ms );
  122. mavlink_msg_system_time_decode(&msg, &packet2);
  123. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  124. memset(&packet2, 0, sizeof(packet2));
  125. mavlink_msg_to_send_buffer(buffer, &msg);
  126. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  127. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  128. }
  129. mavlink_msg_system_time_decode(last_msg, &packet2);
  130. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  131. memset(&packet2, 0, sizeof(packet2));
  132. mavlink_msg_system_time_send(MAVLINK_COMM_1 , packet1.time_unix_usec , packet1.time_boot_ms );
  133. mavlink_msg_system_time_decode(last_msg, &packet2);
  134. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  135. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  136. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SYSTEM_TIME") != NULL);
  137. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SYSTEM_TIME) != NULL);
  138. #endif
  139. }
  140. static void mavlink_test_ping(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  141. {
  142. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  143. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  144. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PING >= 256) {
  145. return;
  146. }
  147. #endif
  148. mavlink_message_t msg;
  149. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  150. uint16_t i;
  151. mavlink_ping_t packet_in = {
  152. 93372036854775807ULL,963497880,41,108
  153. };
  154. mavlink_ping_t packet1, packet2;
  155. memset(&packet1, 0, sizeof(packet1));
  156. packet1.time_usec = packet_in.time_usec;
  157. packet1.seq = packet_in.seq;
  158. packet1.target_system = packet_in.target_system;
  159. packet1.target_component = packet_in.target_component;
  160. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  161. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  162. // cope with extensions
  163. memset(MAVLINK_MSG_ID_PING_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PING_MIN_LEN);
  164. }
  165. #endif
  166. memset(&packet2, 0, sizeof(packet2));
  167. mavlink_msg_ping_encode(system_id, component_id, &msg, &packet1);
  168. mavlink_msg_ping_decode(&msg, &packet2);
  169. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  170. memset(&packet2, 0, sizeof(packet2));
  171. mavlink_msg_ping_pack(system_id, component_id, &msg , packet1.time_usec , packet1.seq , packet1.target_system , packet1.target_component );
  172. mavlink_msg_ping_decode(&msg, &packet2);
  173. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  174. memset(&packet2, 0, sizeof(packet2));
  175. mavlink_msg_ping_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.seq , packet1.target_system , packet1.target_component );
  176. mavlink_msg_ping_decode(&msg, &packet2);
  177. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  178. memset(&packet2, 0, sizeof(packet2));
  179. mavlink_msg_to_send_buffer(buffer, &msg);
  180. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  181. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  182. }
  183. mavlink_msg_ping_decode(last_msg, &packet2);
  184. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  185. memset(&packet2, 0, sizeof(packet2));
  186. mavlink_msg_ping_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.seq , packet1.target_system , packet1.target_component );
  187. mavlink_msg_ping_decode(last_msg, &packet2);
  188. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  189. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  190. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PING") != NULL);
  191. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PING) != NULL);
  192. #endif
  193. }
  194. static void mavlink_test_change_operator_control(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  195. {
  196. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  197. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  198. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL >= 256) {
  199. return;
  200. }
  201. #endif
  202. mavlink_message_t msg;
  203. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  204. uint16_t i;
  205. mavlink_change_operator_control_t packet_in = {
  206. 5,72,139,"DEFGHIJKLMNOPQRSTUVWXYZA"
  207. };
  208. mavlink_change_operator_control_t packet1, packet2;
  209. memset(&packet1, 0, sizeof(packet1));
  210. packet1.target_system = packet_in.target_system;
  211. packet1.control_request = packet_in.control_request;
  212. packet1.version = packet_in.version;
  213. mav_array_memcpy(packet1.passkey, packet_in.passkey, sizeof(char)*25);
  214. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  215. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  216. // cope with extensions
  217. memset(MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_MIN_LEN);
  218. }
  219. #endif
  220. memset(&packet2, 0, sizeof(packet2));
  221. mavlink_msg_change_operator_control_encode(system_id, component_id, &msg, &packet1);
  222. mavlink_msg_change_operator_control_decode(&msg, &packet2);
  223. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  224. memset(&packet2, 0, sizeof(packet2));
  225. mavlink_msg_change_operator_control_pack(system_id, component_id, &msg , packet1.target_system , packet1.control_request , packet1.version , packet1.passkey );
  226. mavlink_msg_change_operator_control_decode(&msg, &packet2);
  227. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  228. memset(&packet2, 0, sizeof(packet2));
  229. mavlink_msg_change_operator_control_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.control_request , packet1.version , packet1.passkey );
  230. mavlink_msg_change_operator_control_decode(&msg, &packet2);
  231. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  232. memset(&packet2, 0, sizeof(packet2));
  233. mavlink_msg_to_send_buffer(buffer, &msg);
  234. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  235. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  236. }
  237. mavlink_msg_change_operator_control_decode(last_msg, &packet2);
  238. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  239. memset(&packet2, 0, sizeof(packet2));
  240. mavlink_msg_change_operator_control_send(MAVLINK_COMM_1 , packet1.target_system , packet1.control_request , packet1.version , packet1.passkey );
  241. mavlink_msg_change_operator_control_decode(last_msg, &packet2);
  242. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  243. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  244. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CHANGE_OPERATOR_CONTROL") != NULL);
  245. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL) != NULL);
  246. #endif
  247. }
  248. static void mavlink_test_change_operator_control_ack(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  249. {
  250. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  251. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  252. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK >= 256) {
  253. return;
  254. }
  255. #endif
  256. mavlink_message_t msg;
  257. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  258. uint16_t i;
  259. mavlink_change_operator_control_ack_t packet_in = {
  260. 5,72,139
  261. };
  262. mavlink_change_operator_control_ack_t packet1, packet2;
  263. memset(&packet1, 0, sizeof(packet1));
  264. packet1.gcs_system_id = packet_in.gcs_system_id;
  265. packet1.control_request = packet_in.control_request;
  266. packet1.ack = packet_in.ack;
  267. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  268. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  269. // cope with extensions
  270. memset(MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK_MIN_LEN);
  271. }
  272. #endif
  273. memset(&packet2, 0, sizeof(packet2));
  274. mavlink_msg_change_operator_control_ack_encode(system_id, component_id, &msg, &packet1);
  275. mavlink_msg_change_operator_control_ack_decode(&msg, &packet2);
  276. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  277. memset(&packet2, 0, sizeof(packet2));
  278. mavlink_msg_change_operator_control_ack_pack(system_id, component_id, &msg , packet1.gcs_system_id , packet1.control_request , packet1.ack );
  279. mavlink_msg_change_operator_control_ack_decode(&msg, &packet2);
  280. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  281. memset(&packet2, 0, sizeof(packet2));
  282. mavlink_msg_change_operator_control_ack_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.gcs_system_id , packet1.control_request , packet1.ack );
  283. mavlink_msg_change_operator_control_ack_decode(&msg, &packet2);
  284. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  285. memset(&packet2, 0, sizeof(packet2));
  286. mavlink_msg_to_send_buffer(buffer, &msg);
  287. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  288. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  289. }
  290. mavlink_msg_change_operator_control_ack_decode(last_msg, &packet2);
  291. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  292. memset(&packet2, 0, sizeof(packet2));
  293. mavlink_msg_change_operator_control_ack_send(MAVLINK_COMM_1 , packet1.gcs_system_id , packet1.control_request , packet1.ack );
  294. mavlink_msg_change_operator_control_ack_decode(last_msg, &packet2);
  295. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  296. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  297. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CHANGE_OPERATOR_CONTROL_ACK") != NULL);
  298. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK) != NULL);
  299. #endif
  300. }
  301. static void mavlink_test_auth_key(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  302. {
  303. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  304. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  305. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_AUTH_KEY >= 256) {
  306. return;
  307. }
  308. #endif
  309. mavlink_message_t msg;
  310. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  311. uint16_t i;
  312. mavlink_auth_key_t packet_in = {
  313. "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDE"
  314. };
  315. mavlink_auth_key_t packet1, packet2;
  316. memset(&packet1, 0, sizeof(packet1));
  317. mav_array_memcpy(packet1.key, packet_in.key, sizeof(char)*32);
  318. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  319. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  320. // cope with extensions
  321. memset(MAVLINK_MSG_ID_AUTH_KEY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_AUTH_KEY_MIN_LEN);
  322. }
  323. #endif
  324. memset(&packet2, 0, sizeof(packet2));
  325. mavlink_msg_auth_key_encode(system_id, component_id, &msg, &packet1);
  326. mavlink_msg_auth_key_decode(&msg, &packet2);
  327. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  328. memset(&packet2, 0, sizeof(packet2));
  329. mavlink_msg_auth_key_pack(system_id, component_id, &msg , packet1.key );
  330. mavlink_msg_auth_key_decode(&msg, &packet2);
  331. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  332. memset(&packet2, 0, sizeof(packet2));
  333. mavlink_msg_auth_key_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.key );
  334. mavlink_msg_auth_key_decode(&msg, &packet2);
  335. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  336. memset(&packet2, 0, sizeof(packet2));
  337. mavlink_msg_to_send_buffer(buffer, &msg);
  338. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  339. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  340. }
  341. mavlink_msg_auth_key_decode(last_msg, &packet2);
  342. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  343. memset(&packet2, 0, sizeof(packet2));
  344. mavlink_msg_auth_key_send(MAVLINK_COMM_1 , packet1.key );
  345. mavlink_msg_auth_key_decode(last_msg, &packet2);
  346. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  347. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  348. MAVLINK_ASSERT(mavlink_get_message_info_by_name("AUTH_KEY") != NULL);
  349. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_AUTH_KEY) != NULL);
  350. #endif
  351. }
  352. static void mavlink_test_link_node_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  353. {
  354. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  355. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  356. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LINK_NODE_STATUS >= 256) {
  357. return;
  358. }
  359. #endif
  360. mavlink_message_t msg;
  361. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  362. uint16_t i;
  363. mavlink_link_node_status_t packet_in = {
  364. 93372036854775807ULL,963497880,963498088,963498296,963498504,963498712,18691,18795,18899,235,46
  365. };
  366. mavlink_link_node_status_t packet1, packet2;
  367. memset(&packet1, 0, sizeof(packet1));
  368. packet1.timestamp = packet_in.timestamp;
  369. packet1.tx_rate = packet_in.tx_rate;
  370. packet1.rx_rate = packet_in.rx_rate;
  371. packet1.messages_sent = packet_in.messages_sent;
  372. packet1.messages_received = packet_in.messages_received;
  373. packet1.messages_lost = packet_in.messages_lost;
  374. packet1.rx_parse_err = packet_in.rx_parse_err;
  375. packet1.tx_overflows = packet_in.tx_overflows;
  376. packet1.rx_overflows = packet_in.rx_overflows;
  377. packet1.tx_buf = packet_in.tx_buf;
  378. packet1.rx_buf = packet_in.rx_buf;
  379. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  380. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  381. // cope with extensions
  382. memset(MAVLINK_MSG_ID_LINK_NODE_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LINK_NODE_STATUS_MIN_LEN);
  383. }
  384. #endif
  385. memset(&packet2, 0, sizeof(packet2));
  386. mavlink_msg_link_node_status_encode(system_id, component_id, &msg, &packet1);
  387. mavlink_msg_link_node_status_decode(&msg, &packet2);
  388. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  389. memset(&packet2, 0, sizeof(packet2));
  390. mavlink_msg_link_node_status_pack(system_id, component_id, &msg , packet1.timestamp , packet1.tx_buf , packet1.rx_buf , packet1.tx_rate , packet1.rx_rate , packet1.rx_parse_err , packet1.tx_overflows , packet1.rx_overflows , packet1.messages_sent , packet1.messages_received , packet1.messages_lost );
  391. mavlink_msg_link_node_status_decode(&msg, &packet2);
  392. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  393. memset(&packet2, 0, sizeof(packet2));
  394. mavlink_msg_link_node_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.tx_buf , packet1.rx_buf , packet1.tx_rate , packet1.rx_rate , packet1.rx_parse_err , packet1.tx_overflows , packet1.rx_overflows , packet1.messages_sent , packet1.messages_received , packet1.messages_lost );
  395. mavlink_msg_link_node_status_decode(&msg, &packet2);
  396. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  397. memset(&packet2, 0, sizeof(packet2));
  398. mavlink_msg_to_send_buffer(buffer, &msg);
  399. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  400. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  401. }
  402. mavlink_msg_link_node_status_decode(last_msg, &packet2);
  403. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  404. memset(&packet2, 0, sizeof(packet2));
  405. mavlink_msg_link_node_status_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.tx_buf , packet1.rx_buf , packet1.tx_rate , packet1.rx_rate , packet1.rx_parse_err , packet1.tx_overflows , packet1.rx_overflows , packet1.messages_sent , packet1.messages_received , packet1.messages_lost );
  406. mavlink_msg_link_node_status_decode(last_msg, &packet2);
  407. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  408. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  409. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LINK_NODE_STATUS") != NULL);
  410. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LINK_NODE_STATUS) != NULL);
  411. #endif
  412. }
  413. static void mavlink_test_set_mode(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  414. {
  415. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  416. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  417. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_MODE >= 256) {
  418. return;
  419. }
  420. #endif
  421. mavlink_message_t msg;
  422. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  423. uint16_t i;
  424. mavlink_set_mode_t packet_in = {
  425. 963497464,17,84
  426. };
  427. mavlink_set_mode_t packet1, packet2;
  428. memset(&packet1, 0, sizeof(packet1));
  429. packet1.custom_mode = packet_in.custom_mode;
  430. packet1.target_system = packet_in.target_system;
  431. packet1.base_mode = packet_in.base_mode;
  432. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  433. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  434. // cope with extensions
  435. memset(MAVLINK_MSG_ID_SET_MODE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_MODE_MIN_LEN);
  436. }
  437. #endif
  438. memset(&packet2, 0, sizeof(packet2));
  439. mavlink_msg_set_mode_encode(system_id, component_id, &msg, &packet1);
  440. mavlink_msg_set_mode_decode(&msg, &packet2);
  441. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  442. memset(&packet2, 0, sizeof(packet2));
  443. mavlink_msg_set_mode_pack(system_id, component_id, &msg , packet1.target_system , packet1.base_mode , packet1.custom_mode );
  444. mavlink_msg_set_mode_decode(&msg, &packet2);
  445. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  446. memset(&packet2, 0, sizeof(packet2));
  447. mavlink_msg_set_mode_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.base_mode , packet1.custom_mode );
  448. mavlink_msg_set_mode_decode(&msg, &packet2);
  449. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  450. memset(&packet2, 0, sizeof(packet2));
  451. mavlink_msg_to_send_buffer(buffer, &msg);
  452. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  453. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  454. }
  455. mavlink_msg_set_mode_decode(last_msg, &packet2);
  456. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  457. memset(&packet2, 0, sizeof(packet2));
  458. mavlink_msg_set_mode_send(MAVLINK_COMM_1 , packet1.target_system , packet1.base_mode , packet1.custom_mode );
  459. mavlink_msg_set_mode_decode(last_msg, &packet2);
  460. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  461. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  462. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_MODE") != NULL);
  463. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_MODE) != NULL);
  464. #endif
  465. }
  466. static void mavlink_test_param_request_read(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  467. {
  468. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  469. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  470. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_REQUEST_READ >= 256) {
  471. return;
  472. }
  473. #endif
  474. mavlink_message_t msg;
  475. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  476. uint16_t i;
  477. mavlink_param_request_read_t packet_in = {
  478. 17235,139,206,"EFGHIJKLMNOPQRS"
  479. };
  480. mavlink_param_request_read_t packet1, packet2;
  481. memset(&packet1, 0, sizeof(packet1));
  482. packet1.param_index = packet_in.param_index;
  483. packet1.target_system = packet_in.target_system;
  484. packet1.target_component = packet_in.target_component;
  485. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  486. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  487. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  488. // cope with extensions
  489. memset(MAVLINK_MSG_ID_PARAM_REQUEST_READ_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_REQUEST_READ_MIN_LEN);
  490. }
  491. #endif
  492. memset(&packet2, 0, sizeof(packet2));
  493. mavlink_msg_param_request_read_encode(system_id, component_id, &msg, &packet1);
  494. mavlink_msg_param_request_read_decode(&msg, &packet2);
  495. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  496. memset(&packet2, 0, sizeof(packet2));
  497. mavlink_msg_param_request_read_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index );
  498. mavlink_msg_param_request_read_decode(&msg, &packet2);
  499. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  500. memset(&packet2, 0, sizeof(packet2));
  501. mavlink_msg_param_request_read_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index );
  502. mavlink_msg_param_request_read_decode(&msg, &packet2);
  503. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  504. memset(&packet2, 0, sizeof(packet2));
  505. mavlink_msg_to_send_buffer(buffer, &msg);
  506. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  507. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  508. }
  509. mavlink_msg_param_request_read_decode(last_msg, &packet2);
  510. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  511. memset(&packet2, 0, sizeof(packet2));
  512. mavlink_msg_param_request_read_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index );
  513. mavlink_msg_param_request_read_decode(last_msg, &packet2);
  514. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  515. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  516. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_REQUEST_READ") != NULL);
  517. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_REQUEST_READ) != NULL);
  518. #endif
  519. }
  520. static void mavlink_test_param_request_list(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  521. {
  522. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  523. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  524. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_REQUEST_LIST >= 256) {
  525. return;
  526. }
  527. #endif
  528. mavlink_message_t msg;
  529. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  530. uint16_t i;
  531. mavlink_param_request_list_t packet_in = {
  532. 5,72
  533. };
  534. mavlink_param_request_list_t packet1, packet2;
  535. memset(&packet1, 0, sizeof(packet1));
  536. packet1.target_system = packet_in.target_system;
  537. packet1.target_component = packet_in.target_component;
  538. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  539. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  540. // cope with extensions
  541. memset(MAVLINK_MSG_ID_PARAM_REQUEST_LIST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_REQUEST_LIST_MIN_LEN);
  542. }
  543. #endif
  544. memset(&packet2, 0, sizeof(packet2));
  545. mavlink_msg_param_request_list_encode(system_id, component_id, &msg, &packet1);
  546. mavlink_msg_param_request_list_decode(&msg, &packet2);
  547. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  548. memset(&packet2, 0, sizeof(packet2));
  549. mavlink_msg_param_request_list_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component );
  550. mavlink_msg_param_request_list_decode(&msg, &packet2);
  551. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  552. memset(&packet2, 0, sizeof(packet2));
  553. mavlink_msg_param_request_list_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component );
  554. mavlink_msg_param_request_list_decode(&msg, &packet2);
  555. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  556. memset(&packet2, 0, sizeof(packet2));
  557. mavlink_msg_to_send_buffer(buffer, &msg);
  558. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  559. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  560. }
  561. mavlink_msg_param_request_list_decode(last_msg, &packet2);
  562. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  563. memset(&packet2, 0, sizeof(packet2));
  564. mavlink_msg_param_request_list_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component );
  565. mavlink_msg_param_request_list_decode(last_msg, &packet2);
  566. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  567. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  568. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_REQUEST_LIST") != NULL);
  569. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_REQUEST_LIST) != NULL);
  570. #endif
  571. }
  572. static void mavlink_test_param_value(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  573. {
  574. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  575. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  576. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_VALUE >= 256) {
  577. return;
  578. }
  579. #endif
  580. mavlink_message_t msg;
  581. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  582. uint16_t i;
  583. mavlink_param_value_t packet_in = {
  584. 17.0,17443,17547,"IJKLMNOPQRSTUVW",77
  585. };
  586. mavlink_param_value_t packet1, packet2;
  587. memset(&packet1, 0, sizeof(packet1));
  588. packet1.param_value = packet_in.param_value;
  589. packet1.param_count = packet_in.param_count;
  590. packet1.param_index = packet_in.param_index;
  591. packet1.param_type = packet_in.param_type;
  592. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  593. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  594. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  595. // cope with extensions
  596. memset(MAVLINK_MSG_ID_PARAM_VALUE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_VALUE_MIN_LEN);
  597. }
  598. #endif
  599. memset(&packet2, 0, sizeof(packet2));
  600. mavlink_msg_param_value_encode(system_id, component_id, &msg, &packet1);
  601. mavlink_msg_param_value_decode(&msg, &packet2);
  602. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  603. memset(&packet2, 0, sizeof(packet2));
  604. mavlink_msg_param_value_pack(system_id, component_id, &msg , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_count , packet1.param_index );
  605. mavlink_msg_param_value_decode(&msg, &packet2);
  606. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  607. memset(&packet2, 0, sizeof(packet2));
  608. mavlink_msg_param_value_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_count , packet1.param_index );
  609. mavlink_msg_param_value_decode(&msg, &packet2);
  610. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  611. memset(&packet2, 0, sizeof(packet2));
  612. mavlink_msg_to_send_buffer(buffer, &msg);
  613. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  614. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  615. }
  616. mavlink_msg_param_value_decode(last_msg, &packet2);
  617. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  618. memset(&packet2, 0, sizeof(packet2));
  619. mavlink_msg_param_value_send(MAVLINK_COMM_1 , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_count , packet1.param_index );
  620. mavlink_msg_param_value_decode(last_msg, &packet2);
  621. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  622. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  623. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_VALUE") != NULL);
  624. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_VALUE) != NULL);
  625. #endif
  626. }
  627. static void mavlink_test_param_set(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  628. {
  629. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  630. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  631. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_SET >= 256) {
  632. return;
  633. }
  634. #endif
  635. mavlink_message_t msg;
  636. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  637. uint16_t i;
  638. mavlink_param_set_t packet_in = {
  639. 17.0,17,84,"GHIJKLMNOPQRSTU",199
  640. };
  641. mavlink_param_set_t packet1, packet2;
  642. memset(&packet1, 0, sizeof(packet1));
  643. packet1.param_value = packet_in.param_value;
  644. packet1.target_system = packet_in.target_system;
  645. packet1.target_component = packet_in.target_component;
  646. packet1.param_type = packet_in.param_type;
  647. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  648. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  649. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  650. // cope with extensions
  651. memset(MAVLINK_MSG_ID_PARAM_SET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_SET_MIN_LEN);
  652. }
  653. #endif
  654. memset(&packet2, 0, sizeof(packet2));
  655. mavlink_msg_param_set_encode(system_id, component_id, &msg, &packet1);
  656. mavlink_msg_param_set_decode(&msg, &packet2);
  657. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  658. memset(&packet2, 0, sizeof(packet2));
  659. mavlink_msg_param_set_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_value , packet1.param_type );
  660. mavlink_msg_param_set_decode(&msg, &packet2);
  661. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  662. memset(&packet2, 0, sizeof(packet2));
  663. mavlink_msg_param_set_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_value , packet1.param_type );
  664. mavlink_msg_param_set_decode(&msg, &packet2);
  665. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  666. memset(&packet2, 0, sizeof(packet2));
  667. mavlink_msg_to_send_buffer(buffer, &msg);
  668. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  669. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  670. }
  671. mavlink_msg_param_set_decode(last_msg, &packet2);
  672. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  673. memset(&packet2, 0, sizeof(packet2));
  674. mavlink_msg_param_set_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_value , packet1.param_type );
  675. mavlink_msg_param_set_decode(last_msg, &packet2);
  676. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  677. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  678. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_SET") != NULL);
  679. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_SET) != NULL);
  680. #endif
  681. }
  682. static void mavlink_test_gps_raw_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  683. {
  684. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  685. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  686. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_RAW_INT >= 256) {
  687. return;
  688. }
  689. #endif
  690. mavlink_message_t msg;
  691. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  692. uint16_t i;
  693. mavlink_gps_raw_int_t packet_in = {
  694. 93372036854775807ULL,963497880,963498088,963498296,18275,18379,18483,18587,89,156,963499024,963499232,963499440,963499648,963499856,19835
  695. };
  696. mavlink_gps_raw_int_t packet1, packet2;
  697. memset(&packet1, 0, sizeof(packet1));
  698. packet1.time_usec = packet_in.time_usec;
  699. packet1.lat = packet_in.lat;
  700. packet1.lon = packet_in.lon;
  701. packet1.alt = packet_in.alt;
  702. packet1.eph = packet_in.eph;
  703. packet1.epv = packet_in.epv;
  704. packet1.vel = packet_in.vel;
  705. packet1.cog = packet_in.cog;
  706. packet1.fix_type = packet_in.fix_type;
  707. packet1.satellites_visible = packet_in.satellites_visible;
  708. packet1.alt_ellipsoid = packet_in.alt_ellipsoid;
  709. packet1.h_acc = packet_in.h_acc;
  710. packet1.v_acc = packet_in.v_acc;
  711. packet1.vel_acc = packet_in.vel_acc;
  712. packet1.hdg_acc = packet_in.hdg_acc;
  713. packet1.yaw = packet_in.yaw;
  714. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  715. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  716. // cope with extensions
  717. memset(MAVLINK_MSG_ID_GPS_RAW_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_RAW_INT_MIN_LEN);
  718. }
  719. #endif
  720. memset(&packet2, 0, sizeof(packet2));
  721. mavlink_msg_gps_raw_int_encode(system_id, component_id, &msg, &packet1);
  722. mavlink_msg_gps_raw_int_decode(&msg, &packet2);
  723. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  724. memset(&packet2, 0, sizeof(packet2));
  725. mavlink_msg_gps_raw_int_pack(system_id, component_id, &msg , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.cog , packet1.satellites_visible , packet1.alt_ellipsoid , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.hdg_acc , packet1.yaw );
  726. mavlink_msg_gps_raw_int_decode(&msg, &packet2);
  727. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  728. memset(&packet2, 0, sizeof(packet2));
  729. mavlink_msg_gps_raw_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.cog , packet1.satellites_visible , packet1.alt_ellipsoid , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.hdg_acc , packet1.yaw );
  730. mavlink_msg_gps_raw_int_decode(&msg, &packet2);
  731. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  732. memset(&packet2, 0, sizeof(packet2));
  733. mavlink_msg_to_send_buffer(buffer, &msg);
  734. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  735. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  736. }
  737. mavlink_msg_gps_raw_int_decode(last_msg, &packet2);
  738. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  739. memset(&packet2, 0, sizeof(packet2));
  740. mavlink_msg_gps_raw_int_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.cog , packet1.satellites_visible , packet1.alt_ellipsoid , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.hdg_acc , packet1.yaw );
  741. mavlink_msg_gps_raw_int_decode(last_msg, &packet2);
  742. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  743. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  744. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_RAW_INT") != NULL);
  745. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_RAW_INT) != NULL);
  746. #endif
  747. }
  748. static void mavlink_test_gps_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  749. {
  750. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  751. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  752. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_STATUS >= 256) {
  753. return;
  754. }
  755. #endif
  756. mavlink_message_t msg;
  757. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  758. uint16_t i;
  759. mavlink_gps_status_t packet_in = {
  760. 5,{ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91 },{ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151 },{ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211 },{ 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },{ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75 }
  761. };
  762. mavlink_gps_status_t packet1, packet2;
  763. memset(&packet1, 0, sizeof(packet1));
  764. packet1.satellites_visible = packet_in.satellites_visible;
  765. mav_array_memcpy(packet1.satellite_prn, packet_in.satellite_prn, sizeof(uint8_t)*20);
  766. mav_array_memcpy(packet1.satellite_used, packet_in.satellite_used, sizeof(uint8_t)*20);
  767. mav_array_memcpy(packet1.satellite_elevation, packet_in.satellite_elevation, sizeof(uint8_t)*20);
  768. mav_array_memcpy(packet1.satellite_azimuth, packet_in.satellite_azimuth, sizeof(uint8_t)*20);
  769. mav_array_memcpy(packet1.satellite_snr, packet_in.satellite_snr, sizeof(uint8_t)*20);
  770. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  771. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  772. // cope with extensions
  773. memset(MAVLINK_MSG_ID_GPS_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_STATUS_MIN_LEN);
  774. }
  775. #endif
  776. memset(&packet2, 0, sizeof(packet2));
  777. mavlink_msg_gps_status_encode(system_id, component_id, &msg, &packet1);
  778. mavlink_msg_gps_status_decode(&msg, &packet2);
  779. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  780. memset(&packet2, 0, sizeof(packet2));
  781. mavlink_msg_gps_status_pack(system_id, component_id, &msg , packet1.satellites_visible , packet1.satellite_prn , packet1.satellite_used , packet1.satellite_elevation , packet1.satellite_azimuth , packet1.satellite_snr );
  782. mavlink_msg_gps_status_decode(&msg, &packet2);
  783. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  784. memset(&packet2, 0, sizeof(packet2));
  785. mavlink_msg_gps_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.satellites_visible , packet1.satellite_prn , packet1.satellite_used , packet1.satellite_elevation , packet1.satellite_azimuth , packet1.satellite_snr );
  786. mavlink_msg_gps_status_decode(&msg, &packet2);
  787. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  788. memset(&packet2, 0, sizeof(packet2));
  789. mavlink_msg_to_send_buffer(buffer, &msg);
  790. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  791. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  792. }
  793. mavlink_msg_gps_status_decode(last_msg, &packet2);
  794. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  795. memset(&packet2, 0, sizeof(packet2));
  796. mavlink_msg_gps_status_send(MAVLINK_COMM_1 , packet1.satellites_visible , packet1.satellite_prn , packet1.satellite_used , packet1.satellite_elevation , packet1.satellite_azimuth , packet1.satellite_snr );
  797. mavlink_msg_gps_status_decode(last_msg, &packet2);
  798. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  799. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  800. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_STATUS") != NULL);
  801. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_STATUS) != NULL);
  802. #endif
  803. }
  804. static void mavlink_test_scaled_imu(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  805. {
  806. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  807. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  808. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SCALED_IMU >= 256) {
  809. return;
  810. }
  811. #endif
  812. mavlink_message_t msg;
  813. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  814. uint16_t i;
  815. mavlink_scaled_imu_t packet_in = {
  816. 963497464,17443,17547,17651,17755,17859,17963,18067,18171,18275,18379
  817. };
  818. mavlink_scaled_imu_t packet1, packet2;
  819. memset(&packet1, 0, sizeof(packet1));
  820. packet1.time_boot_ms = packet_in.time_boot_ms;
  821. packet1.xacc = packet_in.xacc;
  822. packet1.yacc = packet_in.yacc;
  823. packet1.zacc = packet_in.zacc;
  824. packet1.xgyro = packet_in.xgyro;
  825. packet1.ygyro = packet_in.ygyro;
  826. packet1.zgyro = packet_in.zgyro;
  827. packet1.xmag = packet_in.xmag;
  828. packet1.ymag = packet_in.ymag;
  829. packet1.zmag = packet_in.zmag;
  830. packet1.temperature = packet_in.temperature;
  831. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  832. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  833. // cope with extensions
  834. memset(MAVLINK_MSG_ID_SCALED_IMU_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SCALED_IMU_MIN_LEN);
  835. }
  836. #endif
  837. memset(&packet2, 0, sizeof(packet2));
  838. mavlink_msg_scaled_imu_encode(system_id, component_id, &msg, &packet1);
  839. mavlink_msg_scaled_imu_decode(&msg, &packet2);
  840. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  841. memset(&packet2, 0, sizeof(packet2));
  842. mavlink_msg_scaled_imu_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  843. mavlink_msg_scaled_imu_decode(&msg, &packet2);
  844. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  845. memset(&packet2, 0, sizeof(packet2));
  846. mavlink_msg_scaled_imu_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  847. mavlink_msg_scaled_imu_decode(&msg, &packet2);
  848. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  849. memset(&packet2, 0, sizeof(packet2));
  850. mavlink_msg_to_send_buffer(buffer, &msg);
  851. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  852. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  853. }
  854. mavlink_msg_scaled_imu_decode(last_msg, &packet2);
  855. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  856. memset(&packet2, 0, sizeof(packet2));
  857. mavlink_msg_scaled_imu_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  858. mavlink_msg_scaled_imu_decode(last_msg, &packet2);
  859. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  860. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  861. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SCALED_IMU") != NULL);
  862. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SCALED_IMU) != NULL);
  863. #endif
  864. }
  865. static void mavlink_test_raw_imu(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  866. {
  867. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  868. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  869. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RAW_IMU >= 256) {
  870. return;
  871. }
  872. #endif
  873. mavlink_message_t msg;
  874. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  875. uint16_t i;
  876. mavlink_raw_imu_t packet_in = {
  877. 93372036854775807ULL,17651,17755,17859,17963,18067,18171,18275,18379,18483,211,18639
  878. };
  879. mavlink_raw_imu_t packet1, packet2;
  880. memset(&packet1, 0, sizeof(packet1));
  881. packet1.time_usec = packet_in.time_usec;
  882. packet1.xacc = packet_in.xacc;
  883. packet1.yacc = packet_in.yacc;
  884. packet1.zacc = packet_in.zacc;
  885. packet1.xgyro = packet_in.xgyro;
  886. packet1.ygyro = packet_in.ygyro;
  887. packet1.zgyro = packet_in.zgyro;
  888. packet1.xmag = packet_in.xmag;
  889. packet1.ymag = packet_in.ymag;
  890. packet1.zmag = packet_in.zmag;
  891. packet1.id = packet_in.id;
  892. packet1.temperature = packet_in.temperature;
  893. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  894. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  895. // cope with extensions
  896. memset(MAVLINK_MSG_ID_RAW_IMU_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RAW_IMU_MIN_LEN);
  897. }
  898. #endif
  899. memset(&packet2, 0, sizeof(packet2));
  900. mavlink_msg_raw_imu_encode(system_id, component_id, &msg, &packet1);
  901. mavlink_msg_raw_imu_decode(&msg, &packet2);
  902. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  903. memset(&packet2, 0, sizeof(packet2));
  904. mavlink_msg_raw_imu_pack(system_id, component_id, &msg , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.id , packet1.temperature );
  905. mavlink_msg_raw_imu_decode(&msg, &packet2);
  906. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  907. memset(&packet2, 0, sizeof(packet2));
  908. mavlink_msg_raw_imu_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.id , packet1.temperature );
  909. mavlink_msg_raw_imu_decode(&msg, &packet2);
  910. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  911. memset(&packet2, 0, sizeof(packet2));
  912. mavlink_msg_to_send_buffer(buffer, &msg);
  913. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  914. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  915. }
  916. mavlink_msg_raw_imu_decode(last_msg, &packet2);
  917. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  918. memset(&packet2, 0, sizeof(packet2));
  919. mavlink_msg_raw_imu_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.id , packet1.temperature );
  920. mavlink_msg_raw_imu_decode(last_msg, &packet2);
  921. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  922. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  923. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RAW_IMU") != NULL);
  924. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RAW_IMU) != NULL);
  925. #endif
  926. }
  927. static void mavlink_test_raw_pressure(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  928. {
  929. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  930. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  931. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RAW_PRESSURE >= 256) {
  932. return;
  933. }
  934. #endif
  935. mavlink_message_t msg;
  936. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  937. uint16_t i;
  938. mavlink_raw_pressure_t packet_in = {
  939. 93372036854775807ULL,17651,17755,17859,17963
  940. };
  941. mavlink_raw_pressure_t packet1, packet2;
  942. memset(&packet1, 0, sizeof(packet1));
  943. packet1.time_usec = packet_in.time_usec;
  944. packet1.press_abs = packet_in.press_abs;
  945. packet1.press_diff1 = packet_in.press_diff1;
  946. packet1.press_diff2 = packet_in.press_diff2;
  947. packet1.temperature = packet_in.temperature;
  948. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  949. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  950. // cope with extensions
  951. memset(MAVLINK_MSG_ID_RAW_PRESSURE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RAW_PRESSURE_MIN_LEN);
  952. }
  953. #endif
  954. memset(&packet2, 0, sizeof(packet2));
  955. mavlink_msg_raw_pressure_encode(system_id, component_id, &msg, &packet1);
  956. mavlink_msg_raw_pressure_decode(&msg, &packet2);
  957. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  958. memset(&packet2, 0, sizeof(packet2));
  959. mavlink_msg_raw_pressure_pack(system_id, component_id, &msg , packet1.time_usec , packet1.press_abs , packet1.press_diff1 , packet1.press_diff2 , packet1.temperature );
  960. mavlink_msg_raw_pressure_decode(&msg, &packet2);
  961. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  962. memset(&packet2, 0, sizeof(packet2));
  963. mavlink_msg_raw_pressure_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.press_abs , packet1.press_diff1 , packet1.press_diff2 , packet1.temperature );
  964. mavlink_msg_raw_pressure_decode(&msg, &packet2);
  965. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  966. memset(&packet2, 0, sizeof(packet2));
  967. mavlink_msg_to_send_buffer(buffer, &msg);
  968. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  969. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  970. }
  971. mavlink_msg_raw_pressure_decode(last_msg, &packet2);
  972. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  973. memset(&packet2, 0, sizeof(packet2));
  974. mavlink_msg_raw_pressure_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.press_abs , packet1.press_diff1 , packet1.press_diff2 , packet1.temperature );
  975. mavlink_msg_raw_pressure_decode(last_msg, &packet2);
  976. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  977. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  978. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RAW_PRESSURE") != NULL);
  979. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RAW_PRESSURE) != NULL);
  980. #endif
  981. }
  982. static void mavlink_test_scaled_pressure(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  983. {
  984. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  985. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  986. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SCALED_PRESSURE >= 256) {
  987. return;
  988. }
  989. #endif
  990. mavlink_message_t msg;
  991. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  992. uint16_t i;
  993. mavlink_scaled_pressure_t packet_in = {
  994. 963497464,45.0,73.0,17859,17963
  995. };
  996. mavlink_scaled_pressure_t packet1, packet2;
  997. memset(&packet1, 0, sizeof(packet1));
  998. packet1.time_boot_ms = packet_in.time_boot_ms;
  999. packet1.press_abs = packet_in.press_abs;
  1000. packet1.press_diff = packet_in.press_diff;
  1001. packet1.temperature = packet_in.temperature;
  1002. packet1.temperature_press_diff = packet_in.temperature_press_diff;
  1003. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1004. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1005. // cope with extensions
  1006. memset(MAVLINK_MSG_ID_SCALED_PRESSURE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SCALED_PRESSURE_MIN_LEN);
  1007. }
  1008. #endif
  1009. memset(&packet2, 0, sizeof(packet2));
  1010. mavlink_msg_scaled_pressure_encode(system_id, component_id, &msg, &packet1);
  1011. mavlink_msg_scaled_pressure_decode(&msg, &packet2);
  1012. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1013. memset(&packet2, 0, sizeof(packet2));
  1014. mavlink_msg_scaled_pressure_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  1015. mavlink_msg_scaled_pressure_decode(&msg, &packet2);
  1016. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1017. memset(&packet2, 0, sizeof(packet2));
  1018. mavlink_msg_scaled_pressure_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  1019. mavlink_msg_scaled_pressure_decode(&msg, &packet2);
  1020. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1021. memset(&packet2, 0, sizeof(packet2));
  1022. mavlink_msg_to_send_buffer(buffer, &msg);
  1023. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1024. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1025. }
  1026. mavlink_msg_scaled_pressure_decode(last_msg, &packet2);
  1027. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1028. memset(&packet2, 0, sizeof(packet2));
  1029. mavlink_msg_scaled_pressure_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  1030. mavlink_msg_scaled_pressure_decode(last_msg, &packet2);
  1031. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1032. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1033. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SCALED_PRESSURE") != NULL);
  1034. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SCALED_PRESSURE) != NULL);
  1035. #endif
  1036. }
  1037. static void mavlink_test_attitude(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1038. {
  1039. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1040. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1041. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ATTITUDE >= 256) {
  1042. return;
  1043. }
  1044. #endif
  1045. mavlink_message_t msg;
  1046. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1047. uint16_t i;
  1048. mavlink_attitude_t packet_in = {
  1049. 963497464,45.0,73.0,101.0,129.0,157.0,185.0
  1050. };
  1051. mavlink_attitude_t packet1, packet2;
  1052. memset(&packet1, 0, sizeof(packet1));
  1053. packet1.time_boot_ms = packet_in.time_boot_ms;
  1054. packet1.roll = packet_in.roll;
  1055. packet1.pitch = packet_in.pitch;
  1056. packet1.yaw = packet_in.yaw;
  1057. packet1.rollspeed = packet_in.rollspeed;
  1058. packet1.pitchspeed = packet_in.pitchspeed;
  1059. packet1.yawspeed = packet_in.yawspeed;
  1060. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1061. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1062. // cope with extensions
  1063. memset(MAVLINK_MSG_ID_ATTITUDE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ATTITUDE_MIN_LEN);
  1064. }
  1065. #endif
  1066. memset(&packet2, 0, sizeof(packet2));
  1067. mavlink_msg_attitude_encode(system_id, component_id, &msg, &packet1);
  1068. mavlink_msg_attitude_decode(&msg, &packet2);
  1069. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1070. memset(&packet2, 0, sizeof(packet2));
  1071. mavlink_msg_attitude_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed );
  1072. mavlink_msg_attitude_decode(&msg, &packet2);
  1073. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1074. memset(&packet2, 0, sizeof(packet2));
  1075. mavlink_msg_attitude_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed );
  1076. mavlink_msg_attitude_decode(&msg, &packet2);
  1077. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1078. memset(&packet2, 0, sizeof(packet2));
  1079. mavlink_msg_to_send_buffer(buffer, &msg);
  1080. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1081. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1082. }
  1083. mavlink_msg_attitude_decode(last_msg, &packet2);
  1084. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1085. memset(&packet2, 0, sizeof(packet2));
  1086. mavlink_msg_attitude_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed );
  1087. mavlink_msg_attitude_decode(last_msg, &packet2);
  1088. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1089. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1090. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ATTITUDE") != NULL);
  1091. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ATTITUDE) != NULL);
  1092. #endif
  1093. }
  1094. static void mavlink_test_attitude_quaternion(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1095. {
  1096. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1097. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1098. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ATTITUDE_QUATERNION >= 256) {
  1099. return;
  1100. }
  1101. #endif
  1102. mavlink_message_t msg;
  1103. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1104. uint16_t i;
  1105. mavlink_attitude_quaternion_t packet_in = {
  1106. 963497464,45.0,73.0,101.0,129.0,157.0,185.0,213.0,{ 241.0, 242.0, 243.0, 244.0 }
  1107. };
  1108. mavlink_attitude_quaternion_t packet1, packet2;
  1109. memset(&packet1, 0, sizeof(packet1));
  1110. packet1.time_boot_ms = packet_in.time_boot_ms;
  1111. packet1.q1 = packet_in.q1;
  1112. packet1.q2 = packet_in.q2;
  1113. packet1.q3 = packet_in.q3;
  1114. packet1.q4 = packet_in.q4;
  1115. packet1.rollspeed = packet_in.rollspeed;
  1116. packet1.pitchspeed = packet_in.pitchspeed;
  1117. packet1.yawspeed = packet_in.yawspeed;
  1118. mav_array_memcpy(packet1.repr_offset_q, packet_in.repr_offset_q, sizeof(float)*4);
  1119. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1120. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1121. // cope with extensions
  1122. memset(MAVLINK_MSG_ID_ATTITUDE_QUATERNION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ATTITUDE_QUATERNION_MIN_LEN);
  1123. }
  1124. #endif
  1125. memset(&packet2, 0, sizeof(packet2));
  1126. mavlink_msg_attitude_quaternion_encode(system_id, component_id, &msg, &packet1);
  1127. mavlink_msg_attitude_quaternion_decode(&msg, &packet2);
  1128. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1129. memset(&packet2, 0, sizeof(packet2));
  1130. mavlink_msg_attitude_quaternion_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.q1 , packet1.q2 , packet1.q3 , packet1.q4 , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.repr_offset_q );
  1131. mavlink_msg_attitude_quaternion_decode(&msg, &packet2);
  1132. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1133. memset(&packet2, 0, sizeof(packet2));
  1134. mavlink_msg_attitude_quaternion_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.q1 , packet1.q2 , packet1.q3 , packet1.q4 , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.repr_offset_q );
  1135. mavlink_msg_attitude_quaternion_decode(&msg, &packet2);
  1136. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1137. memset(&packet2, 0, sizeof(packet2));
  1138. mavlink_msg_to_send_buffer(buffer, &msg);
  1139. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1140. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1141. }
  1142. mavlink_msg_attitude_quaternion_decode(last_msg, &packet2);
  1143. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1144. memset(&packet2, 0, sizeof(packet2));
  1145. mavlink_msg_attitude_quaternion_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.q1 , packet1.q2 , packet1.q3 , packet1.q4 , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.repr_offset_q );
  1146. mavlink_msg_attitude_quaternion_decode(last_msg, &packet2);
  1147. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1148. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1149. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ATTITUDE_QUATERNION") != NULL);
  1150. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ATTITUDE_QUATERNION) != NULL);
  1151. #endif
  1152. }
  1153. static void mavlink_test_local_position_ned(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1154. {
  1155. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1156. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1157. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOCAL_POSITION_NED >= 256) {
  1158. return;
  1159. }
  1160. #endif
  1161. mavlink_message_t msg;
  1162. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1163. uint16_t i;
  1164. mavlink_local_position_ned_t packet_in = {
  1165. 963497464,45.0,73.0,101.0,129.0,157.0,185.0
  1166. };
  1167. mavlink_local_position_ned_t packet1, packet2;
  1168. memset(&packet1, 0, sizeof(packet1));
  1169. packet1.time_boot_ms = packet_in.time_boot_ms;
  1170. packet1.x = packet_in.x;
  1171. packet1.y = packet_in.y;
  1172. packet1.z = packet_in.z;
  1173. packet1.vx = packet_in.vx;
  1174. packet1.vy = packet_in.vy;
  1175. packet1.vz = packet_in.vz;
  1176. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1177. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1178. // cope with extensions
  1179. memset(MAVLINK_MSG_ID_LOCAL_POSITION_NED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOCAL_POSITION_NED_MIN_LEN);
  1180. }
  1181. #endif
  1182. memset(&packet2, 0, sizeof(packet2));
  1183. mavlink_msg_local_position_ned_encode(system_id, component_id, &msg, &packet1);
  1184. mavlink_msg_local_position_ned_decode(&msg, &packet2);
  1185. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1186. memset(&packet2, 0, sizeof(packet2));
  1187. mavlink_msg_local_position_ned_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz );
  1188. mavlink_msg_local_position_ned_decode(&msg, &packet2);
  1189. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1190. memset(&packet2, 0, sizeof(packet2));
  1191. mavlink_msg_local_position_ned_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz );
  1192. mavlink_msg_local_position_ned_decode(&msg, &packet2);
  1193. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1194. memset(&packet2, 0, sizeof(packet2));
  1195. mavlink_msg_to_send_buffer(buffer, &msg);
  1196. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1197. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1198. }
  1199. mavlink_msg_local_position_ned_decode(last_msg, &packet2);
  1200. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1201. memset(&packet2, 0, sizeof(packet2));
  1202. mavlink_msg_local_position_ned_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz );
  1203. mavlink_msg_local_position_ned_decode(last_msg, &packet2);
  1204. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1205. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1206. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOCAL_POSITION_NED") != NULL);
  1207. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOCAL_POSITION_NED) != NULL);
  1208. #endif
  1209. }
  1210. static void mavlink_test_global_position_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1211. {
  1212. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1213. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1214. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GLOBAL_POSITION_INT >= 256) {
  1215. return;
  1216. }
  1217. #endif
  1218. mavlink_message_t msg;
  1219. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1220. uint16_t i;
  1221. mavlink_global_position_int_t packet_in = {
  1222. 963497464,963497672,963497880,963498088,963498296,18275,18379,18483,18587
  1223. };
  1224. mavlink_global_position_int_t packet1, packet2;
  1225. memset(&packet1, 0, sizeof(packet1));
  1226. packet1.time_boot_ms = packet_in.time_boot_ms;
  1227. packet1.lat = packet_in.lat;
  1228. packet1.lon = packet_in.lon;
  1229. packet1.alt = packet_in.alt;
  1230. packet1.relative_alt = packet_in.relative_alt;
  1231. packet1.vx = packet_in.vx;
  1232. packet1.vy = packet_in.vy;
  1233. packet1.vz = packet_in.vz;
  1234. packet1.hdg = packet_in.hdg;
  1235. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1236. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1237. // cope with extensions
  1238. memset(MAVLINK_MSG_ID_GLOBAL_POSITION_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GLOBAL_POSITION_INT_MIN_LEN);
  1239. }
  1240. #endif
  1241. memset(&packet2, 0, sizeof(packet2));
  1242. mavlink_msg_global_position_int_encode(system_id, component_id, &msg, &packet1);
  1243. mavlink_msg_global_position_int_decode(&msg, &packet2);
  1244. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1245. memset(&packet2, 0, sizeof(packet2));
  1246. mavlink_msg_global_position_int_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.hdg );
  1247. mavlink_msg_global_position_int_decode(&msg, &packet2);
  1248. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1249. memset(&packet2, 0, sizeof(packet2));
  1250. mavlink_msg_global_position_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.hdg );
  1251. mavlink_msg_global_position_int_decode(&msg, &packet2);
  1252. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1253. memset(&packet2, 0, sizeof(packet2));
  1254. mavlink_msg_to_send_buffer(buffer, &msg);
  1255. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1256. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1257. }
  1258. mavlink_msg_global_position_int_decode(last_msg, &packet2);
  1259. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1260. memset(&packet2, 0, sizeof(packet2));
  1261. mavlink_msg_global_position_int_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.hdg );
  1262. mavlink_msg_global_position_int_decode(last_msg, &packet2);
  1263. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1264. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1265. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GLOBAL_POSITION_INT") != NULL);
  1266. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GLOBAL_POSITION_INT) != NULL);
  1267. #endif
  1268. }
  1269. static void mavlink_test_rc_channels_scaled(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1270. {
  1271. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1272. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1273. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RC_CHANNELS_SCALED >= 256) {
  1274. return;
  1275. }
  1276. #endif
  1277. mavlink_message_t msg;
  1278. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1279. uint16_t i;
  1280. mavlink_rc_channels_scaled_t packet_in = {
  1281. 963497464,17443,17547,17651,17755,17859,17963,18067,18171,65,132
  1282. };
  1283. mavlink_rc_channels_scaled_t packet1, packet2;
  1284. memset(&packet1, 0, sizeof(packet1));
  1285. packet1.time_boot_ms = packet_in.time_boot_ms;
  1286. packet1.chan1_scaled = packet_in.chan1_scaled;
  1287. packet1.chan2_scaled = packet_in.chan2_scaled;
  1288. packet1.chan3_scaled = packet_in.chan3_scaled;
  1289. packet1.chan4_scaled = packet_in.chan4_scaled;
  1290. packet1.chan5_scaled = packet_in.chan5_scaled;
  1291. packet1.chan6_scaled = packet_in.chan6_scaled;
  1292. packet1.chan7_scaled = packet_in.chan7_scaled;
  1293. packet1.chan8_scaled = packet_in.chan8_scaled;
  1294. packet1.port = packet_in.port;
  1295. packet1.rssi = packet_in.rssi;
  1296. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1297. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1298. // cope with extensions
  1299. memset(MAVLINK_MSG_ID_RC_CHANNELS_SCALED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RC_CHANNELS_SCALED_MIN_LEN);
  1300. }
  1301. #endif
  1302. memset(&packet2, 0, sizeof(packet2));
  1303. mavlink_msg_rc_channels_scaled_encode(system_id, component_id, &msg, &packet1);
  1304. mavlink_msg_rc_channels_scaled_decode(&msg, &packet2);
  1305. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1306. memset(&packet2, 0, sizeof(packet2));
  1307. mavlink_msg_rc_channels_scaled_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.port , packet1.chan1_scaled , packet1.chan2_scaled , packet1.chan3_scaled , packet1.chan4_scaled , packet1.chan5_scaled , packet1.chan6_scaled , packet1.chan7_scaled , packet1.chan8_scaled , packet1.rssi );
  1308. mavlink_msg_rc_channels_scaled_decode(&msg, &packet2);
  1309. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1310. memset(&packet2, 0, sizeof(packet2));
  1311. mavlink_msg_rc_channels_scaled_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.port , packet1.chan1_scaled , packet1.chan2_scaled , packet1.chan3_scaled , packet1.chan4_scaled , packet1.chan5_scaled , packet1.chan6_scaled , packet1.chan7_scaled , packet1.chan8_scaled , packet1.rssi );
  1312. mavlink_msg_rc_channels_scaled_decode(&msg, &packet2);
  1313. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1314. memset(&packet2, 0, sizeof(packet2));
  1315. mavlink_msg_to_send_buffer(buffer, &msg);
  1316. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1317. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1318. }
  1319. mavlink_msg_rc_channels_scaled_decode(last_msg, &packet2);
  1320. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1321. memset(&packet2, 0, sizeof(packet2));
  1322. mavlink_msg_rc_channels_scaled_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.port , packet1.chan1_scaled , packet1.chan2_scaled , packet1.chan3_scaled , packet1.chan4_scaled , packet1.chan5_scaled , packet1.chan6_scaled , packet1.chan7_scaled , packet1.chan8_scaled , packet1.rssi );
  1323. mavlink_msg_rc_channels_scaled_decode(last_msg, &packet2);
  1324. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1325. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1326. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RC_CHANNELS_SCALED") != NULL);
  1327. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RC_CHANNELS_SCALED) != NULL);
  1328. #endif
  1329. }
  1330. static void mavlink_test_rc_channels_raw(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1331. {
  1332. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1333. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1334. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RC_CHANNELS_RAW >= 256) {
  1335. return;
  1336. }
  1337. #endif
  1338. mavlink_message_t msg;
  1339. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1340. uint16_t i;
  1341. mavlink_rc_channels_raw_t packet_in = {
  1342. 963497464,17443,17547,17651,17755,17859,17963,18067,18171,65,132
  1343. };
  1344. mavlink_rc_channels_raw_t packet1, packet2;
  1345. memset(&packet1, 0, sizeof(packet1));
  1346. packet1.time_boot_ms = packet_in.time_boot_ms;
  1347. packet1.chan1_raw = packet_in.chan1_raw;
  1348. packet1.chan2_raw = packet_in.chan2_raw;
  1349. packet1.chan3_raw = packet_in.chan3_raw;
  1350. packet1.chan4_raw = packet_in.chan4_raw;
  1351. packet1.chan5_raw = packet_in.chan5_raw;
  1352. packet1.chan6_raw = packet_in.chan6_raw;
  1353. packet1.chan7_raw = packet_in.chan7_raw;
  1354. packet1.chan8_raw = packet_in.chan8_raw;
  1355. packet1.port = packet_in.port;
  1356. packet1.rssi = packet_in.rssi;
  1357. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1358. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1359. // cope with extensions
  1360. memset(MAVLINK_MSG_ID_RC_CHANNELS_RAW_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RC_CHANNELS_RAW_MIN_LEN);
  1361. }
  1362. #endif
  1363. memset(&packet2, 0, sizeof(packet2));
  1364. mavlink_msg_rc_channels_raw_encode(system_id, component_id, &msg, &packet1);
  1365. mavlink_msg_rc_channels_raw_decode(&msg, &packet2);
  1366. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1367. memset(&packet2, 0, sizeof(packet2));
  1368. mavlink_msg_rc_channels_raw_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.port , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.rssi );
  1369. mavlink_msg_rc_channels_raw_decode(&msg, &packet2);
  1370. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1371. memset(&packet2, 0, sizeof(packet2));
  1372. mavlink_msg_rc_channels_raw_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.port , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.rssi );
  1373. mavlink_msg_rc_channels_raw_decode(&msg, &packet2);
  1374. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1375. memset(&packet2, 0, sizeof(packet2));
  1376. mavlink_msg_to_send_buffer(buffer, &msg);
  1377. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1378. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1379. }
  1380. mavlink_msg_rc_channels_raw_decode(last_msg, &packet2);
  1381. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1382. memset(&packet2, 0, sizeof(packet2));
  1383. mavlink_msg_rc_channels_raw_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.port , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.rssi );
  1384. mavlink_msg_rc_channels_raw_decode(last_msg, &packet2);
  1385. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1386. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1387. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RC_CHANNELS_RAW") != NULL);
  1388. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RC_CHANNELS_RAW) != NULL);
  1389. #endif
  1390. }
  1391. static void mavlink_test_servo_output_raw(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1392. {
  1393. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1394. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1395. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SERVO_OUTPUT_RAW >= 256) {
  1396. return;
  1397. }
  1398. #endif
  1399. mavlink_message_t msg;
  1400. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1401. uint16_t i;
  1402. mavlink_servo_output_raw_t packet_in = {
  1403. 963497464,17443,17547,17651,17755,17859,17963,18067,18171,65,18327,18431,18535,18639,18743,18847,18951,19055
  1404. };
  1405. mavlink_servo_output_raw_t packet1, packet2;
  1406. memset(&packet1, 0, sizeof(packet1));
  1407. packet1.time_usec = packet_in.time_usec;
  1408. packet1.servo1_raw = packet_in.servo1_raw;
  1409. packet1.servo2_raw = packet_in.servo2_raw;
  1410. packet1.servo3_raw = packet_in.servo3_raw;
  1411. packet1.servo4_raw = packet_in.servo4_raw;
  1412. packet1.servo5_raw = packet_in.servo5_raw;
  1413. packet1.servo6_raw = packet_in.servo6_raw;
  1414. packet1.servo7_raw = packet_in.servo7_raw;
  1415. packet1.servo8_raw = packet_in.servo8_raw;
  1416. packet1.port = packet_in.port;
  1417. packet1.servo9_raw = packet_in.servo9_raw;
  1418. packet1.servo10_raw = packet_in.servo10_raw;
  1419. packet1.servo11_raw = packet_in.servo11_raw;
  1420. packet1.servo12_raw = packet_in.servo12_raw;
  1421. packet1.servo13_raw = packet_in.servo13_raw;
  1422. packet1.servo14_raw = packet_in.servo14_raw;
  1423. packet1.servo15_raw = packet_in.servo15_raw;
  1424. packet1.servo16_raw = packet_in.servo16_raw;
  1425. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1426. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1427. // cope with extensions
  1428. memset(MAVLINK_MSG_ID_SERVO_OUTPUT_RAW_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SERVO_OUTPUT_RAW_MIN_LEN);
  1429. }
  1430. #endif
  1431. memset(&packet2, 0, sizeof(packet2));
  1432. mavlink_msg_servo_output_raw_encode(system_id, component_id, &msg, &packet1);
  1433. mavlink_msg_servo_output_raw_decode(&msg, &packet2);
  1434. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1435. memset(&packet2, 0, sizeof(packet2));
  1436. mavlink_msg_servo_output_raw_pack(system_id, component_id, &msg , packet1.time_usec , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw , packet1.servo9_raw , packet1.servo10_raw , packet1.servo11_raw , packet1.servo12_raw , packet1.servo13_raw , packet1.servo14_raw , packet1.servo15_raw , packet1.servo16_raw );
  1437. mavlink_msg_servo_output_raw_decode(&msg, &packet2);
  1438. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1439. memset(&packet2, 0, sizeof(packet2));
  1440. mavlink_msg_servo_output_raw_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw , packet1.servo9_raw , packet1.servo10_raw , packet1.servo11_raw , packet1.servo12_raw , packet1.servo13_raw , packet1.servo14_raw , packet1.servo15_raw , packet1.servo16_raw );
  1441. mavlink_msg_servo_output_raw_decode(&msg, &packet2);
  1442. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1443. memset(&packet2, 0, sizeof(packet2));
  1444. mavlink_msg_to_send_buffer(buffer, &msg);
  1445. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1446. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1447. }
  1448. mavlink_msg_servo_output_raw_decode(last_msg, &packet2);
  1449. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1450. memset(&packet2, 0, sizeof(packet2));
  1451. mavlink_msg_servo_output_raw_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.port , packet1.servo1_raw , packet1.servo2_raw , packet1.servo3_raw , packet1.servo4_raw , packet1.servo5_raw , packet1.servo6_raw , packet1.servo7_raw , packet1.servo8_raw , packet1.servo9_raw , packet1.servo10_raw , packet1.servo11_raw , packet1.servo12_raw , packet1.servo13_raw , packet1.servo14_raw , packet1.servo15_raw , packet1.servo16_raw );
  1452. mavlink_msg_servo_output_raw_decode(last_msg, &packet2);
  1453. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1454. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1455. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SERVO_OUTPUT_RAW") != NULL);
  1456. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SERVO_OUTPUT_RAW) != NULL);
  1457. #endif
  1458. }
  1459. static void mavlink_test_mission_request_partial_list(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1460. {
  1461. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1462. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1463. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST >= 256) {
  1464. return;
  1465. }
  1466. #endif
  1467. mavlink_message_t msg;
  1468. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1469. uint16_t i;
  1470. mavlink_mission_request_partial_list_t packet_in = {
  1471. 17235,17339,17,84,151
  1472. };
  1473. mavlink_mission_request_partial_list_t packet1, packet2;
  1474. memset(&packet1, 0, sizeof(packet1));
  1475. packet1.start_index = packet_in.start_index;
  1476. packet1.end_index = packet_in.end_index;
  1477. packet1.target_system = packet_in.target_system;
  1478. packet1.target_component = packet_in.target_component;
  1479. packet1.mission_type = packet_in.mission_type;
  1480. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1481. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1482. // cope with extensions
  1483. memset(MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST_MIN_LEN);
  1484. }
  1485. #endif
  1486. memset(&packet2, 0, sizeof(packet2));
  1487. mavlink_msg_mission_request_partial_list_encode(system_id, component_id, &msg, &packet1);
  1488. mavlink_msg_mission_request_partial_list_decode(&msg, &packet2);
  1489. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1490. memset(&packet2, 0, sizeof(packet2));
  1491. mavlink_msg_mission_request_partial_list_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.start_index , packet1.end_index , packet1.mission_type );
  1492. mavlink_msg_mission_request_partial_list_decode(&msg, &packet2);
  1493. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1494. memset(&packet2, 0, sizeof(packet2));
  1495. mavlink_msg_mission_request_partial_list_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.start_index , packet1.end_index , packet1.mission_type );
  1496. mavlink_msg_mission_request_partial_list_decode(&msg, &packet2);
  1497. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1498. memset(&packet2, 0, sizeof(packet2));
  1499. mavlink_msg_to_send_buffer(buffer, &msg);
  1500. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1501. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1502. }
  1503. mavlink_msg_mission_request_partial_list_decode(last_msg, &packet2);
  1504. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1505. memset(&packet2, 0, sizeof(packet2));
  1506. mavlink_msg_mission_request_partial_list_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.start_index , packet1.end_index , packet1.mission_type );
  1507. mavlink_msg_mission_request_partial_list_decode(last_msg, &packet2);
  1508. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1509. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1510. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_REQUEST_PARTIAL_LIST") != NULL);
  1511. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST) != NULL);
  1512. #endif
  1513. }
  1514. static void mavlink_test_mission_write_partial_list(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1515. {
  1516. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1517. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1518. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST >= 256) {
  1519. return;
  1520. }
  1521. #endif
  1522. mavlink_message_t msg;
  1523. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1524. uint16_t i;
  1525. mavlink_mission_write_partial_list_t packet_in = {
  1526. 17235,17339,17,84,151
  1527. };
  1528. mavlink_mission_write_partial_list_t packet1, packet2;
  1529. memset(&packet1, 0, sizeof(packet1));
  1530. packet1.start_index = packet_in.start_index;
  1531. packet1.end_index = packet_in.end_index;
  1532. packet1.target_system = packet_in.target_system;
  1533. packet1.target_component = packet_in.target_component;
  1534. packet1.mission_type = packet_in.mission_type;
  1535. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1536. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1537. // cope with extensions
  1538. memset(MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST_MIN_LEN);
  1539. }
  1540. #endif
  1541. memset(&packet2, 0, sizeof(packet2));
  1542. mavlink_msg_mission_write_partial_list_encode(system_id, component_id, &msg, &packet1);
  1543. mavlink_msg_mission_write_partial_list_decode(&msg, &packet2);
  1544. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1545. memset(&packet2, 0, sizeof(packet2));
  1546. mavlink_msg_mission_write_partial_list_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.start_index , packet1.end_index , packet1.mission_type );
  1547. mavlink_msg_mission_write_partial_list_decode(&msg, &packet2);
  1548. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1549. memset(&packet2, 0, sizeof(packet2));
  1550. mavlink_msg_mission_write_partial_list_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.start_index , packet1.end_index , packet1.mission_type );
  1551. mavlink_msg_mission_write_partial_list_decode(&msg, &packet2);
  1552. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1553. memset(&packet2, 0, sizeof(packet2));
  1554. mavlink_msg_to_send_buffer(buffer, &msg);
  1555. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1556. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1557. }
  1558. mavlink_msg_mission_write_partial_list_decode(last_msg, &packet2);
  1559. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1560. memset(&packet2, 0, sizeof(packet2));
  1561. mavlink_msg_mission_write_partial_list_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.start_index , packet1.end_index , packet1.mission_type );
  1562. mavlink_msg_mission_write_partial_list_decode(last_msg, &packet2);
  1563. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1564. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1565. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_WRITE_PARTIAL_LIST") != NULL);
  1566. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST) != NULL);
  1567. #endif
  1568. }
  1569. static void mavlink_test_mission_item(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1570. {
  1571. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1572. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1573. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_ITEM >= 256) {
  1574. return;
  1575. }
  1576. #endif
  1577. mavlink_message_t msg;
  1578. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1579. uint16_t i;
  1580. mavlink_mission_item_t packet_in = {
  1581. 17.0,45.0,73.0,101.0,129.0,157.0,185.0,18691,18795,101,168,235,46,113,180
  1582. };
  1583. mavlink_mission_item_t packet1, packet2;
  1584. memset(&packet1, 0, sizeof(packet1));
  1585. packet1.param1 = packet_in.param1;
  1586. packet1.param2 = packet_in.param2;
  1587. packet1.param3 = packet_in.param3;
  1588. packet1.param4 = packet_in.param4;
  1589. packet1.x = packet_in.x;
  1590. packet1.y = packet_in.y;
  1591. packet1.z = packet_in.z;
  1592. packet1.seq = packet_in.seq;
  1593. packet1.command = packet_in.command;
  1594. packet1.target_system = packet_in.target_system;
  1595. packet1.target_component = packet_in.target_component;
  1596. packet1.frame = packet_in.frame;
  1597. packet1.current = packet_in.current;
  1598. packet1.autocontinue = packet_in.autocontinue;
  1599. packet1.mission_type = packet_in.mission_type;
  1600. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1601. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1602. // cope with extensions
  1603. memset(MAVLINK_MSG_ID_MISSION_ITEM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_ITEM_MIN_LEN);
  1604. }
  1605. #endif
  1606. memset(&packet2, 0, sizeof(packet2));
  1607. mavlink_msg_mission_item_encode(system_id, component_id, &msg, &packet1);
  1608. mavlink_msg_mission_item_decode(&msg, &packet2);
  1609. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1610. memset(&packet2, 0, sizeof(packet2));
  1611. mavlink_msg_mission_item_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z , packet1.mission_type );
  1612. mavlink_msg_mission_item_decode(&msg, &packet2);
  1613. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1614. memset(&packet2, 0, sizeof(packet2));
  1615. mavlink_msg_mission_item_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z , packet1.mission_type );
  1616. mavlink_msg_mission_item_decode(&msg, &packet2);
  1617. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1618. memset(&packet2, 0, sizeof(packet2));
  1619. mavlink_msg_to_send_buffer(buffer, &msg);
  1620. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1621. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1622. }
  1623. mavlink_msg_mission_item_decode(last_msg, &packet2);
  1624. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1625. memset(&packet2, 0, sizeof(packet2));
  1626. mavlink_msg_mission_item_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.seq , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z , packet1.mission_type );
  1627. mavlink_msg_mission_item_decode(last_msg, &packet2);
  1628. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1629. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1630. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_ITEM") != NULL);
  1631. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_ITEM) != NULL);
  1632. #endif
  1633. }
  1634. static void mavlink_test_mission_request(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1635. {
  1636. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1637. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1638. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_REQUEST >= 256) {
  1639. return;
  1640. }
  1641. #endif
  1642. mavlink_message_t msg;
  1643. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1644. uint16_t i;
  1645. mavlink_mission_request_t packet_in = {
  1646. 17235,139,206,17
  1647. };
  1648. mavlink_mission_request_t packet1, packet2;
  1649. memset(&packet1, 0, sizeof(packet1));
  1650. packet1.seq = packet_in.seq;
  1651. packet1.target_system = packet_in.target_system;
  1652. packet1.target_component = packet_in.target_component;
  1653. packet1.mission_type = packet_in.mission_type;
  1654. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1655. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1656. // cope with extensions
  1657. memset(MAVLINK_MSG_ID_MISSION_REQUEST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_REQUEST_MIN_LEN);
  1658. }
  1659. #endif
  1660. memset(&packet2, 0, sizeof(packet2));
  1661. mavlink_msg_mission_request_encode(system_id, component_id, &msg, &packet1);
  1662. mavlink_msg_mission_request_decode(&msg, &packet2);
  1663. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1664. memset(&packet2, 0, sizeof(packet2));
  1665. mavlink_msg_mission_request_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.mission_type );
  1666. mavlink_msg_mission_request_decode(&msg, &packet2);
  1667. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1668. memset(&packet2, 0, sizeof(packet2));
  1669. mavlink_msg_mission_request_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.mission_type );
  1670. mavlink_msg_mission_request_decode(&msg, &packet2);
  1671. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1672. memset(&packet2, 0, sizeof(packet2));
  1673. mavlink_msg_to_send_buffer(buffer, &msg);
  1674. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1675. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1676. }
  1677. mavlink_msg_mission_request_decode(last_msg, &packet2);
  1678. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1679. memset(&packet2, 0, sizeof(packet2));
  1680. mavlink_msg_mission_request_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.seq , packet1.mission_type );
  1681. mavlink_msg_mission_request_decode(last_msg, &packet2);
  1682. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1683. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1684. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_REQUEST") != NULL);
  1685. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_REQUEST) != NULL);
  1686. #endif
  1687. }
  1688. static void mavlink_test_mission_set_current(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1689. {
  1690. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1691. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1692. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_SET_CURRENT >= 256) {
  1693. return;
  1694. }
  1695. #endif
  1696. mavlink_message_t msg;
  1697. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1698. uint16_t i;
  1699. mavlink_mission_set_current_t packet_in = {
  1700. 17235,139,206
  1701. };
  1702. mavlink_mission_set_current_t packet1, packet2;
  1703. memset(&packet1, 0, sizeof(packet1));
  1704. packet1.seq = packet_in.seq;
  1705. packet1.target_system = packet_in.target_system;
  1706. packet1.target_component = packet_in.target_component;
  1707. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1708. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1709. // cope with extensions
  1710. memset(MAVLINK_MSG_ID_MISSION_SET_CURRENT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_SET_CURRENT_MIN_LEN);
  1711. }
  1712. #endif
  1713. memset(&packet2, 0, sizeof(packet2));
  1714. mavlink_msg_mission_set_current_encode(system_id, component_id, &msg, &packet1);
  1715. mavlink_msg_mission_set_current_decode(&msg, &packet2);
  1716. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1717. memset(&packet2, 0, sizeof(packet2));
  1718. mavlink_msg_mission_set_current_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.seq );
  1719. mavlink_msg_mission_set_current_decode(&msg, &packet2);
  1720. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1721. memset(&packet2, 0, sizeof(packet2));
  1722. mavlink_msg_mission_set_current_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.seq );
  1723. mavlink_msg_mission_set_current_decode(&msg, &packet2);
  1724. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1725. memset(&packet2, 0, sizeof(packet2));
  1726. mavlink_msg_to_send_buffer(buffer, &msg);
  1727. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1728. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1729. }
  1730. mavlink_msg_mission_set_current_decode(last_msg, &packet2);
  1731. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1732. memset(&packet2, 0, sizeof(packet2));
  1733. mavlink_msg_mission_set_current_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.seq );
  1734. mavlink_msg_mission_set_current_decode(last_msg, &packet2);
  1735. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1736. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1737. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_SET_CURRENT") != NULL);
  1738. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_SET_CURRENT) != NULL);
  1739. #endif
  1740. }
  1741. static void mavlink_test_mission_current(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1742. {
  1743. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1744. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1745. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_CURRENT >= 256) {
  1746. return;
  1747. }
  1748. #endif
  1749. mavlink_message_t msg;
  1750. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1751. uint16_t i;
  1752. mavlink_mission_current_t packet_in = {
  1753. 17235,17339,17,84,963497776,963497984,963498192
  1754. };
  1755. mavlink_mission_current_t packet1, packet2;
  1756. memset(&packet1, 0, sizeof(packet1));
  1757. packet1.seq = packet_in.seq;
  1758. packet1.total = packet_in.total;
  1759. packet1.mission_state = packet_in.mission_state;
  1760. packet1.mission_mode = packet_in.mission_mode;
  1761. packet1.mission_id = packet_in.mission_id;
  1762. packet1.fence_id = packet_in.fence_id;
  1763. packet1.rally_points_id = packet_in.rally_points_id;
  1764. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1765. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1766. // cope with extensions
  1767. memset(MAVLINK_MSG_ID_MISSION_CURRENT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_CURRENT_MIN_LEN);
  1768. }
  1769. #endif
  1770. memset(&packet2, 0, sizeof(packet2));
  1771. mavlink_msg_mission_current_encode(system_id, component_id, &msg, &packet1);
  1772. mavlink_msg_mission_current_decode(&msg, &packet2);
  1773. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1774. memset(&packet2, 0, sizeof(packet2));
  1775. mavlink_msg_mission_current_pack(system_id, component_id, &msg , packet1.seq , packet1.total , packet1.mission_state , packet1.mission_mode , packet1.mission_id , packet1.fence_id , packet1.rally_points_id );
  1776. mavlink_msg_mission_current_decode(&msg, &packet2);
  1777. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1778. memset(&packet2, 0, sizeof(packet2));
  1779. mavlink_msg_mission_current_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.seq , packet1.total , packet1.mission_state , packet1.mission_mode , packet1.mission_id , packet1.fence_id , packet1.rally_points_id );
  1780. mavlink_msg_mission_current_decode(&msg, &packet2);
  1781. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1782. memset(&packet2, 0, sizeof(packet2));
  1783. mavlink_msg_to_send_buffer(buffer, &msg);
  1784. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1785. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1786. }
  1787. mavlink_msg_mission_current_decode(last_msg, &packet2);
  1788. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1789. memset(&packet2, 0, sizeof(packet2));
  1790. mavlink_msg_mission_current_send(MAVLINK_COMM_1 , packet1.seq , packet1.total , packet1.mission_state , packet1.mission_mode , packet1.mission_id , packet1.fence_id , packet1.rally_points_id );
  1791. mavlink_msg_mission_current_decode(last_msg, &packet2);
  1792. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1793. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1794. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_CURRENT") != NULL);
  1795. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_CURRENT) != NULL);
  1796. #endif
  1797. }
  1798. static void mavlink_test_mission_request_list(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1799. {
  1800. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1801. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1802. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_REQUEST_LIST >= 256) {
  1803. return;
  1804. }
  1805. #endif
  1806. mavlink_message_t msg;
  1807. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1808. uint16_t i;
  1809. mavlink_mission_request_list_t packet_in = {
  1810. 5,72,139
  1811. };
  1812. mavlink_mission_request_list_t packet1, packet2;
  1813. memset(&packet1, 0, sizeof(packet1));
  1814. packet1.target_system = packet_in.target_system;
  1815. packet1.target_component = packet_in.target_component;
  1816. packet1.mission_type = packet_in.mission_type;
  1817. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1818. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1819. // cope with extensions
  1820. memset(MAVLINK_MSG_ID_MISSION_REQUEST_LIST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_REQUEST_LIST_MIN_LEN);
  1821. }
  1822. #endif
  1823. memset(&packet2, 0, sizeof(packet2));
  1824. mavlink_msg_mission_request_list_encode(system_id, component_id, &msg, &packet1);
  1825. mavlink_msg_mission_request_list_decode(&msg, &packet2);
  1826. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1827. memset(&packet2, 0, sizeof(packet2));
  1828. mavlink_msg_mission_request_list_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.mission_type );
  1829. mavlink_msg_mission_request_list_decode(&msg, &packet2);
  1830. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1831. memset(&packet2, 0, sizeof(packet2));
  1832. mavlink_msg_mission_request_list_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.mission_type );
  1833. mavlink_msg_mission_request_list_decode(&msg, &packet2);
  1834. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1835. memset(&packet2, 0, sizeof(packet2));
  1836. mavlink_msg_to_send_buffer(buffer, &msg);
  1837. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1838. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1839. }
  1840. mavlink_msg_mission_request_list_decode(last_msg, &packet2);
  1841. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1842. memset(&packet2, 0, sizeof(packet2));
  1843. mavlink_msg_mission_request_list_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.mission_type );
  1844. mavlink_msg_mission_request_list_decode(last_msg, &packet2);
  1845. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1846. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1847. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_REQUEST_LIST") != NULL);
  1848. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_REQUEST_LIST) != NULL);
  1849. #endif
  1850. }
  1851. static void mavlink_test_mission_count(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1852. {
  1853. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1854. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1855. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_COUNT >= 256) {
  1856. return;
  1857. }
  1858. #endif
  1859. mavlink_message_t msg;
  1860. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1861. uint16_t i;
  1862. mavlink_mission_count_t packet_in = {
  1863. 17235,139,206,17,963497724
  1864. };
  1865. mavlink_mission_count_t packet1, packet2;
  1866. memset(&packet1, 0, sizeof(packet1));
  1867. packet1.count = packet_in.count;
  1868. packet1.target_system = packet_in.target_system;
  1869. packet1.target_component = packet_in.target_component;
  1870. packet1.mission_type = packet_in.mission_type;
  1871. packet1.opaque_id = packet_in.opaque_id;
  1872. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1873. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1874. // cope with extensions
  1875. memset(MAVLINK_MSG_ID_MISSION_COUNT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_COUNT_MIN_LEN);
  1876. }
  1877. #endif
  1878. memset(&packet2, 0, sizeof(packet2));
  1879. mavlink_msg_mission_count_encode(system_id, component_id, &msg, &packet1);
  1880. mavlink_msg_mission_count_decode(&msg, &packet2);
  1881. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1882. memset(&packet2, 0, sizeof(packet2));
  1883. mavlink_msg_mission_count_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.count , packet1.mission_type , packet1.opaque_id );
  1884. mavlink_msg_mission_count_decode(&msg, &packet2);
  1885. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1886. memset(&packet2, 0, sizeof(packet2));
  1887. mavlink_msg_mission_count_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.count , packet1.mission_type , packet1.opaque_id );
  1888. mavlink_msg_mission_count_decode(&msg, &packet2);
  1889. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1890. memset(&packet2, 0, sizeof(packet2));
  1891. mavlink_msg_to_send_buffer(buffer, &msg);
  1892. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1893. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1894. }
  1895. mavlink_msg_mission_count_decode(last_msg, &packet2);
  1896. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1897. memset(&packet2, 0, sizeof(packet2));
  1898. mavlink_msg_mission_count_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.count , packet1.mission_type , packet1.opaque_id );
  1899. mavlink_msg_mission_count_decode(last_msg, &packet2);
  1900. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1901. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1902. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_COUNT") != NULL);
  1903. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_COUNT) != NULL);
  1904. #endif
  1905. }
  1906. static void mavlink_test_mission_clear_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1907. {
  1908. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1909. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1910. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_CLEAR_ALL >= 256) {
  1911. return;
  1912. }
  1913. #endif
  1914. mavlink_message_t msg;
  1915. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1916. uint16_t i;
  1917. mavlink_mission_clear_all_t packet_in = {
  1918. 5,72,139
  1919. };
  1920. mavlink_mission_clear_all_t packet1, packet2;
  1921. memset(&packet1, 0, sizeof(packet1));
  1922. packet1.target_system = packet_in.target_system;
  1923. packet1.target_component = packet_in.target_component;
  1924. packet1.mission_type = packet_in.mission_type;
  1925. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1926. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1927. // cope with extensions
  1928. memset(MAVLINK_MSG_ID_MISSION_CLEAR_ALL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_CLEAR_ALL_MIN_LEN);
  1929. }
  1930. #endif
  1931. memset(&packet2, 0, sizeof(packet2));
  1932. mavlink_msg_mission_clear_all_encode(system_id, component_id, &msg, &packet1);
  1933. mavlink_msg_mission_clear_all_decode(&msg, &packet2);
  1934. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1935. memset(&packet2, 0, sizeof(packet2));
  1936. mavlink_msg_mission_clear_all_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.mission_type );
  1937. mavlink_msg_mission_clear_all_decode(&msg, &packet2);
  1938. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1939. memset(&packet2, 0, sizeof(packet2));
  1940. mavlink_msg_mission_clear_all_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.mission_type );
  1941. mavlink_msg_mission_clear_all_decode(&msg, &packet2);
  1942. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1943. memset(&packet2, 0, sizeof(packet2));
  1944. mavlink_msg_to_send_buffer(buffer, &msg);
  1945. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1946. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1947. }
  1948. mavlink_msg_mission_clear_all_decode(last_msg, &packet2);
  1949. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1950. memset(&packet2, 0, sizeof(packet2));
  1951. mavlink_msg_mission_clear_all_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.mission_type );
  1952. mavlink_msg_mission_clear_all_decode(last_msg, &packet2);
  1953. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1954. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  1955. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_CLEAR_ALL") != NULL);
  1956. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_CLEAR_ALL) != NULL);
  1957. #endif
  1958. }
  1959. static void mavlink_test_mission_item_reached(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  1960. {
  1961. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1962. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  1963. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_ITEM_REACHED >= 256) {
  1964. return;
  1965. }
  1966. #endif
  1967. mavlink_message_t msg;
  1968. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  1969. uint16_t i;
  1970. mavlink_mission_item_reached_t packet_in = {
  1971. 17235
  1972. };
  1973. mavlink_mission_item_reached_t packet1, packet2;
  1974. memset(&packet1, 0, sizeof(packet1));
  1975. packet1.seq = packet_in.seq;
  1976. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  1977. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  1978. // cope with extensions
  1979. memset(MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN);
  1980. }
  1981. #endif
  1982. memset(&packet2, 0, sizeof(packet2));
  1983. mavlink_msg_mission_item_reached_encode(system_id, component_id, &msg, &packet1);
  1984. mavlink_msg_mission_item_reached_decode(&msg, &packet2);
  1985. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1986. memset(&packet2, 0, sizeof(packet2));
  1987. mavlink_msg_mission_item_reached_pack(system_id, component_id, &msg , packet1.seq );
  1988. mavlink_msg_mission_item_reached_decode(&msg, &packet2);
  1989. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1990. memset(&packet2, 0, sizeof(packet2));
  1991. mavlink_msg_mission_item_reached_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.seq );
  1992. mavlink_msg_mission_item_reached_decode(&msg, &packet2);
  1993. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  1994. memset(&packet2, 0, sizeof(packet2));
  1995. mavlink_msg_to_send_buffer(buffer, &msg);
  1996. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  1997. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  1998. }
  1999. mavlink_msg_mission_item_reached_decode(last_msg, &packet2);
  2000. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2001. memset(&packet2, 0, sizeof(packet2));
  2002. mavlink_msg_mission_item_reached_send(MAVLINK_COMM_1 , packet1.seq );
  2003. mavlink_msg_mission_item_reached_decode(last_msg, &packet2);
  2004. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2005. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2006. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_ITEM_REACHED") != NULL);
  2007. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_ITEM_REACHED) != NULL);
  2008. #endif
  2009. }
  2010. static void mavlink_test_mission_ack(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2011. {
  2012. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2013. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2014. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_ACK >= 256) {
  2015. return;
  2016. }
  2017. #endif
  2018. mavlink_message_t msg;
  2019. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2020. uint16_t i;
  2021. mavlink_mission_ack_t packet_in = {
  2022. 5,72,139,206,963497672
  2023. };
  2024. mavlink_mission_ack_t packet1, packet2;
  2025. memset(&packet1, 0, sizeof(packet1));
  2026. packet1.target_system = packet_in.target_system;
  2027. packet1.target_component = packet_in.target_component;
  2028. packet1.type = packet_in.type;
  2029. packet1.mission_type = packet_in.mission_type;
  2030. packet1.opaque_id = packet_in.opaque_id;
  2031. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2032. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2033. // cope with extensions
  2034. memset(MAVLINK_MSG_ID_MISSION_ACK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_ACK_MIN_LEN);
  2035. }
  2036. #endif
  2037. memset(&packet2, 0, sizeof(packet2));
  2038. mavlink_msg_mission_ack_encode(system_id, component_id, &msg, &packet1);
  2039. mavlink_msg_mission_ack_decode(&msg, &packet2);
  2040. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2041. memset(&packet2, 0, sizeof(packet2));
  2042. mavlink_msg_mission_ack_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.type , packet1.mission_type , packet1.opaque_id );
  2043. mavlink_msg_mission_ack_decode(&msg, &packet2);
  2044. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2045. memset(&packet2, 0, sizeof(packet2));
  2046. mavlink_msg_mission_ack_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.type , packet1.mission_type , packet1.opaque_id );
  2047. mavlink_msg_mission_ack_decode(&msg, &packet2);
  2048. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2049. memset(&packet2, 0, sizeof(packet2));
  2050. mavlink_msg_to_send_buffer(buffer, &msg);
  2051. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2052. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2053. }
  2054. mavlink_msg_mission_ack_decode(last_msg, &packet2);
  2055. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2056. memset(&packet2, 0, sizeof(packet2));
  2057. mavlink_msg_mission_ack_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.type , packet1.mission_type , packet1.opaque_id );
  2058. mavlink_msg_mission_ack_decode(last_msg, &packet2);
  2059. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2060. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2061. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_ACK") != NULL);
  2062. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_ACK) != NULL);
  2063. #endif
  2064. }
  2065. static void mavlink_test_set_gps_global_origin(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2066. {
  2067. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2068. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2069. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN >= 256) {
  2070. return;
  2071. }
  2072. #endif
  2073. mavlink_message_t msg;
  2074. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2075. uint16_t i;
  2076. mavlink_set_gps_global_origin_t packet_in = {
  2077. 963497464,963497672,963497880,41,93372036854776626ULL
  2078. };
  2079. mavlink_set_gps_global_origin_t packet1, packet2;
  2080. memset(&packet1, 0, sizeof(packet1));
  2081. packet1.latitude = packet_in.latitude;
  2082. packet1.longitude = packet_in.longitude;
  2083. packet1.altitude = packet_in.altitude;
  2084. packet1.target_system = packet_in.target_system;
  2085. packet1.time_usec = packet_in.time_usec;
  2086. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2087. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2088. // cope with extensions
  2089. memset(MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN_MIN_LEN);
  2090. }
  2091. #endif
  2092. memset(&packet2, 0, sizeof(packet2));
  2093. mavlink_msg_set_gps_global_origin_encode(system_id, component_id, &msg, &packet1);
  2094. mavlink_msg_set_gps_global_origin_decode(&msg, &packet2);
  2095. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2096. memset(&packet2, 0, sizeof(packet2));
  2097. mavlink_msg_set_gps_global_origin_pack(system_id, component_id, &msg , packet1.target_system , packet1.latitude , packet1.longitude , packet1.altitude , packet1.time_usec );
  2098. mavlink_msg_set_gps_global_origin_decode(&msg, &packet2);
  2099. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2100. memset(&packet2, 0, sizeof(packet2));
  2101. mavlink_msg_set_gps_global_origin_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.latitude , packet1.longitude , packet1.altitude , packet1.time_usec );
  2102. mavlink_msg_set_gps_global_origin_decode(&msg, &packet2);
  2103. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2104. memset(&packet2, 0, sizeof(packet2));
  2105. mavlink_msg_to_send_buffer(buffer, &msg);
  2106. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2107. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2108. }
  2109. mavlink_msg_set_gps_global_origin_decode(last_msg, &packet2);
  2110. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2111. memset(&packet2, 0, sizeof(packet2));
  2112. mavlink_msg_set_gps_global_origin_send(MAVLINK_COMM_1 , packet1.target_system , packet1.latitude , packet1.longitude , packet1.altitude , packet1.time_usec );
  2113. mavlink_msg_set_gps_global_origin_decode(last_msg, &packet2);
  2114. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2115. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2116. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_GPS_GLOBAL_ORIGIN") != NULL);
  2117. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN) != NULL);
  2118. #endif
  2119. }
  2120. static void mavlink_test_gps_global_origin(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2121. {
  2122. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2123. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2124. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN >= 256) {
  2125. return;
  2126. }
  2127. #endif
  2128. mavlink_message_t msg;
  2129. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2130. uint16_t i;
  2131. mavlink_gps_global_origin_t packet_in = {
  2132. 963497464,963497672,963497880,93372036854776563ULL
  2133. };
  2134. mavlink_gps_global_origin_t packet1, packet2;
  2135. memset(&packet1, 0, sizeof(packet1));
  2136. packet1.latitude = packet_in.latitude;
  2137. packet1.longitude = packet_in.longitude;
  2138. packet1.altitude = packet_in.altitude;
  2139. packet1.time_usec = packet_in.time_usec;
  2140. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2141. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2142. // cope with extensions
  2143. memset(MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_MIN_LEN);
  2144. }
  2145. #endif
  2146. memset(&packet2, 0, sizeof(packet2));
  2147. mavlink_msg_gps_global_origin_encode(system_id, component_id, &msg, &packet1);
  2148. mavlink_msg_gps_global_origin_decode(&msg, &packet2);
  2149. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2150. memset(&packet2, 0, sizeof(packet2));
  2151. mavlink_msg_gps_global_origin_pack(system_id, component_id, &msg , packet1.latitude , packet1.longitude , packet1.altitude , packet1.time_usec );
  2152. mavlink_msg_gps_global_origin_decode(&msg, &packet2);
  2153. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2154. memset(&packet2, 0, sizeof(packet2));
  2155. mavlink_msg_gps_global_origin_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.latitude , packet1.longitude , packet1.altitude , packet1.time_usec );
  2156. mavlink_msg_gps_global_origin_decode(&msg, &packet2);
  2157. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2158. memset(&packet2, 0, sizeof(packet2));
  2159. mavlink_msg_to_send_buffer(buffer, &msg);
  2160. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2161. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2162. }
  2163. mavlink_msg_gps_global_origin_decode(last_msg, &packet2);
  2164. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2165. memset(&packet2, 0, sizeof(packet2));
  2166. mavlink_msg_gps_global_origin_send(MAVLINK_COMM_1 , packet1.latitude , packet1.longitude , packet1.altitude , packet1.time_usec );
  2167. mavlink_msg_gps_global_origin_decode(last_msg, &packet2);
  2168. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2169. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2170. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_GLOBAL_ORIGIN") != NULL);
  2171. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN) != NULL);
  2172. #endif
  2173. }
  2174. static void mavlink_test_param_map_rc(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2175. {
  2176. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2177. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2178. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_MAP_RC >= 256) {
  2179. return;
  2180. }
  2181. #endif
  2182. mavlink_message_t msg;
  2183. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2184. uint16_t i;
  2185. mavlink_param_map_rc_t packet_in = {
  2186. 17.0,45.0,73.0,101.0,18067,187,254,"UVWXYZABCDEFGHI",113
  2187. };
  2188. mavlink_param_map_rc_t packet1, packet2;
  2189. memset(&packet1, 0, sizeof(packet1));
  2190. packet1.param_value0 = packet_in.param_value0;
  2191. packet1.scale = packet_in.scale;
  2192. packet1.param_value_min = packet_in.param_value_min;
  2193. packet1.param_value_max = packet_in.param_value_max;
  2194. packet1.param_index = packet_in.param_index;
  2195. packet1.target_system = packet_in.target_system;
  2196. packet1.target_component = packet_in.target_component;
  2197. packet1.parameter_rc_channel_index = packet_in.parameter_rc_channel_index;
  2198. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  2199. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2200. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2201. // cope with extensions
  2202. memset(MAVLINK_MSG_ID_PARAM_MAP_RC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_MAP_RC_MIN_LEN);
  2203. }
  2204. #endif
  2205. memset(&packet2, 0, sizeof(packet2));
  2206. mavlink_msg_param_map_rc_encode(system_id, component_id, &msg, &packet1);
  2207. mavlink_msg_param_map_rc_decode(&msg, &packet2);
  2208. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2209. memset(&packet2, 0, sizeof(packet2));
  2210. mavlink_msg_param_map_rc_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index , packet1.parameter_rc_channel_index , packet1.param_value0 , packet1.scale , packet1.param_value_min , packet1.param_value_max );
  2211. mavlink_msg_param_map_rc_decode(&msg, &packet2);
  2212. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2213. memset(&packet2, 0, sizeof(packet2));
  2214. mavlink_msg_param_map_rc_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index , packet1.parameter_rc_channel_index , packet1.param_value0 , packet1.scale , packet1.param_value_min , packet1.param_value_max );
  2215. mavlink_msg_param_map_rc_decode(&msg, &packet2);
  2216. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2217. memset(&packet2, 0, sizeof(packet2));
  2218. mavlink_msg_to_send_buffer(buffer, &msg);
  2219. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2220. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2221. }
  2222. mavlink_msg_param_map_rc_decode(last_msg, &packet2);
  2223. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2224. memset(&packet2, 0, sizeof(packet2));
  2225. mavlink_msg_param_map_rc_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index , packet1.parameter_rc_channel_index , packet1.param_value0 , packet1.scale , packet1.param_value_min , packet1.param_value_max );
  2226. mavlink_msg_param_map_rc_decode(last_msg, &packet2);
  2227. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2228. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2229. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_MAP_RC") != NULL);
  2230. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_MAP_RC) != NULL);
  2231. #endif
  2232. }
  2233. static void mavlink_test_mission_request_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2234. {
  2235. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2236. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2237. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_REQUEST_INT >= 256) {
  2238. return;
  2239. }
  2240. #endif
  2241. mavlink_message_t msg;
  2242. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2243. uint16_t i;
  2244. mavlink_mission_request_int_t packet_in = {
  2245. 17235,139,206,17
  2246. };
  2247. mavlink_mission_request_int_t packet1, packet2;
  2248. memset(&packet1, 0, sizeof(packet1));
  2249. packet1.seq = packet_in.seq;
  2250. packet1.target_system = packet_in.target_system;
  2251. packet1.target_component = packet_in.target_component;
  2252. packet1.mission_type = packet_in.mission_type;
  2253. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2254. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2255. // cope with extensions
  2256. memset(MAVLINK_MSG_ID_MISSION_REQUEST_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_REQUEST_INT_MIN_LEN);
  2257. }
  2258. #endif
  2259. memset(&packet2, 0, sizeof(packet2));
  2260. mavlink_msg_mission_request_int_encode(system_id, component_id, &msg, &packet1);
  2261. mavlink_msg_mission_request_int_decode(&msg, &packet2);
  2262. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2263. memset(&packet2, 0, sizeof(packet2));
  2264. mavlink_msg_mission_request_int_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.mission_type );
  2265. mavlink_msg_mission_request_int_decode(&msg, &packet2);
  2266. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2267. memset(&packet2, 0, sizeof(packet2));
  2268. mavlink_msg_mission_request_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.mission_type );
  2269. mavlink_msg_mission_request_int_decode(&msg, &packet2);
  2270. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2271. memset(&packet2, 0, sizeof(packet2));
  2272. mavlink_msg_to_send_buffer(buffer, &msg);
  2273. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2274. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2275. }
  2276. mavlink_msg_mission_request_int_decode(last_msg, &packet2);
  2277. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2278. memset(&packet2, 0, sizeof(packet2));
  2279. mavlink_msg_mission_request_int_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.seq , packet1.mission_type );
  2280. mavlink_msg_mission_request_int_decode(last_msg, &packet2);
  2281. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2282. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2283. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_REQUEST_INT") != NULL);
  2284. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_REQUEST_INT) != NULL);
  2285. #endif
  2286. }
  2287. static void mavlink_test_safety_set_allowed_area(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2288. {
  2289. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2290. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2291. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA >= 256) {
  2292. return;
  2293. }
  2294. #endif
  2295. mavlink_message_t msg;
  2296. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2297. uint16_t i;
  2298. mavlink_safety_set_allowed_area_t packet_in = {
  2299. 17.0,45.0,73.0,101.0,129.0,157.0,77,144,211
  2300. };
  2301. mavlink_safety_set_allowed_area_t packet1, packet2;
  2302. memset(&packet1, 0, sizeof(packet1));
  2303. packet1.p1x = packet_in.p1x;
  2304. packet1.p1y = packet_in.p1y;
  2305. packet1.p1z = packet_in.p1z;
  2306. packet1.p2x = packet_in.p2x;
  2307. packet1.p2y = packet_in.p2y;
  2308. packet1.p2z = packet_in.p2z;
  2309. packet1.target_system = packet_in.target_system;
  2310. packet1.target_component = packet_in.target_component;
  2311. packet1.frame = packet_in.frame;
  2312. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2313. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2314. // cope with extensions
  2315. memset(MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA_MIN_LEN);
  2316. }
  2317. #endif
  2318. memset(&packet2, 0, sizeof(packet2));
  2319. mavlink_msg_safety_set_allowed_area_encode(system_id, component_id, &msg, &packet1);
  2320. mavlink_msg_safety_set_allowed_area_decode(&msg, &packet2);
  2321. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2322. memset(&packet2, 0, sizeof(packet2));
  2323. mavlink_msg_safety_set_allowed_area_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.frame , packet1.p1x , packet1.p1y , packet1.p1z , packet1.p2x , packet1.p2y , packet1.p2z );
  2324. mavlink_msg_safety_set_allowed_area_decode(&msg, &packet2);
  2325. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2326. memset(&packet2, 0, sizeof(packet2));
  2327. mavlink_msg_safety_set_allowed_area_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.frame , packet1.p1x , packet1.p1y , packet1.p1z , packet1.p2x , packet1.p2y , packet1.p2z );
  2328. mavlink_msg_safety_set_allowed_area_decode(&msg, &packet2);
  2329. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2330. memset(&packet2, 0, sizeof(packet2));
  2331. mavlink_msg_to_send_buffer(buffer, &msg);
  2332. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2333. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2334. }
  2335. mavlink_msg_safety_set_allowed_area_decode(last_msg, &packet2);
  2336. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2337. memset(&packet2, 0, sizeof(packet2));
  2338. mavlink_msg_safety_set_allowed_area_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.frame , packet1.p1x , packet1.p1y , packet1.p1z , packet1.p2x , packet1.p2y , packet1.p2z );
  2339. mavlink_msg_safety_set_allowed_area_decode(last_msg, &packet2);
  2340. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2341. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2342. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SAFETY_SET_ALLOWED_AREA") != NULL);
  2343. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA) != NULL);
  2344. #endif
  2345. }
  2346. static void mavlink_test_safety_allowed_area(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2347. {
  2348. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2349. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2350. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA >= 256) {
  2351. return;
  2352. }
  2353. #endif
  2354. mavlink_message_t msg;
  2355. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2356. uint16_t i;
  2357. mavlink_safety_allowed_area_t packet_in = {
  2358. 17.0,45.0,73.0,101.0,129.0,157.0,77
  2359. };
  2360. mavlink_safety_allowed_area_t packet1, packet2;
  2361. memset(&packet1, 0, sizeof(packet1));
  2362. packet1.p1x = packet_in.p1x;
  2363. packet1.p1y = packet_in.p1y;
  2364. packet1.p1z = packet_in.p1z;
  2365. packet1.p2x = packet_in.p2x;
  2366. packet1.p2y = packet_in.p2y;
  2367. packet1.p2z = packet_in.p2z;
  2368. packet1.frame = packet_in.frame;
  2369. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2370. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2371. // cope with extensions
  2372. memset(MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA_MIN_LEN);
  2373. }
  2374. #endif
  2375. memset(&packet2, 0, sizeof(packet2));
  2376. mavlink_msg_safety_allowed_area_encode(system_id, component_id, &msg, &packet1);
  2377. mavlink_msg_safety_allowed_area_decode(&msg, &packet2);
  2378. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2379. memset(&packet2, 0, sizeof(packet2));
  2380. mavlink_msg_safety_allowed_area_pack(system_id, component_id, &msg , packet1.frame , packet1.p1x , packet1.p1y , packet1.p1z , packet1.p2x , packet1.p2y , packet1.p2z );
  2381. mavlink_msg_safety_allowed_area_decode(&msg, &packet2);
  2382. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2383. memset(&packet2, 0, sizeof(packet2));
  2384. mavlink_msg_safety_allowed_area_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.frame , packet1.p1x , packet1.p1y , packet1.p1z , packet1.p2x , packet1.p2y , packet1.p2z );
  2385. mavlink_msg_safety_allowed_area_decode(&msg, &packet2);
  2386. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2387. memset(&packet2, 0, sizeof(packet2));
  2388. mavlink_msg_to_send_buffer(buffer, &msg);
  2389. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2390. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2391. }
  2392. mavlink_msg_safety_allowed_area_decode(last_msg, &packet2);
  2393. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2394. memset(&packet2, 0, sizeof(packet2));
  2395. mavlink_msg_safety_allowed_area_send(MAVLINK_COMM_1 , packet1.frame , packet1.p1x , packet1.p1y , packet1.p1z , packet1.p2x , packet1.p2y , packet1.p2z );
  2396. mavlink_msg_safety_allowed_area_decode(last_msg, &packet2);
  2397. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2398. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2399. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SAFETY_ALLOWED_AREA") != NULL);
  2400. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA) != NULL);
  2401. #endif
  2402. }
  2403. static void mavlink_test_attitude_quaternion_cov(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2404. {
  2405. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2406. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2407. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ATTITUDE_QUATERNION_COV >= 256) {
  2408. return;
  2409. }
  2410. #endif
  2411. mavlink_message_t msg;
  2412. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2413. uint16_t i;
  2414. mavlink_attitude_quaternion_cov_t packet_in = {
  2415. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0 },185.0,213.0,241.0,{ 269.0, 270.0, 271.0, 272.0, 273.0, 274.0, 275.0, 276.0, 277.0 }
  2416. };
  2417. mavlink_attitude_quaternion_cov_t packet1, packet2;
  2418. memset(&packet1, 0, sizeof(packet1));
  2419. packet1.time_usec = packet_in.time_usec;
  2420. packet1.rollspeed = packet_in.rollspeed;
  2421. packet1.pitchspeed = packet_in.pitchspeed;
  2422. packet1.yawspeed = packet_in.yawspeed;
  2423. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  2424. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*9);
  2425. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2426. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2427. // cope with extensions
  2428. memset(MAVLINK_MSG_ID_ATTITUDE_QUATERNION_COV_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ATTITUDE_QUATERNION_COV_MIN_LEN);
  2429. }
  2430. #endif
  2431. memset(&packet2, 0, sizeof(packet2));
  2432. mavlink_msg_attitude_quaternion_cov_encode(system_id, component_id, &msg, &packet1);
  2433. mavlink_msg_attitude_quaternion_cov_decode(&msg, &packet2);
  2434. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2435. memset(&packet2, 0, sizeof(packet2));
  2436. mavlink_msg_attitude_quaternion_cov_pack(system_id, component_id, &msg , packet1.time_usec , packet1.q , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.covariance );
  2437. mavlink_msg_attitude_quaternion_cov_decode(&msg, &packet2);
  2438. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2439. memset(&packet2, 0, sizeof(packet2));
  2440. mavlink_msg_attitude_quaternion_cov_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.q , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.covariance );
  2441. mavlink_msg_attitude_quaternion_cov_decode(&msg, &packet2);
  2442. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2443. memset(&packet2, 0, sizeof(packet2));
  2444. mavlink_msg_to_send_buffer(buffer, &msg);
  2445. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2446. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2447. }
  2448. mavlink_msg_attitude_quaternion_cov_decode(last_msg, &packet2);
  2449. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2450. memset(&packet2, 0, sizeof(packet2));
  2451. mavlink_msg_attitude_quaternion_cov_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.q , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.covariance );
  2452. mavlink_msg_attitude_quaternion_cov_decode(last_msg, &packet2);
  2453. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2454. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2455. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ATTITUDE_QUATERNION_COV") != NULL);
  2456. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ATTITUDE_QUATERNION_COV) != NULL);
  2457. #endif
  2458. }
  2459. static void mavlink_test_nav_controller_output(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2460. {
  2461. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2462. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2463. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT >= 256) {
  2464. return;
  2465. }
  2466. #endif
  2467. mavlink_message_t msg;
  2468. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2469. uint16_t i;
  2470. mavlink_nav_controller_output_t packet_in = {
  2471. 17.0,45.0,73.0,101.0,129.0,18275,18379,18483
  2472. };
  2473. mavlink_nav_controller_output_t packet1, packet2;
  2474. memset(&packet1, 0, sizeof(packet1));
  2475. packet1.nav_roll = packet_in.nav_roll;
  2476. packet1.nav_pitch = packet_in.nav_pitch;
  2477. packet1.alt_error = packet_in.alt_error;
  2478. packet1.aspd_error = packet_in.aspd_error;
  2479. packet1.xtrack_error = packet_in.xtrack_error;
  2480. packet1.nav_bearing = packet_in.nav_bearing;
  2481. packet1.target_bearing = packet_in.target_bearing;
  2482. packet1.wp_dist = packet_in.wp_dist;
  2483. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2484. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2485. // cope with extensions
  2486. memset(MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT_MIN_LEN);
  2487. }
  2488. #endif
  2489. memset(&packet2, 0, sizeof(packet2));
  2490. mavlink_msg_nav_controller_output_encode(system_id, component_id, &msg, &packet1);
  2491. mavlink_msg_nav_controller_output_decode(&msg, &packet2);
  2492. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2493. memset(&packet2, 0, sizeof(packet2));
  2494. mavlink_msg_nav_controller_output_pack(system_id, component_id, &msg , packet1.nav_roll , packet1.nav_pitch , packet1.nav_bearing , packet1.target_bearing , packet1.wp_dist , packet1.alt_error , packet1.aspd_error , packet1.xtrack_error );
  2495. mavlink_msg_nav_controller_output_decode(&msg, &packet2);
  2496. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2497. memset(&packet2, 0, sizeof(packet2));
  2498. mavlink_msg_nav_controller_output_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.nav_roll , packet1.nav_pitch , packet1.nav_bearing , packet1.target_bearing , packet1.wp_dist , packet1.alt_error , packet1.aspd_error , packet1.xtrack_error );
  2499. mavlink_msg_nav_controller_output_decode(&msg, &packet2);
  2500. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2501. memset(&packet2, 0, sizeof(packet2));
  2502. mavlink_msg_to_send_buffer(buffer, &msg);
  2503. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2504. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2505. }
  2506. mavlink_msg_nav_controller_output_decode(last_msg, &packet2);
  2507. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2508. memset(&packet2, 0, sizeof(packet2));
  2509. mavlink_msg_nav_controller_output_send(MAVLINK_COMM_1 , packet1.nav_roll , packet1.nav_pitch , packet1.nav_bearing , packet1.target_bearing , packet1.wp_dist , packet1.alt_error , packet1.aspd_error , packet1.xtrack_error );
  2510. mavlink_msg_nav_controller_output_decode(last_msg, &packet2);
  2511. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2512. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2513. MAVLINK_ASSERT(mavlink_get_message_info_by_name("NAV_CONTROLLER_OUTPUT") != NULL);
  2514. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT) != NULL);
  2515. #endif
  2516. }
  2517. static void mavlink_test_global_position_int_cov(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2518. {
  2519. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2520. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2521. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GLOBAL_POSITION_INT_COV >= 256) {
  2522. return;
  2523. }
  2524. #endif
  2525. mavlink_message_t msg;
  2526. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2527. uint16_t i;
  2528. mavlink_global_position_int_cov_t packet_in = {
  2529. 93372036854775807ULL,963497880,963498088,963498296,963498504,185.0,213.0,241.0,{ 269.0, 270.0, 271.0, 272.0, 273.0, 274.0, 275.0, 276.0, 277.0, 278.0, 279.0, 280.0, 281.0, 282.0, 283.0, 284.0, 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, 294.0, 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, 304.0 },33
  2530. };
  2531. mavlink_global_position_int_cov_t packet1, packet2;
  2532. memset(&packet1, 0, sizeof(packet1));
  2533. packet1.time_usec = packet_in.time_usec;
  2534. packet1.lat = packet_in.lat;
  2535. packet1.lon = packet_in.lon;
  2536. packet1.alt = packet_in.alt;
  2537. packet1.relative_alt = packet_in.relative_alt;
  2538. packet1.vx = packet_in.vx;
  2539. packet1.vy = packet_in.vy;
  2540. packet1.vz = packet_in.vz;
  2541. packet1.estimator_type = packet_in.estimator_type;
  2542. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*36);
  2543. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2544. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2545. // cope with extensions
  2546. memset(MAVLINK_MSG_ID_GLOBAL_POSITION_INT_COV_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GLOBAL_POSITION_INT_COV_MIN_LEN);
  2547. }
  2548. #endif
  2549. memset(&packet2, 0, sizeof(packet2));
  2550. mavlink_msg_global_position_int_cov_encode(system_id, component_id, &msg, &packet1);
  2551. mavlink_msg_global_position_int_cov_decode(&msg, &packet2);
  2552. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2553. memset(&packet2, 0, sizeof(packet2));
  2554. mavlink_msg_global_position_int_cov_pack(system_id, component_id, &msg , packet1.time_usec , packet1.estimator_type , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.covariance );
  2555. mavlink_msg_global_position_int_cov_decode(&msg, &packet2);
  2556. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2557. memset(&packet2, 0, sizeof(packet2));
  2558. mavlink_msg_global_position_int_cov_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.estimator_type , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.covariance );
  2559. mavlink_msg_global_position_int_cov_decode(&msg, &packet2);
  2560. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2561. memset(&packet2, 0, sizeof(packet2));
  2562. mavlink_msg_to_send_buffer(buffer, &msg);
  2563. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2564. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2565. }
  2566. mavlink_msg_global_position_int_cov_decode(last_msg, &packet2);
  2567. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2568. memset(&packet2, 0, sizeof(packet2));
  2569. mavlink_msg_global_position_int_cov_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.estimator_type , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.covariance );
  2570. mavlink_msg_global_position_int_cov_decode(last_msg, &packet2);
  2571. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2572. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2573. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GLOBAL_POSITION_INT_COV") != NULL);
  2574. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GLOBAL_POSITION_INT_COV) != NULL);
  2575. #endif
  2576. }
  2577. static void mavlink_test_local_position_ned_cov(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2578. {
  2579. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2580. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2581. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOCAL_POSITION_NED_COV >= 256) {
  2582. return;
  2583. }
  2584. #endif
  2585. mavlink_message_t msg;
  2586. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2587. uint16_t i;
  2588. mavlink_local_position_ned_cov_t packet_in = {
  2589. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,{ 325.0, 326.0, 327.0, 328.0, 329.0, 330.0, 331.0, 332.0, 333.0, 334.0, 335.0, 336.0, 337.0, 338.0, 339.0, 340.0, 341.0, 342.0, 343.0, 344.0, 345.0, 346.0, 347.0, 348.0, 349.0, 350.0, 351.0, 352.0, 353.0, 354.0, 355.0, 356.0, 357.0, 358.0, 359.0, 360.0, 361.0, 362.0, 363.0, 364.0, 365.0, 366.0, 367.0, 368.0, 369.0 },165
  2590. };
  2591. mavlink_local_position_ned_cov_t packet1, packet2;
  2592. memset(&packet1, 0, sizeof(packet1));
  2593. packet1.time_usec = packet_in.time_usec;
  2594. packet1.x = packet_in.x;
  2595. packet1.y = packet_in.y;
  2596. packet1.z = packet_in.z;
  2597. packet1.vx = packet_in.vx;
  2598. packet1.vy = packet_in.vy;
  2599. packet1.vz = packet_in.vz;
  2600. packet1.ax = packet_in.ax;
  2601. packet1.ay = packet_in.ay;
  2602. packet1.az = packet_in.az;
  2603. packet1.estimator_type = packet_in.estimator_type;
  2604. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*45);
  2605. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2606. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2607. // cope with extensions
  2608. memset(MAVLINK_MSG_ID_LOCAL_POSITION_NED_COV_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOCAL_POSITION_NED_COV_MIN_LEN);
  2609. }
  2610. #endif
  2611. memset(&packet2, 0, sizeof(packet2));
  2612. mavlink_msg_local_position_ned_cov_encode(system_id, component_id, &msg, &packet1);
  2613. mavlink_msg_local_position_ned_cov_decode(&msg, &packet2);
  2614. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2615. memset(&packet2, 0, sizeof(packet2));
  2616. mavlink_msg_local_position_ned_cov_pack(system_id, component_id, &msg , packet1.time_usec , packet1.estimator_type , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.ax , packet1.ay , packet1.az , packet1.covariance );
  2617. mavlink_msg_local_position_ned_cov_decode(&msg, &packet2);
  2618. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2619. memset(&packet2, 0, sizeof(packet2));
  2620. mavlink_msg_local_position_ned_cov_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.estimator_type , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.ax , packet1.ay , packet1.az , packet1.covariance );
  2621. mavlink_msg_local_position_ned_cov_decode(&msg, &packet2);
  2622. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2623. memset(&packet2, 0, sizeof(packet2));
  2624. mavlink_msg_to_send_buffer(buffer, &msg);
  2625. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2626. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2627. }
  2628. mavlink_msg_local_position_ned_cov_decode(last_msg, &packet2);
  2629. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2630. memset(&packet2, 0, sizeof(packet2));
  2631. mavlink_msg_local_position_ned_cov_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.estimator_type , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.ax , packet1.ay , packet1.az , packet1.covariance );
  2632. mavlink_msg_local_position_ned_cov_decode(last_msg, &packet2);
  2633. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2634. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2635. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOCAL_POSITION_NED_COV") != NULL);
  2636. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOCAL_POSITION_NED_COV) != NULL);
  2637. #endif
  2638. }
  2639. static void mavlink_test_rc_channels(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2640. {
  2641. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2642. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2643. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RC_CHANNELS >= 256) {
  2644. return;
  2645. }
  2646. #endif
  2647. mavlink_message_t msg;
  2648. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2649. uint16_t i;
  2650. mavlink_rc_channels_t packet_in = {
  2651. 963497464,17443,17547,17651,17755,17859,17963,18067,18171,18275,18379,18483,18587,18691,18795,18899,19003,19107,19211,125,192
  2652. };
  2653. mavlink_rc_channels_t packet1, packet2;
  2654. memset(&packet1, 0, sizeof(packet1));
  2655. packet1.time_boot_ms = packet_in.time_boot_ms;
  2656. packet1.chan1_raw = packet_in.chan1_raw;
  2657. packet1.chan2_raw = packet_in.chan2_raw;
  2658. packet1.chan3_raw = packet_in.chan3_raw;
  2659. packet1.chan4_raw = packet_in.chan4_raw;
  2660. packet1.chan5_raw = packet_in.chan5_raw;
  2661. packet1.chan6_raw = packet_in.chan6_raw;
  2662. packet1.chan7_raw = packet_in.chan7_raw;
  2663. packet1.chan8_raw = packet_in.chan8_raw;
  2664. packet1.chan9_raw = packet_in.chan9_raw;
  2665. packet1.chan10_raw = packet_in.chan10_raw;
  2666. packet1.chan11_raw = packet_in.chan11_raw;
  2667. packet1.chan12_raw = packet_in.chan12_raw;
  2668. packet1.chan13_raw = packet_in.chan13_raw;
  2669. packet1.chan14_raw = packet_in.chan14_raw;
  2670. packet1.chan15_raw = packet_in.chan15_raw;
  2671. packet1.chan16_raw = packet_in.chan16_raw;
  2672. packet1.chan17_raw = packet_in.chan17_raw;
  2673. packet1.chan18_raw = packet_in.chan18_raw;
  2674. packet1.chancount = packet_in.chancount;
  2675. packet1.rssi = packet_in.rssi;
  2676. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2677. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2678. // cope with extensions
  2679. memset(MAVLINK_MSG_ID_RC_CHANNELS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RC_CHANNELS_MIN_LEN);
  2680. }
  2681. #endif
  2682. memset(&packet2, 0, sizeof(packet2));
  2683. mavlink_msg_rc_channels_encode(system_id, component_id, &msg, &packet1);
  2684. mavlink_msg_rc_channels_decode(&msg, &packet2);
  2685. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2686. memset(&packet2, 0, sizeof(packet2));
  2687. mavlink_msg_rc_channels_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.chancount , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.chan13_raw , packet1.chan14_raw , packet1.chan15_raw , packet1.chan16_raw , packet1.chan17_raw , packet1.chan18_raw , packet1.rssi );
  2688. mavlink_msg_rc_channels_decode(&msg, &packet2);
  2689. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2690. memset(&packet2, 0, sizeof(packet2));
  2691. mavlink_msg_rc_channels_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.chancount , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.chan13_raw , packet1.chan14_raw , packet1.chan15_raw , packet1.chan16_raw , packet1.chan17_raw , packet1.chan18_raw , packet1.rssi );
  2692. mavlink_msg_rc_channels_decode(&msg, &packet2);
  2693. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2694. memset(&packet2, 0, sizeof(packet2));
  2695. mavlink_msg_to_send_buffer(buffer, &msg);
  2696. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2697. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2698. }
  2699. mavlink_msg_rc_channels_decode(last_msg, &packet2);
  2700. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2701. memset(&packet2, 0, sizeof(packet2));
  2702. mavlink_msg_rc_channels_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.chancount , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.chan13_raw , packet1.chan14_raw , packet1.chan15_raw , packet1.chan16_raw , packet1.chan17_raw , packet1.chan18_raw , packet1.rssi );
  2703. mavlink_msg_rc_channels_decode(last_msg, &packet2);
  2704. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2705. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2706. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RC_CHANNELS") != NULL);
  2707. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RC_CHANNELS) != NULL);
  2708. #endif
  2709. }
  2710. static void mavlink_test_request_data_stream(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2711. {
  2712. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2713. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2714. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_REQUEST_DATA_STREAM >= 256) {
  2715. return;
  2716. }
  2717. #endif
  2718. mavlink_message_t msg;
  2719. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2720. uint16_t i;
  2721. mavlink_request_data_stream_t packet_in = {
  2722. 17235,139,206,17,84
  2723. };
  2724. mavlink_request_data_stream_t packet1, packet2;
  2725. memset(&packet1, 0, sizeof(packet1));
  2726. packet1.req_message_rate = packet_in.req_message_rate;
  2727. packet1.target_system = packet_in.target_system;
  2728. packet1.target_component = packet_in.target_component;
  2729. packet1.req_stream_id = packet_in.req_stream_id;
  2730. packet1.start_stop = packet_in.start_stop;
  2731. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2732. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2733. // cope with extensions
  2734. memset(MAVLINK_MSG_ID_REQUEST_DATA_STREAM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_REQUEST_DATA_STREAM_MIN_LEN);
  2735. }
  2736. #endif
  2737. memset(&packet2, 0, sizeof(packet2));
  2738. mavlink_msg_request_data_stream_encode(system_id, component_id, &msg, &packet1);
  2739. mavlink_msg_request_data_stream_decode(&msg, &packet2);
  2740. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2741. memset(&packet2, 0, sizeof(packet2));
  2742. mavlink_msg_request_data_stream_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.req_stream_id , packet1.req_message_rate , packet1.start_stop );
  2743. mavlink_msg_request_data_stream_decode(&msg, &packet2);
  2744. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2745. memset(&packet2, 0, sizeof(packet2));
  2746. mavlink_msg_request_data_stream_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.req_stream_id , packet1.req_message_rate , packet1.start_stop );
  2747. mavlink_msg_request_data_stream_decode(&msg, &packet2);
  2748. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2749. memset(&packet2, 0, sizeof(packet2));
  2750. mavlink_msg_to_send_buffer(buffer, &msg);
  2751. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2752. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2753. }
  2754. mavlink_msg_request_data_stream_decode(last_msg, &packet2);
  2755. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2756. memset(&packet2, 0, sizeof(packet2));
  2757. mavlink_msg_request_data_stream_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.req_stream_id , packet1.req_message_rate , packet1.start_stop );
  2758. mavlink_msg_request_data_stream_decode(last_msg, &packet2);
  2759. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2760. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2761. MAVLINK_ASSERT(mavlink_get_message_info_by_name("REQUEST_DATA_STREAM") != NULL);
  2762. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_REQUEST_DATA_STREAM) != NULL);
  2763. #endif
  2764. }
  2765. static void mavlink_test_data_stream(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2766. {
  2767. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2768. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2769. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_DATA_STREAM >= 256) {
  2770. return;
  2771. }
  2772. #endif
  2773. mavlink_message_t msg;
  2774. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2775. uint16_t i;
  2776. mavlink_data_stream_t packet_in = {
  2777. 17235,139,206
  2778. };
  2779. mavlink_data_stream_t packet1, packet2;
  2780. memset(&packet1, 0, sizeof(packet1));
  2781. packet1.message_rate = packet_in.message_rate;
  2782. packet1.stream_id = packet_in.stream_id;
  2783. packet1.on_off = packet_in.on_off;
  2784. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2785. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2786. // cope with extensions
  2787. memset(MAVLINK_MSG_ID_DATA_STREAM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_DATA_STREAM_MIN_LEN);
  2788. }
  2789. #endif
  2790. memset(&packet2, 0, sizeof(packet2));
  2791. mavlink_msg_data_stream_encode(system_id, component_id, &msg, &packet1);
  2792. mavlink_msg_data_stream_decode(&msg, &packet2);
  2793. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2794. memset(&packet2, 0, sizeof(packet2));
  2795. mavlink_msg_data_stream_pack(system_id, component_id, &msg , packet1.stream_id , packet1.message_rate , packet1.on_off );
  2796. mavlink_msg_data_stream_decode(&msg, &packet2);
  2797. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2798. memset(&packet2, 0, sizeof(packet2));
  2799. mavlink_msg_data_stream_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.stream_id , packet1.message_rate , packet1.on_off );
  2800. mavlink_msg_data_stream_decode(&msg, &packet2);
  2801. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2802. memset(&packet2, 0, sizeof(packet2));
  2803. mavlink_msg_to_send_buffer(buffer, &msg);
  2804. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2805. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2806. }
  2807. mavlink_msg_data_stream_decode(last_msg, &packet2);
  2808. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2809. memset(&packet2, 0, sizeof(packet2));
  2810. mavlink_msg_data_stream_send(MAVLINK_COMM_1 , packet1.stream_id , packet1.message_rate , packet1.on_off );
  2811. mavlink_msg_data_stream_decode(last_msg, &packet2);
  2812. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2813. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2814. MAVLINK_ASSERT(mavlink_get_message_info_by_name("DATA_STREAM") != NULL);
  2815. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_DATA_STREAM) != NULL);
  2816. #endif
  2817. }
  2818. static void mavlink_test_manual_control(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2819. {
  2820. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2821. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2822. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MANUAL_CONTROL >= 256) {
  2823. return;
  2824. }
  2825. #endif
  2826. mavlink_message_t msg;
  2827. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2828. uint16_t i;
  2829. mavlink_manual_control_t packet_in = {
  2830. 17235,17339,17443,17547,17651,163,17807,108,17963,18067,18171,18275,18379,18483,18587,18691
  2831. };
  2832. mavlink_manual_control_t packet1, packet2;
  2833. memset(&packet1, 0, sizeof(packet1));
  2834. packet1.x = packet_in.x;
  2835. packet1.y = packet_in.y;
  2836. packet1.z = packet_in.z;
  2837. packet1.r = packet_in.r;
  2838. packet1.buttons = packet_in.buttons;
  2839. packet1.target = packet_in.target;
  2840. packet1.buttons2 = packet_in.buttons2;
  2841. packet1.enabled_extensions = packet_in.enabled_extensions;
  2842. packet1.s = packet_in.s;
  2843. packet1.t = packet_in.t;
  2844. packet1.aux1 = packet_in.aux1;
  2845. packet1.aux2 = packet_in.aux2;
  2846. packet1.aux3 = packet_in.aux3;
  2847. packet1.aux4 = packet_in.aux4;
  2848. packet1.aux5 = packet_in.aux5;
  2849. packet1.aux6 = packet_in.aux6;
  2850. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2851. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2852. // cope with extensions
  2853. memset(MAVLINK_MSG_ID_MANUAL_CONTROL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MANUAL_CONTROL_MIN_LEN);
  2854. }
  2855. #endif
  2856. memset(&packet2, 0, sizeof(packet2));
  2857. mavlink_msg_manual_control_encode(system_id, component_id, &msg, &packet1);
  2858. mavlink_msg_manual_control_decode(&msg, &packet2);
  2859. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2860. memset(&packet2, 0, sizeof(packet2));
  2861. mavlink_msg_manual_control_pack(system_id, component_id, &msg , packet1.target , packet1.x , packet1.y , packet1.z , packet1.r , packet1.buttons , packet1.buttons2 , packet1.enabled_extensions , packet1.s , packet1.t , packet1.aux1 , packet1.aux2 , packet1.aux3 , packet1.aux4 , packet1.aux5 , packet1.aux6 );
  2862. mavlink_msg_manual_control_decode(&msg, &packet2);
  2863. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2864. memset(&packet2, 0, sizeof(packet2));
  2865. mavlink_msg_manual_control_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target , packet1.x , packet1.y , packet1.z , packet1.r , packet1.buttons , packet1.buttons2 , packet1.enabled_extensions , packet1.s , packet1.t , packet1.aux1 , packet1.aux2 , packet1.aux3 , packet1.aux4 , packet1.aux5 , packet1.aux6 );
  2866. mavlink_msg_manual_control_decode(&msg, &packet2);
  2867. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2868. memset(&packet2, 0, sizeof(packet2));
  2869. mavlink_msg_to_send_buffer(buffer, &msg);
  2870. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2871. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2872. }
  2873. mavlink_msg_manual_control_decode(last_msg, &packet2);
  2874. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2875. memset(&packet2, 0, sizeof(packet2));
  2876. mavlink_msg_manual_control_send(MAVLINK_COMM_1 , packet1.target , packet1.x , packet1.y , packet1.z , packet1.r , packet1.buttons , packet1.buttons2 , packet1.enabled_extensions , packet1.s , packet1.t , packet1.aux1 , packet1.aux2 , packet1.aux3 , packet1.aux4 , packet1.aux5 , packet1.aux6 );
  2877. mavlink_msg_manual_control_decode(last_msg, &packet2);
  2878. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2879. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2880. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MANUAL_CONTROL") != NULL);
  2881. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MANUAL_CONTROL) != NULL);
  2882. #endif
  2883. }
  2884. static void mavlink_test_rc_channels_override(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2885. {
  2886. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2887. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2888. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE >= 256) {
  2889. return;
  2890. }
  2891. #endif
  2892. mavlink_message_t msg;
  2893. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2894. uint16_t i;
  2895. mavlink_rc_channels_override_t packet_in = {
  2896. 17235,17339,17443,17547,17651,17755,17859,17963,53,120,18171,18275,18379,18483,18587,18691,18795,18899,19003,19107
  2897. };
  2898. mavlink_rc_channels_override_t packet1, packet2;
  2899. memset(&packet1, 0, sizeof(packet1));
  2900. packet1.chan1_raw = packet_in.chan1_raw;
  2901. packet1.chan2_raw = packet_in.chan2_raw;
  2902. packet1.chan3_raw = packet_in.chan3_raw;
  2903. packet1.chan4_raw = packet_in.chan4_raw;
  2904. packet1.chan5_raw = packet_in.chan5_raw;
  2905. packet1.chan6_raw = packet_in.chan6_raw;
  2906. packet1.chan7_raw = packet_in.chan7_raw;
  2907. packet1.chan8_raw = packet_in.chan8_raw;
  2908. packet1.target_system = packet_in.target_system;
  2909. packet1.target_component = packet_in.target_component;
  2910. packet1.chan9_raw = packet_in.chan9_raw;
  2911. packet1.chan10_raw = packet_in.chan10_raw;
  2912. packet1.chan11_raw = packet_in.chan11_raw;
  2913. packet1.chan12_raw = packet_in.chan12_raw;
  2914. packet1.chan13_raw = packet_in.chan13_raw;
  2915. packet1.chan14_raw = packet_in.chan14_raw;
  2916. packet1.chan15_raw = packet_in.chan15_raw;
  2917. packet1.chan16_raw = packet_in.chan16_raw;
  2918. packet1.chan17_raw = packet_in.chan17_raw;
  2919. packet1.chan18_raw = packet_in.chan18_raw;
  2920. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2921. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2922. // cope with extensions
  2923. memset(MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE_MIN_LEN);
  2924. }
  2925. #endif
  2926. memset(&packet2, 0, sizeof(packet2));
  2927. mavlink_msg_rc_channels_override_encode(system_id, component_id, &msg, &packet1);
  2928. mavlink_msg_rc_channels_override_decode(&msg, &packet2);
  2929. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2930. memset(&packet2, 0, sizeof(packet2));
  2931. mavlink_msg_rc_channels_override_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.chan13_raw , packet1.chan14_raw , packet1.chan15_raw , packet1.chan16_raw , packet1.chan17_raw , packet1.chan18_raw );
  2932. mavlink_msg_rc_channels_override_decode(&msg, &packet2);
  2933. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2934. memset(&packet2, 0, sizeof(packet2));
  2935. mavlink_msg_rc_channels_override_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.chan13_raw , packet1.chan14_raw , packet1.chan15_raw , packet1.chan16_raw , packet1.chan17_raw , packet1.chan18_raw );
  2936. mavlink_msg_rc_channels_override_decode(&msg, &packet2);
  2937. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2938. memset(&packet2, 0, sizeof(packet2));
  2939. mavlink_msg_to_send_buffer(buffer, &msg);
  2940. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  2941. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  2942. }
  2943. mavlink_msg_rc_channels_override_decode(last_msg, &packet2);
  2944. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2945. memset(&packet2, 0, sizeof(packet2));
  2946. mavlink_msg_rc_channels_override_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.chan13_raw , packet1.chan14_raw , packet1.chan15_raw , packet1.chan16_raw , packet1.chan17_raw , packet1.chan18_raw );
  2947. mavlink_msg_rc_channels_override_decode(last_msg, &packet2);
  2948. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2949. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  2950. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RC_CHANNELS_OVERRIDE") != NULL);
  2951. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE) != NULL);
  2952. #endif
  2953. }
  2954. static void mavlink_test_mission_item_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  2955. {
  2956. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2957. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  2958. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MISSION_ITEM_INT >= 256) {
  2959. return;
  2960. }
  2961. #endif
  2962. mavlink_message_t msg;
  2963. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  2964. uint16_t i;
  2965. mavlink_mission_item_int_t packet_in = {
  2966. 17.0,45.0,73.0,101.0,963498296,963498504,185.0,18691,18795,101,168,235,46,113,180
  2967. };
  2968. mavlink_mission_item_int_t packet1, packet2;
  2969. memset(&packet1, 0, sizeof(packet1));
  2970. packet1.param1 = packet_in.param1;
  2971. packet1.param2 = packet_in.param2;
  2972. packet1.param3 = packet_in.param3;
  2973. packet1.param4 = packet_in.param4;
  2974. packet1.x = packet_in.x;
  2975. packet1.y = packet_in.y;
  2976. packet1.z = packet_in.z;
  2977. packet1.seq = packet_in.seq;
  2978. packet1.command = packet_in.command;
  2979. packet1.target_system = packet_in.target_system;
  2980. packet1.target_component = packet_in.target_component;
  2981. packet1.frame = packet_in.frame;
  2982. packet1.current = packet_in.current;
  2983. packet1.autocontinue = packet_in.autocontinue;
  2984. packet1.mission_type = packet_in.mission_type;
  2985. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  2986. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  2987. // cope with extensions
  2988. memset(MAVLINK_MSG_ID_MISSION_ITEM_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MISSION_ITEM_INT_MIN_LEN);
  2989. }
  2990. #endif
  2991. memset(&packet2, 0, sizeof(packet2));
  2992. mavlink_msg_mission_item_int_encode(system_id, component_id, &msg, &packet1);
  2993. mavlink_msg_mission_item_int_decode(&msg, &packet2);
  2994. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2995. memset(&packet2, 0, sizeof(packet2));
  2996. mavlink_msg_mission_item_int_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z , packet1.mission_type );
  2997. mavlink_msg_mission_item_int_decode(&msg, &packet2);
  2998. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  2999. memset(&packet2, 0, sizeof(packet2));
  3000. mavlink_msg_mission_item_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.seq , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z , packet1.mission_type );
  3001. mavlink_msg_mission_item_int_decode(&msg, &packet2);
  3002. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3003. memset(&packet2, 0, sizeof(packet2));
  3004. mavlink_msg_to_send_buffer(buffer, &msg);
  3005. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3006. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3007. }
  3008. mavlink_msg_mission_item_int_decode(last_msg, &packet2);
  3009. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3010. memset(&packet2, 0, sizeof(packet2));
  3011. mavlink_msg_mission_item_int_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.seq , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z , packet1.mission_type );
  3012. mavlink_msg_mission_item_int_decode(last_msg, &packet2);
  3013. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3014. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3015. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MISSION_ITEM_INT") != NULL);
  3016. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MISSION_ITEM_INT) != NULL);
  3017. #endif
  3018. }
  3019. static void mavlink_test_vfr_hud(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3020. {
  3021. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3022. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3023. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VFR_HUD >= 256) {
  3024. return;
  3025. }
  3026. #endif
  3027. mavlink_message_t msg;
  3028. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3029. uint16_t i;
  3030. mavlink_vfr_hud_t packet_in = {
  3031. 17.0,45.0,73.0,101.0,18067,18171
  3032. };
  3033. mavlink_vfr_hud_t packet1, packet2;
  3034. memset(&packet1, 0, sizeof(packet1));
  3035. packet1.airspeed = packet_in.airspeed;
  3036. packet1.groundspeed = packet_in.groundspeed;
  3037. packet1.alt = packet_in.alt;
  3038. packet1.climb = packet_in.climb;
  3039. packet1.heading = packet_in.heading;
  3040. packet1.throttle = packet_in.throttle;
  3041. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3042. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3043. // cope with extensions
  3044. memset(MAVLINK_MSG_ID_VFR_HUD_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VFR_HUD_MIN_LEN);
  3045. }
  3046. #endif
  3047. memset(&packet2, 0, sizeof(packet2));
  3048. mavlink_msg_vfr_hud_encode(system_id, component_id, &msg, &packet1);
  3049. mavlink_msg_vfr_hud_decode(&msg, &packet2);
  3050. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3051. memset(&packet2, 0, sizeof(packet2));
  3052. mavlink_msg_vfr_hud_pack(system_id, component_id, &msg , packet1.airspeed , packet1.groundspeed , packet1.heading , packet1.throttle , packet1.alt , packet1.climb );
  3053. mavlink_msg_vfr_hud_decode(&msg, &packet2);
  3054. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3055. memset(&packet2, 0, sizeof(packet2));
  3056. mavlink_msg_vfr_hud_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.airspeed , packet1.groundspeed , packet1.heading , packet1.throttle , packet1.alt , packet1.climb );
  3057. mavlink_msg_vfr_hud_decode(&msg, &packet2);
  3058. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3059. memset(&packet2, 0, sizeof(packet2));
  3060. mavlink_msg_to_send_buffer(buffer, &msg);
  3061. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3062. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3063. }
  3064. mavlink_msg_vfr_hud_decode(last_msg, &packet2);
  3065. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3066. memset(&packet2, 0, sizeof(packet2));
  3067. mavlink_msg_vfr_hud_send(MAVLINK_COMM_1 , packet1.airspeed , packet1.groundspeed , packet1.heading , packet1.throttle , packet1.alt , packet1.climb );
  3068. mavlink_msg_vfr_hud_decode(last_msg, &packet2);
  3069. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3070. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3071. MAVLINK_ASSERT(mavlink_get_message_info_by_name("VFR_HUD") != NULL);
  3072. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VFR_HUD) != NULL);
  3073. #endif
  3074. }
  3075. static void mavlink_test_command_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3076. {
  3077. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3078. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3079. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMMAND_INT >= 256) {
  3080. return;
  3081. }
  3082. #endif
  3083. mavlink_message_t msg;
  3084. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3085. uint16_t i;
  3086. mavlink_command_int_t packet_in = {
  3087. 17.0,45.0,73.0,101.0,963498296,963498504,185.0,18691,223,34,101,168,235
  3088. };
  3089. mavlink_command_int_t packet1, packet2;
  3090. memset(&packet1, 0, sizeof(packet1));
  3091. packet1.param1 = packet_in.param1;
  3092. packet1.param2 = packet_in.param2;
  3093. packet1.param3 = packet_in.param3;
  3094. packet1.param4 = packet_in.param4;
  3095. packet1.x = packet_in.x;
  3096. packet1.y = packet_in.y;
  3097. packet1.z = packet_in.z;
  3098. packet1.command = packet_in.command;
  3099. packet1.target_system = packet_in.target_system;
  3100. packet1.target_component = packet_in.target_component;
  3101. packet1.frame = packet_in.frame;
  3102. packet1.current = packet_in.current;
  3103. packet1.autocontinue = packet_in.autocontinue;
  3104. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3105. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3106. // cope with extensions
  3107. memset(MAVLINK_MSG_ID_COMMAND_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMMAND_INT_MIN_LEN);
  3108. }
  3109. #endif
  3110. memset(&packet2, 0, sizeof(packet2));
  3111. mavlink_msg_command_int_encode(system_id, component_id, &msg, &packet1);
  3112. mavlink_msg_command_int_decode(&msg, &packet2);
  3113. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3114. memset(&packet2, 0, sizeof(packet2));
  3115. mavlink_msg_command_int_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z );
  3116. mavlink_msg_command_int_decode(&msg, &packet2);
  3117. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3118. memset(&packet2, 0, sizeof(packet2));
  3119. mavlink_msg_command_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z );
  3120. mavlink_msg_command_int_decode(&msg, &packet2);
  3121. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3122. memset(&packet2, 0, sizeof(packet2));
  3123. mavlink_msg_to_send_buffer(buffer, &msg);
  3124. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3125. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3126. }
  3127. mavlink_msg_command_int_decode(last_msg, &packet2);
  3128. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3129. memset(&packet2, 0, sizeof(packet2));
  3130. mavlink_msg_command_int_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z );
  3131. mavlink_msg_command_int_decode(last_msg, &packet2);
  3132. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3133. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3134. MAVLINK_ASSERT(mavlink_get_message_info_by_name("COMMAND_INT") != NULL);
  3135. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COMMAND_INT) != NULL);
  3136. #endif
  3137. }
  3138. static void mavlink_test_command_long(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3139. {
  3140. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3141. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3142. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMMAND_LONG >= 256) {
  3143. return;
  3144. }
  3145. #endif
  3146. mavlink_message_t msg;
  3147. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3148. uint16_t i;
  3149. mavlink_command_long_t packet_in = {
  3150. 17.0,45.0,73.0,101.0,129.0,157.0,185.0,18691,223,34,101
  3151. };
  3152. mavlink_command_long_t packet1, packet2;
  3153. memset(&packet1, 0, sizeof(packet1));
  3154. packet1.param1 = packet_in.param1;
  3155. packet1.param2 = packet_in.param2;
  3156. packet1.param3 = packet_in.param3;
  3157. packet1.param4 = packet_in.param4;
  3158. packet1.param5 = packet_in.param5;
  3159. packet1.param6 = packet_in.param6;
  3160. packet1.param7 = packet_in.param7;
  3161. packet1.command = packet_in.command;
  3162. packet1.target_system = packet_in.target_system;
  3163. packet1.target_component = packet_in.target_component;
  3164. packet1.confirmation = packet_in.confirmation;
  3165. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3166. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3167. // cope with extensions
  3168. memset(MAVLINK_MSG_ID_COMMAND_LONG_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMMAND_LONG_MIN_LEN);
  3169. }
  3170. #endif
  3171. memset(&packet2, 0, sizeof(packet2));
  3172. mavlink_msg_command_long_encode(system_id, component_id, &msg, &packet1);
  3173. mavlink_msg_command_long_decode(&msg, &packet2);
  3174. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3175. memset(&packet2, 0, sizeof(packet2));
  3176. mavlink_msg_command_long_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.command , packet1.confirmation , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.param5 , packet1.param6 , packet1.param7 );
  3177. mavlink_msg_command_long_decode(&msg, &packet2);
  3178. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3179. memset(&packet2, 0, sizeof(packet2));
  3180. mavlink_msg_command_long_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.command , packet1.confirmation , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.param5 , packet1.param6 , packet1.param7 );
  3181. mavlink_msg_command_long_decode(&msg, &packet2);
  3182. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3183. memset(&packet2, 0, sizeof(packet2));
  3184. mavlink_msg_to_send_buffer(buffer, &msg);
  3185. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3186. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3187. }
  3188. mavlink_msg_command_long_decode(last_msg, &packet2);
  3189. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3190. memset(&packet2, 0, sizeof(packet2));
  3191. mavlink_msg_command_long_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.command , packet1.confirmation , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.param5 , packet1.param6 , packet1.param7 );
  3192. mavlink_msg_command_long_decode(last_msg, &packet2);
  3193. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3194. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3195. MAVLINK_ASSERT(mavlink_get_message_info_by_name("COMMAND_LONG") != NULL);
  3196. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COMMAND_LONG) != NULL);
  3197. #endif
  3198. }
  3199. static void mavlink_test_command_ack(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3200. {
  3201. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3202. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3203. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMMAND_ACK >= 256) {
  3204. return;
  3205. }
  3206. #endif
  3207. mavlink_message_t msg;
  3208. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3209. uint16_t i;
  3210. mavlink_command_ack_t packet_in = {
  3211. 17235,139,206,963497672,29,96
  3212. };
  3213. mavlink_command_ack_t packet1, packet2;
  3214. memset(&packet1, 0, sizeof(packet1));
  3215. packet1.command = packet_in.command;
  3216. packet1.result = packet_in.result;
  3217. packet1.progress = packet_in.progress;
  3218. packet1.result_param2 = packet_in.result_param2;
  3219. packet1.target_system = packet_in.target_system;
  3220. packet1.target_component = packet_in.target_component;
  3221. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3222. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3223. // cope with extensions
  3224. memset(MAVLINK_MSG_ID_COMMAND_ACK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMMAND_ACK_MIN_LEN);
  3225. }
  3226. #endif
  3227. memset(&packet2, 0, sizeof(packet2));
  3228. mavlink_msg_command_ack_encode(system_id, component_id, &msg, &packet1);
  3229. mavlink_msg_command_ack_decode(&msg, &packet2);
  3230. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3231. memset(&packet2, 0, sizeof(packet2));
  3232. mavlink_msg_command_ack_pack(system_id, component_id, &msg , packet1.command , packet1.result , packet1.progress , packet1.result_param2 , packet1.target_system , packet1.target_component );
  3233. mavlink_msg_command_ack_decode(&msg, &packet2);
  3234. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3235. memset(&packet2, 0, sizeof(packet2));
  3236. mavlink_msg_command_ack_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.command , packet1.result , packet1.progress , packet1.result_param2 , packet1.target_system , packet1.target_component );
  3237. mavlink_msg_command_ack_decode(&msg, &packet2);
  3238. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3239. memset(&packet2, 0, sizeof(packet2));
  3240. mavlink_msg_to_send_buffer(buffer, &msg);
  3241. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3242. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3243. }
  3244. mavlink_msg_command_ack_decode(last_msg, &packet2);
  3245. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3246. memset(&packet2, 0, sizeof(packet2));
  3247. mavlink_msg_command_ack_send(MAVLINK_COMM_1 , packet1.command , packet1.result , packet1.progress , packet1.result_param2 , packet1.target_system , packet1.target_component );
  3248. mavlink_msg_command_ack_decode(last_msg, &packet2);
  3249. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3250. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3251. MAVLINK_ASSERT(mavlink_get_message_info_by_name("COMMAND_ACK") != NULL);
  3252. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COMMAND_ACK) != NULL);
  3253. #endif
  3254. }
  3255. static void mavlink_test_command_cancel(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3256. {
  3257. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3258. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3259. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMMAND_CANCEL >= 256) {
  3260. return;
  3261. }
  3262. #endif
  3263. mavlink_message_t msg;
  3264. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3265. uint16_t i;
  3266. mavlink_command_cancel_t packet_in = {
  3267. 17235,139,206
  3268. };
  3269. mavlink_command_cancel_t packet1, packet2;
  3270. memset(&packet1, 0, sizeof(packet1));
  3271. packet1.command = packet_in.command;
  3272. packet1.target_system = packet_in.target_system;
  3273. packet1.target_component = packet_in.target_component;
  3274. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3275. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3276. // cope with extensions
  3277. memset(MAVLINK_MSG_ID_COMMAND_CANCEL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMMAND_CANCEL_MIN_LEN);
  3278. }
  3279. #endif
  3280. memset(&packet2, 0, sizeof(packet2));
  3281. mavlink_msg_command_cancel_encode(system_id, component_id, &msg, &packet1);
  3282. mavlink_msg_command_cancel_decode(&msg, &packet2);
  3283. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3284. memset(&packet2, 0, sizeof(packet2));
  3285. mavlink_msg_command_cancel_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.command );
  3286. mavlink_msg_command_cancel_decode(&msg, &packet2);
  3287. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3288. memset(&packet2, 0, sizeof(packet2));
  3289. mavlink_msg_command_cancel_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.command );
  3290. mavlink_msg_command_cancel_decode(&msg, &packet2);
  3291. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3292. memset(&packet2, 0, sizeof(packet2));
  3293. mavlink_msg_to_send_buffer(buffer, &msg);
  3294. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3295. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3296. }
  3297. mavlink_msg_command_cancel_decode(last_msg, &packet2);
  3298. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3299. memset(&packet2, 0, sizeof(packet2));
  3300. mavlink_msg_command_cancel_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.command );
  3301. mavlink_msg_command_cancel_decode(last_msg, &packet2);
  3302. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3303. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3304. MAVLINK_ASSERT(mavlink_get_message_info_by_name("COMMAND_CANCEL") != NULL);
  3305. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COMMAND_CANCEL) != NULL);
  3306. #endif
  3307. }
  3308. static void mavlink_test_manual_setpoint(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3309. {
  3310. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3311. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3312. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MANUAL_SETPOINT >= 256) {
  3313. return;
  3314. }
  3315. #endif
  3316. mavlink_message_t msg;
  3317. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3318. uint16_t i;
  3319. mavlink_manual_setpoint_t packet_in = {
  3320. 963497464,45.0,73.0,101.0,129.0,65,132
  3321. };
  3322. mavlink_manual_setpoint_t packet1, packet2;
  3323. memset(&packet1, 0, sizeof(packet1));
  3324. packet1.time_boot_ms = packet_in.time_boot_ms;
  3325. packet1.roll = packet_in.roll;
  3326. packet1.pitch = packet_in.pitch;
  3327. packet1.yaw = packet_in.yaw;
  3328. packet1.thrust = packet_in.thrust;
  3329. packet1.mode_switch = packet_in.mode_switch;
  3330. packet1.manual_override_switch = packet_in.manual_override_switch;
  3331. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3332. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3333. // cope with extensions
  3334. memset(MAVLINK_MSG_ID_MANUAL_SETPOINT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MANUAL_SETPOINT_MIN_LEN);
  3335. }
  3336. #endif
  3337. memset(&packet2, 0, sizeof(packet2));
  3338. mavlink_msg_manual_setpoint_encode(system_id, component_id, &msg, &packet1);
  3339. mavlink_msg_manual_setpoint_decode(&msg, &packet2);
  3340. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3341. memset(&packet2, 0, sizeof(packet2));
  3342. mavlink_msg_manual_setpoint_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.thrust , packet1.mode_switch , packet1.manual_override_switch );
  3343. mavlink_msg_manual_setpoint_decode(&msg, &packet2);
  3344. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3345. memset(&packet2, 0, sizeof(packet2));
  3346. mavlink_msg_manual_setpoint_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.thrust , packet1.mode_switch , packet1.manual_override_switch );
  3347. mavlink_msg_manual_setpoint_decode(&msg, &packet2);
  3348. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3349. memset(&packet2, 0, sizeof(packet2));
  3350. mavlink_msg_to_send_buffer(buffer, &msg);
  3351. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3352. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3353. }
  3354. mavlink_msg_manual_setpoint_decode(last_msg, &packet2);
  3355. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3356. memset(&packet2, 0, sizeof(packet2));
  3357. mavlink_msg_manual_setpoint_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.thrust , packet1.mode_switch , packet1.manual_override_switch );
  3358. mavlink_msg_manual_setpoint_decode(last_msg, &packet2);
  3359. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3360. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3361. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MANUAL_SETPOINT") != NULL);
  3362. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MANUAL_SETPOINT) != NULL);
  3363. #endif
  3364. }
  3365. static void mavlink_test_set_attitude_target(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3366. {
  3367. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3368. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3369. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_ATTITUDE_TARGET >= 256) {
  3370. return;
  3371. }
  3372. #endif
  3373. mavlink_message_t msg;
  3374. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3375. uint16_t i;
  3376. mavlink_set_attitude_target_t packet_in = {
  3377. 963497464,{ 45.0, 46.0, 47.0, 48.0 },157.0,185.0,213.0,241.0,113,180,247,{ 290.0, 291.0, 292.0 }
  3378. };
  3379. mavlink_set_attitude_target_t packet1, packet2;
  3380. memset(&packet1, 0, sizeof(packet1));
  3381. packet1.time_boot_ms = packet_in.time_boot_ms;
  3382. packet1.body_roll_rate = packet_in.body_roll_rate;
  3383. packet1.body_pitch_rate = packet_in.body_pitch_rate;
  3384. packet1.body_yaw_rate = packet_in.body_yaw_rate;
  3385. packet1.thrust = packet_in.thrust;
  3386. packet1.target_system = packet_in.target_system;
  3387. packet1.target_component = packet_in.target_component;
  3388. packet1.type_mask = packet_in.type_mask;
  3389. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  3390. mav_array_memcpy(packet1.thrust_body, packet_in.thrust_body, sizeof(float)*3);
  3391. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3392. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3393. // cope with extensions
  3394. memset(MAVLINK_MSG_ID_SET_ATTITUDE_TARGET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_ATTITUDE_TARGET_MIN_LEN);
  3395. }
  3396. #endif
  3397. memset(&packet2, 0, sizeof(packet2));
  3398. mavlink_msg_set_attitude_target_encode(system_id, component_id, &msg, &packet1);
  3399. mavlink_msg_set_attitude_target_decode(&msg, &packet2);
  3400. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3401. memset(&packet2, 0, sizeof(packet2));
  3402. mavlink_msg_set_attitude_target_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.type_mask , packet1.q , packet1.body_roll_rate , packet1.body_pitch_rate , packet1.body_yaw_rate , packet1.thrust , packet1.thrust_body );
  3403. mavlink_msg_set_attitude_target_decode(&msg, &packet2);
  3404. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3405. memset(&packet2, 0, sizeof(packet2));
  3406. mavlink_msg_set_attitude_target_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.type_mask , packet1.q , packet1.body_roll_rate , packet1.body_pitch_rate , packet1.body_yaw_rate , packet1.thrust , packet1.thrust_body );
  3407. mavlink_msg_set_attitude_target_decode(&msg, &packet2);
  3408. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3409. memset(&packet2, 0, sizeof(packet2));
  3410. mavlink_msg_to_send_buffer(buffer, &msg);
  3411. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3412. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3413. }
  3414. mavlink_msg_set_attitude_target_decode(last_msg, &packet2);
  3415. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3416. memset(&packet2, 0, sizeof(packet2));
  3417. mavlink_msg_set_attitude_target_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.type_mask , packet1.q , packet1.body_roll_rate , packet1.body_pitch_rate , packet1.body_yaw_rate , packet1.thrust , packet1.thrust_body );
  3418. mavlink_msg_set_attitude_target_decode(last_msg, &packet2);
  3419. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3420. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3421. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_ATTITUDE_TARGET") != NULL);
  3422. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_ATTITUDE_TARGET) != NULL);
  3423. #endif
  3424. }
  3425. static void mavlink_test_attitude_target(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3426. {
  3427. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3428. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3429. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ATTITUDE_TARGET >= 256) {
  3430. return;
  3431. }
  3432. #endif
  3433. mavlink_message_t msg;
  3434. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3435. uint16_t i;
  3436. mavlink_attitude_target_t packet_in = {
  3437. 963497464,{ 45.0, 46.0, 47.0, 48.0 },157.0,185.0,213.0,241.0,113
  3438. };
  3439. mavlink_attitude_target_t packet1, packet2;
  3440. memset(&packet1, 0, sizeof(packet1));
  3441. packet1.time_boot_ms = packet_in.time_boot_ms;
  3442. packet1.body_roll_rate = packet_in.body_roll_rate;
  3443. packet1.body_pitch_rate = packet_in.body_pitch_rate;
  3444. packet1.body_yaw_rate = packet_in.body_yaw_rate;
  3445. packet1.thrust = packet_in.thrust;
  3446. packet1.type_mask = packet_in.type_mask;
  3447. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  3448. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3449. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3450. // cope with extensions
  3451. memset(MAVLINK_MSG_ID_ATTITUDE_TARGET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ATTITUDE_TARGET_MIN_LEN);
  3452. }
  3453. #endif
  3454. memset(&packet2, 0, sizeof(packet2));
  3455. mavlink_msg_attitude_target_encode(system_id, component_id, &msg, &packet1);
  3456. mavlink_msg_attitude_target_decode(&msg, &packet2);
  3457. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3458. memset(&packet2, 0, sizeof(packet2));
  3459. mavlink_msg_attitude_target_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.type_mask , packet1.q , packet1.body_roll_rate , packet1.body_pitch_rate , packet1.body_yaw_rate , packet1.thrust );
  3460. mavlink_msg_attitude_target_decode(&msg, &packet2);
  3461. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3462. memset(&packet2, 0, sizeof(packet2));
  3463. mavlink_msg_attitude_target_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.type_mask , packet1.q , packet1.body_roll_rate , packet1.body_pitch_rate , packet1.body_yaw_rate , packet1.thrust );
  3464. mavlink_msg_attitude_target_decode(&msg, &packet2);
  3465. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3466. memset(&packet2, 0, sizeof(packet2));
  3467. mavlink_msg_to_send_buffer(buffer, &msg);
  3468. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3469. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3470. }
  3471. mavlink_msg_attitude_target_decode(last_msg, &packet2);
  3472. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3473. memset(&packet2, 0, sizeof(packet2));
  3474. mavlink_msg_attitude_target_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.type_mask , packet1.q , packet1.body_roll_rate , packet1.body_pitch_rate , packet1.body_yaw_rate , packet1.thrust );
  3475. mavlink_msg_attitude_target_decode(last_msg, &packet2);
  3476. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3477. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3478. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ATTITUDE_TARGET") != NULL);
  3479. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ATTITUDE_TARGET) != NULL);
  3480. #endif
  3481. }
  3482. static void mavlink_test_set_position_target_local_ned(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3483. {
  3484. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3485. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3486. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED >= 256) {
  3487. return;
  3488. }
  3489. #endif
  3490. mavlink_message_t msg;
  3491. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3492. uint16_t i;
  3493. mavlink_set_position_target_local_ned_t packet_in = {
  3494. 963497464,45.0,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,19731,27,94,161
  3495. };
  3496. mavlink_set_position_target_local_ned_t packet1, packet2;
  3497. memset(&packet1, 0, sizeof(packet1));
  3498. packet1.time_boot_ms = packet_in.time_boot_ms;
  3499. packet1.x = packet_in.x;
  3500. packet1.y = packet_in.y;
  3501. packet1.z = packet_in.z;
  3502. packet1.vx = packet_in.vx;
  3503. packet1.vy = packet_in.vy;
  3504. packet1.vz = packet_in.vz;
  3505. packet1.afx = packet_in.afx;
  3506. packet1.afy = packet_in.afy;
  3507. packet1.afz = packet_in.afz;
  3508. packet1.yaw = packet_in.yaw;
  3509. packet1.yaw_rate = packet_in.yaw_rate;
  3510. packet1.type_mask = packet_in.type_mask;
  3511. packet1.target_system = packet_in.target_system;
  3512. packet1.target_component = packet_in.target_component;
  3513. packet1.coordinate_frame = packet_in.coordinate_frame;
  3514. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3515. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3516. // cope with extensions
  3517. memset(MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED_MIN_LEN);
  3518. }
  3519. #endif
  3520. memset(&packet2, 0, sizeof(packet2));
  3521. mavlink_msg_set_position_target_local_ned_encode(system_id, component_id, &msg, &packet1);
  3522. mavlink_msg_set_position_target_local_ned_decode(&msg, &packet2);
  3523. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3524. memset(&packet2, 0, sizeof(packet2));
  3525. mavlink_msg_set_position_target_local_ned_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.coordinate_frame , packet1.type_mask , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3526. mavlink_msg_set_position_target_local_ned_decode(&msg, &packet2);
  3527. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3528. memset(&packet2, 0, sizeof(packet2));
  3529. mavlink_msg_set_position_target_local_ned_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.coordinate_frame , packet1.type_mask , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3530. mavlink_msg_set_position_target_local_ned_decode(&msg, &packet2);
  3531. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3532. memset(&packet2, 0, sizeof(packet2));
  3533. mavlink_msg_to_send_buffer(buffer, &msg);
  3534. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3535. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3536. }
  3537. mavlink_msg_set_position_target_local_ned_decode(last_msg, &packet2);
  3538. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3539. memset(&packet2, 0, sizeof(packet2));
  3540. mavlink_msg_set_position_target_local_ned_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.coordinate_frame , packet1.type_mask , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3541. mavlink_msg_set_position_target_local_ned_decode(last_msg, &packet2);
  3542. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3543. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3544. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_POSITION_TARGET_LOCAL_NED") != NULL);
  3545. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED) != NULL);
  3546. #endif
  3547. }
  3548. static void mavlink_test_position_target_local_ned(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3549. {
  3550. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3551. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3552. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_POSITION_TARGET_LOCAL_NED >= 256) {
  3553. return;
  3554. }
  3555. #endif
  3556. mavlink_message_t msg;
  3557. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3558. uint16_t i;
  3559. mavlink_position_target_local_ned_t packet_in = {
  3560. 963497464,45.0,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,19731,27
  3561. };
  3562. mavlink_position_target_local_ned_t packet1, packet2;
  3563. memset(&packet1, 0, sizeof(packet1));
  3564. packet1.time_boot_ms = packet_in.time_boot_ms;
  3565. packet1.x = packet_in.x;
  3566. packet1.y = packet_in.y;
  3567. packet1.z = packet_in.z;
  3568. packet1.vx = packet_in.vx;
  3569. packet1.vy = packet_in.vy;
  3570. packet1.vz = packet_in.vz;
  3571. packet1.afx = packet_in.afx;
  3572. packet1.afy = packet_in.afy;
  3573. packet1.afz = packet_in.afz;
  3574. packet1.yaw = packet_in.yaw;
  3575. packet1.yaw_rate = packet_in.yaw_rate;
  3576. packet1.type_mask = packet_in.type_mask;
  3577. packet1.coordinate_frame = packet_in.coordinate_frame;
  3578. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3579. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3580. // cope with extensions
  3581. memset(MAVLINK_MSG_ID_POSITION_TARGET_LOCAL_NED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_POSITION_TARGET_LOCAL_NED_MIN_LEN);
  3582. }
  3583. #endif
  3584. memset(&packet2, 0, sizeof(packet2));
  3585. mavlink_msg_position_target_local_ned_encode(system_id, component_id, &msg, &packet1);
  3586. mavlink_msg_position_target_local_ned_decode(&msg, &packet2);
  3587. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3588. memset(&packet2, 0, sizeof(packet2));
  3589. mavlink_msg_position_target_local_ned_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.coordinate_frame , packet1.type_mask , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3590. mavlink_msg_position_target_local_ned_decode(&msg, &packet2);
  3591. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3592. memset(&packet2, 0, sizeof(packet2));
  3593. mavlink_msg_position_target_local_ned_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.coordinate_frame , packet1.type_mask , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3594. mavlink_msg_position_target_local_ned_decode(&msg, &packet2);
  3595. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3596. memset(&packet2, 0, sizeof(packet2));
  3597. mavlink_msg_to_send_buffer(buffer, &msg);
  3598. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3599. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3600. }
  3601. mavlink_msg_position_target_local_ned_decode(last_msg, &packet2);
  3602. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3603. memset(&packet2, 0, sizeof(packet2));
  3604. mavlink_msg_position_target_local_ned_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.coordinate_frame , packet1.type_mask , packet1.x , packet1.y , packet1.z , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3605. mavlink_msg_position_target_local_ned_decode(last_msg, &packet2);
  3606. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3607. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3608. MAVLINK_ASSERT(mavlink_get_message_info_by_name("POSITION_TARGET_LOCAL_NED") != NULL);
  3609. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_POSITION_TARGET_LOCAL_NED) != NULL);
  3610. #endif
  3611. }
  3612. static void mavlink_test_set_position_target_global_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3613. {
  3614. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3615. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3616. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_POSITION_TARGET_GLOBAL_INT >= 256) {
  3617. return;
  3618. }
  3619. #endif
  3620. mavlink_message_t msg;
  3621. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3622. uint16_t i;
  3623. mavlink_set_position_target_global_int_t packet_in = {
  3624. 963497464,963497672,963497880,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,19731,27,94,161
  3625. };
  3626. mavlink_set_position_target_global_int_t packet1, packet2;
  3627. memset(&packet1, 0, sizeof(packet1));
  3628. packet1.time_boot_ms = packet_in.time_boot_ms;
  3629. packet1.lat_int = packet_in.lat_int;
  3630. packet1.lon_int = packet_in.lon_int;
  3631. packet1.alt = packet_in.alt;
  3632. packet1.vx = packet_in.vx;
  3633. packet1.vy = packet_in.vy;
  3634. packet1.vz = packet_in.vz;
  3635. packet1.afx = packet_in.afx;
  3636. packet1.afy = packet_in.afy;
  3637. packet1.afz = packet_in.afz;
  3638. packet1.yaw = packet_in.yaw;
  3639. packet1.yaw_rate = packet_in.yaw_rate;
  3640. packet1.type_mask = packet_in.type_mask;
  3641. packet1.target_system = packet_in.target_system;
  3642. packet1.target_component = packet_in.target_component;
  3643. packet1.coordinate_frame = packet_in.coordinate_frame;
  3644. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3645. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3646. // cope with extensions
  3647. memset(MAVLINK_MSG_ID_SET_POSITION_TARGET_GLOBAL_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_POSITION_TARGET_GLOBAL_INT_MIN_LEN);
  3648. }
  3649. #endif
  3650. memset(&packet2, 0, sizeof(packet2));
  3651. mavlink_msg_set_position_target_global_int_encode(system_id, component_id, &msg, &packet1);
  3652. mavlink_msg_set_position_target_global_int_decode(&msg, &packet2);
  3653. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3654. memset(&packet2, 0, sizeof(packet2));
  3655. mavlink_msg_set_position_target_global_int_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.coordinate_frame , packet1.type_mask , packet1.lat_int , packet1.lon_int , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3656. mavlink_msg_set_position_target_global_int_decode(&msg, &packet2);
  3657. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3658. memset(&packet2, 0, sizeof(packet2));
  3659. mavlink_msg_set_position_target_global_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.coordinate_frame , packet1.type_mask , packet1.lat_int , packet1.lon_int , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3660. mavlink_msg_set_position_target_global_int_decode(&msg, &packet2);
  3661. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3662. memset(&packet2, 0, sizeof(packet2));
  3663. mavlink_msg_to_send_buffer(buffer, &msg);
  3664. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3665. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3666. }
  3667. mavlink_msg_set_position_target_global_int_decode(last_msg, &packet2);
  3668. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3669. memset(&packet2, 0, sizeof(packet2));
  3670. mavlink_msg_set_position_target_global_int_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.target_system , packet1.target_component , packet1.coordinate_frame , packet1.type_mask , packet1.lat_int , packet1.lon_int , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3671. mavlink_msg_set_position_target_global_int_decode(last_msg, &packet2);
  3672. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3673. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3674. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_POSITION_TARGET_GLOBAL_INT") != NULL);
  3675. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_POSITION_TARGET_GLOBAL_INT) != NULL);
  3676. #endif
  3677. }
  3678. static void mavlink_test_position_target_global_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3679. {
  3680. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3681. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3682. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_POSITION_TARGET_GLOBAL_INT >= 256) {
  3683. return;
  3684. }
  3685. #endif
  3686. mavlink_message_t msg;
  3687. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3688. uint16_t i;
  3689. mavlink_position_target_global_int_t packet_in = {
  3690. 963497464,963497672,963497880,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,19731,27
  3691. };
  3692. mavlink_position_target_global_int_t packet1, packet2;
  3693. memset(&packet1, 0, sizeof(packet1));
  3694. packet1.time_boot_ms = packet_in.time_boot_ms;
  3695. packet1.lat_int = packet_in.lat_int;
  3696. packet1.lon_int = packet_in.lon_int;
  3697. packet1.alt = packet_in.alt;
  3698. packet1.vx = packet_in.vx;
  3699. packet1.vy = packet_in.vy;
  3700. packet1.vz = packet_in.vz;
  3701. packet1.afx = packet_in.afx;
  3702. packet1.afy = packet_in.afy;
  3703. packet1.afz = packet_in.afz;
  3704. packet1.yaw = packet_in.yaw;
  3705. packet1.yaw_rate = packet_in.yaw_rate;
  3706. packet1.type_mask = packet_in.type_mask;
  3707. packet1.coordinate_frame = packet_in.coordinate_frame;
  3708. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3709. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3710. // cope with extensions
  3711. memset(MAVLINK_MSG_ID_POSITION_TARGET_GLOBAL_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_POSITION_TARGET_GLOBAL_INT_MIN_LEN);
  3712. }
  3713. #endif
  3714. memset(&packet2, 0, sizeof(packet2));
  3715. mavlink_msg_position_target_global_int_encode(system_id, component_id, &msg, &packet1);
  3716. mavlink_msg_position_target_global_int_decode(&msg, &packet2);
  3717. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3718. memset(&packet2, 0, sizeof(packet2));
  3719. mavlink_msg_position_target_global_int_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.coordinate_frame , packet1.type_mask , packet1.lat_int , packet1.lon_int , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3720. mavlink_msg_position_target_global_int_decode(&msg, &packet2);
  3721. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3722. memset(&packet2, 0, sizeof(packet2));
  3723. mavlink_msg_position_target_global_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.coordinate_frame , packet1.type_mask , packet1.lat_int , packet1.lon_int , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3724. mavlink_msg_position_target_global_int_decode(&msg, &packet2);
  3725. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3726. memset(&packet2, 0, sizeof(packet2));
  3727. mavlink_msg_to_send_buffer(buffer, &msg);
  3728. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3729. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3730. }
  3731. mavlink_msg_position_target_global_int_decode(last_msg, &packet2);
  3732. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3733. memset(&packet2, 0, sizeof(packet2));
  3734. mavlink_msg_position_target_global_int_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.coordinate_frame , packet1.type_mask , packet1.lat_int , packet1.lon_int , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.afx , packet1.afy , packet1.afz , packet1.yaw , packet1.yaw_rate );
  3735. mavlink_msg_position_target_global_int_decode(last_msg, &packet2);
  3736. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3737. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3738. MAVLINK_ASSERT(mavlink_get_message_info_by_name("POSITION_TARGET_GLOBAL_INT") != NULL);
  3739. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_POSITION_TARGET_GLOBAL_INT) != NULL);
  3740. #endif
  3741. }
  3742. static void mavlink_test_local_position_ned_system_global_offset(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3743. {
  3744. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3745. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3746. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET >= 256) {
  3747. return;
  3748. }
  3749. #endif
  3750. mavlink_message_t msg;
  3751. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3752. uint16_t i;
  3753. mavlink_local_position_ned_system_global_offset_t packet_in = {
  3754. 963497464,45.0,73.0,101.0,129.0,157.0,185.0
  3755. };
  3756. mavlink_local_position_ned_system_global_offset_t packet1, packet2;
  3757. memset(&packet1, 0, sizeof(packet1));
  3758. packet1.time_boot_ms = packet_in.time_boot_ms;
  3759. packet1.x = packet_in.x;
  3760. packet1.y = packet_in.y;
  3761. packet1.z = packet_in.z;
  3762. packet1.roll = packet_in.roll;
  3763. packet1.pitch = packet_in.pitch;
  3764. packet1.yaw = packet_in.yaw;
  3765. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3766. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3767. // cope with extensions
  3768. memset(MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_MIN_LEN);
  3769. }
  3770. #endif
  3771. memset(&packet2, 0, sizeof(packet2));
  3772. mavlink_msg_local_position_ned_system_global_offset_encode(system_id, component_id, &msg, &packet1);
  3773. mavlink_msg_local_position_ned_system_global_offset_decode(&msg, &packet2);
  3774. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3775. memset(&packet2, 0, sizeof(packet2));
  3776. mavlink_msg_local_position_ned_system_global_offset_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw );
  3777. mavlink_msg_local_position_ned_system_global_offset_decode(&msg, &packet2);
  3778. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3779. memset(&packet2, 0, sizeof(packet2));
  3780. mavlink_msg_local_position_ned_system_global_offset_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw );
  3781. mavlink_msg_local_position_ned_system_global_offset_decode(&msg, &packet2);
  3782. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3783. memset(&packet2, 0, sizeof(packet2));
  3784. mavlink_msg_to_send_buffer(buffer, &msg);
  3785. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3786. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3787. }
  3788. mavlink_msg_local_position_ned_system_global_offset_decode(last_msg, &packet2);
  3789. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3790. memset(&packet2, 0, sizeof(packet2));
  3791. mavlink_msg_local_position_ned_system_global_offset_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw );
  3792. mavlink_msg_local_position_ned_system_global_offset_decode(last_msg, &packet2);
  3793. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3794. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3795. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET") != NULL);
  3796. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET) != NULL);
  3797. #endif
  3798. }
  3799. static void mavlink_test_hil_state(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3800. {
  3801. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3802. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3803. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_STATE >= 256) {
  3804. return;
  3805. }
  3806. #endif
  3807. mavlink_message_t msg;
  3808. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3809. uint16_t i;
  3810. mavlink_hil_state_t packet_in = {
  3811. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,963499128,963499336,963499544,19523,19627,19731,19835,19939,20043
  3812. };
  3813. mavlink_hil_state_t packet1, packet2;
  3814. memset(&packet1, 0, sizeof(packet1));
  3815. packet1.time_usec = packet_in.time_usec;
  3816. packet1.roll = packet_in.roll;
  3817. packet1.pitch = packet_in.pitch;
  3818. packet1.yaw = packet_in.yaw;
  3819. packet1.rollspeed = packet_in.rollspeed;
  3820. packet1.pitchspeed = packet_in.pitchspeed;
  3821. packet1.yawspeed = packet_in.yawspeed;
  3822. packet1.lat = packet_in.lat;
  3823. packet1.lon = packet_in.lon;
  3824. packet1.alt = packet_in.alt;
  3825. packet1.vx = packet_in.vx;
  3826. packet1.vy = packet_in.vy;
  3827. packet1.vz = packet_in.vz;
  3828. packet1.xacc = packet_in.xacc;
  3829. packet1.yacc = packet_in.yacc;
  3830. packet1.zacc = packet_in.zacc;
  3831. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3832. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3833. // cope with extensions
  3834. memset(MAVLINK_MSG_ID_HIL_STATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_STATE_MIN_LEN);
  3835. }
  3836. #endif
  3837. memset(&packet2, 0, sizeof(packet2));
  3838. mavlink_msg_hil_state_encode(system_id, component_id, &msg, &packet1);
  3839. mavlink_msg_hil_state_decode(&msg, &packet2);
  3840. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3841. memset(&packet2, 0, sizeof(packet2));
  3842. mavlink_msg_hil_state_pack(system_id, component_id, &msg , packet1.time_usec , packet1.roll , packet1.pitch , packet1.yaw , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.lat , packet1.lon , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.xacc , packet1.yacc , packet1.zacc );
  3843. mavlink_msg_hil_state_decode(&msg, &packet2);
  3844. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3845. memset(&packet2, 0, sizeof(packet2));
  3846. mavlink_msg_hil_state_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.roll , packet1.pitch , packet1.yaw , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.lat , packet1.lon , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.xacc , packet1.yacc , packet1.zacc );
  3847. mavlink_msg_hil_state_decode(&msg, &packet2);
  3848. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3849. memset(&packet2, 0, sizeof(packet2));
  3850. mavlink_msg_to_send_buffer(buffer, &msg);
  3851. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3852. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3853. }
  3854. mavlink_msg_hil_state_decode(last_msg, &packet2);
  3855. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3856. memset(&packet2, 0, sizeof(packet2));
  3857. mavlink_msg_hil_state_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.roll , packet1.pitch , packet1.yaw , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.lat , packet1.lon , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.xacc , packet1.yacc , packet1.zacc );
  3858. mavlink_msg_hil_state_decode(last_msg, &packet2);
  3859. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3860. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3861. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_STATE") != NULL);
  3862. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_STATE) != NULL);
  3863. #endif
  3864. }
  3865. static void mavlink_test_hil_controls(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3866. {
  3867. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3868. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3869. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_CONTROLS >= 256) {
  3870. return;
  3871. }
  3872. #endif
  3873. mavlink_message_t msg;
  3874. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3875. uint16_t i;
  3876. mavlink_hil_controls_t packet_in = {
  3877. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,125,192
  3878. };
  3879. mavlink_hil_controls_t packet1, packet2;
  3880. memset(&packet1, 0, sizeof(packet1));
  3881. packet1.time_usec = packet_in.time_usec;
  3882. packet1.roll_ailerons = packet_in.roll_ailerons;
  3883. packet1.pitch_elevator = packet_in.pitch_elevator;
  3884. packet1.yaw_rudder = packet_in.yaw_rudder;
  3885. packet1.throttle = packet_in.throttle;
  3886. packet1.aux1 = packet_in.aux1;
  3887. packet1.aux2 = packet_in.aux2;
  3888. packet1.aux3 = packet_in.aux3;
  3889. packet1.aux4 = packet_in.aux4;
  3890. packet1.mode = packet_in.mode;
  3891. packet1.nav_mode = packet_in.nav_mode;
  3892. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3893. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3894. // cope with extensions
  3895. memset(MAVLINK_MSG_ID_HIL_CONTROLS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_CONTROLS_MIN_LEN);
  3896. }
  3897. #endif
  3898. memset(&packet2, 0, sizeof(packet2));
  3899. mavlink_msg_hil_controls_encode(system_id, component_id, &msg, &packet1);
  3900. mavlink_msg_hil_controls_decode(&msg, &packet2);
  3901. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3902. memset(&packet2, 0, sizeof(packet2));
  3903. mavlink_msg_hil_controls_pack(system_id, component_id, &msg , packet1.time_usec , packet1.roll_ailerons , packet1.pitch_elevator , packet1.yaw_rudder , packet1.throttle , packet1.aux1 , packet1.aux2 , packet1.aux3 , packet1.aux4 , packet1.mode , packet1.nav_mode );
  3904. mavlink_msg_hil_controls_decode(&msg, &packet2);
  3905. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3906. memset(&packet2, 0, sizeof(packet2));
  3907. mavlink_msg_hil_controls_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.roll_ailerons , packet1.pitch_elevator , packet1.yaw_rudder , packet1.throttle , packet1.aux1 , packet1.aux2 , packet1.aux3 , packet1.aux4 , packet1.mode , packet1.nav_mode );
  3908. mavlink_msg_hil_controls_decode(&msg, &packet2);
  3909. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3910. memset(&packet2, 0, sizeof(packet2));
  3911. mavlink_msg_to_send_buffer(buffer, &msg);
  3912. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3913. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3914. }
  3915. mavlink_msg_hil_controls_decode(last_msg, &packet2);
  3916. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3917. memset(&packet2, 0, sizeof(packet2));
  3918. mavlink_msg_hil_controls_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.roll_ailerons , packet1.pitch_elevator , packet1.yaw_rudder , packet1.throttle , packet1.aux1 , packet1.aux2 , packet1.aux3 , packet1.aux4 , packet1.mode , packet1.nav_mode );
  3919. mavlink_msg_hil_controls_decode(last_msg, &packet2);
  3920. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3921. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3922. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_CONTROLS") != NULL);
  3923. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_CONTROLS) != NULL);
  3924. #endif
  3925. }
  3926. static void mavlink_test_hil_rc_inputs_raw(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3927. {
  3928. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3929. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3930. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW >= 256) {
  3931. return;
  3932. }
  3933. #endif
  3934. mavlink_message_t msg;
  3935. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  3936. uint16_t i;
  3937. mavlink_hil_rc_inputs_raw_t packet_in = {
  3938. 93372036854775807ULL,17651,17755,17859,17963,18067,18171,18275,18379,18483,18587,18691,18795,101
  3939. };
  3940. mavlink_hil_rc_inputs_raw_t packet1, packet2;
  3941. memset(&packet1, 0, sizeof(packet1));
  3942. packet1.time_usec = packet_in.time_usec;
  3943. packet1.chan1_raw = packet_in.chan1_raw;
  3944. packet1.chan2_raw = packet_in.chan2_raw;
  3945. packet1.chan3_raw = packet_in.chan3_raw;
  3946. packet1.chan4_raw = packet_in.chan4_raw;
  3947. packet1.chan5_raw = packet_in.chan5_raw;
  3948. packet1.chan6_raw = packet_in.chan6_raw;
  3949. packet1.chan7_raw = packet_in.chan7_raw;
  3950. packet1.chan8_raw = packet_in.chan8_raw;
  3951. packet1.chan9_raw = packet_in.chan9_raw;
  3952. packet1.chan10_raw = packet_in.chan10_raw;
  3953. packet1.chan11_raw = packet_in.chan11_raw;
  3954. packet1.chan12_raw = packet_in.chan12_raw;
  3955. packet1.rssi = packet_in.rssi;
  3956. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3957. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  3958. // cope with extensions
  3959. memset(MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW_MIN_LEN);
  3960. }
  3961. #endif
  3962. memset(&packet2, 0, sizeof(packet2));
  3963. mavlink_msg_hil_rc_inputs_raw_encode(system_id, component_id, &msg, &packet1);
  3964. mavlink_msg_hil_rc_inputs_raw_decode(&msg, &packet2);
  3965. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3966. memset(&packet2, 0, sizeof(packet2));
  3967. mavlink_msg_hil_rc_inputs_raw_pack(system_id, component_id, &msg , packet1.time_usec , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.rssi );
  3968. mavlink_msg_hil_rc_inputs_raw_decode(&msg, &packet2);
  3969. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3970. memset(&packet2, 0, sizeof(packet2));
  3971. mavlink_msg_hil_rc_inputs_raw_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.rssi );
  3972. mavlink_msg_hil_rc_inputs_raw_decode(&msg, &packet2);
  3973. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3974. memset(&packet2, 0, sizeof(packet2));
  3975. mavlink_msg_to_send_buffer(buffer, &msg);
  3976. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  3977. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  3978. }
  3979. mavlink_msg_hil_rc_inputs_raw_decode(last_msg, &packet2);
  3980. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3981. memset(&packet2, 0, sizeof(packet2));
  3982. mavlink_msg_hil_rc_inputs_raw_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.chan1_raw , packet1.chan2_raw , packet1.chan3_raw , packet1.chan4_raw , packet1.chan5_raw , packet1.chan6_raw , packet1.chan7_raw , packet1.chan8_raw , packet1.chan9_raw , packet1.chan10_raw , packet1.chan11_raw , packet1.chan12_raw , packet1.rssi );
  3983. mavlink_msg_hil_rc_inputs_raw_decode(last_msg, &packet2);
  3984. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  3985. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  3986. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_RC_INPUTS_RAW") != NULL);
  3987. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW) != NULL);
  3988. #endif
  3989. }
  3990. static void mavlink_test_hil_actuator_controls(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  3991. {
  3992. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  3993. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  3994. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_ACTUATOR_CONTROLS >= 256) {
  3995. return;
  3996. }
  3997. #endif
  3998. mavlink_message_t msg;
  3999. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4000. uint16_t i;
  4001. mavlink_hil_actuator_controls_t packet_in = {
  4002. 93372036854775807ULL,93372036854776311ULL,{ 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0 },245
  4003. };
  4004. mavlink_hil_actuator_controls_t packet1, packet2;
  4005. memset(&packet1, 0, sizeof(packet1));
  4006. packet1.time_usec = packet_in.time_usec;
  4007. packet1.flags = packet_in.flags;
  4008. packet1.mode = packet_in.mode;
  4009. mav_array_memcpy(packet1.controls, packet_in.controls, sizeof(float)*16);
  4010. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4011. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4012. // cope with extensions
  4013. memset(MAVLINK_MSG_ID_HIL_ACTUATOR_CONTROLS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_ACTUATOR_CONTROLS_MIN_LEN);
  4014. }
  4015. #endif
  4016. memset(&packet2, 0, sizeof(packet2));
  4017. mavlink_msg_hil_actuator_controls_encode(system_id, component_id, &msg, &packet1);
  4018. mavlink_msg_hil_actuator_controls_decode(&msg, &packet2);
  4019. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4020. memset(&packet2, 0, sizeof(packet2));
  4021. mavlink_msg_hil_actuator_controls_pack(system_id, component_id, &msg , packet1.time_usec , packet1.controls , packet1.mode , packet1.flags );
  4022. mavlink_msg_hil_actuator_controls_decode(&msg, &packet2);
  4023. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4024. memset(&packet2, 0, sizeof(packet2));
  4025. mavlink_msg_hil_actuator_controls_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.controls , packet1.mode , packet1.flags );
  4026. mavlink_msg_hil_actuator_controls_decode(&msg, &packet2);
  4027. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4028. memset(&packet2, 0, sizeof(packet2));
  4029. mavlink_msg_to_send_buffer(buffer, &msg);
  4030. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4031. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4032. }
  4033. mavlink_msg_hil_actuator_controls_decode(last_msg, &packet2);
  4034. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4035. memset(&packet2, 0, sizeof(packet2));
  4036. mavlink_msg_hil_actuator_controls_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.controls , packet1.mode , packet1.flags );
  4037. mavlink_msg_hil_actuator_controls_decode(last_msg, &packet2);
  4038. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4039. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4040. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_ACTUATOR_CONTROLS") != NULL);
  4041. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_ACTUATOR_CONTROLS) != NULL);
  4042. #endif
  4043. }
  4044. static void mavlink_test_optical_flow(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4045. {
  4046. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4047. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4048. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPTICAL_FLOW >= 256) {
  4049. return;
  4050. }
  4051. #endif
  4052. mavlink_message_t msg;
  4053. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4054. uint16_t i;
  4055. mavlink_optical_flow_t packet_in = {
  4056. 93372036854775807ULL,73.0,101.0,129.0,18275,18379,77,144,199.0,227.0
  4057. };
  4058. mavlink_optical_flow_t packet1, packet2;
  4059. memset(&packet1, 0, sizeof(packet1));
  4060. packet1.time_usec = packet_in.time_usec;
  4061. packet1.flow_comp_m_x = packet_in.flow_comp_m_x;
  4062. packet1.flow_comp_m_y = packet_in.flow_comp_m_y;
  4063. packet1.ground_distance = packet_in.ground_distance;
  4064. packet1.flow_x = packet_in.flow_x;
  4065. packet1.flow_y = packet_in.flow_y;
  4066. packet1.sensor_id = packet_in.sensor_id;
  4067. packet1.quality = packet_in.quality;
  4068. packet1.flow_rate_x = packet_in.flow_rate_x;
  4069. packet1.flow_rate_y = packet_in.flow_rate_y;
  4070. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4071. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4072. // cope with extensions
  4073. memset(MAVLINK_MSG_ID_OPTICAL_FLOW_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPTICAL_FLOW_MIN_LEN);
  4074. }
  4075. #endif
  4076. memset(&packet2, 0, sizeof(packet2));
  4077. mavlink_msg_optical_flow_encode(system_id, component_id, &msg, &packet1);
  4078. mavlink_msg_optical_flow_decode(&msg, &packet2);
  4079. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4080. memset(&packet2, 0, sizeof(packet2));
  4081. mavlink_msg_optical_flow_pack(system_id, component_id, &msg , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.flow_comp_m_x , packet1.flow_comp_m_y , packet1.quality , packet1.ground_distance , packet1.flow_rate_x , packet1.flow_rate_y );
  4082. mavlink_msg_optical_flow_decode(&msg, &packet2);
  4083. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4084. memset(&packet2, 0, sizeof(packet2));
  4085. mavlink_msg_optical_flow_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.flow_comp_m_x , packet1.flow_comp_m_y , packet1.quality , packet1.ground_distance , packet1.flow_rate_x , packet1.flow_rate_y );
  4086. mavlink_msg_optical_flow_decode(&msg, &packet2);
  4087. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4088. memset(&packet2, 0, sizeof(packet2));
  4089. mavlink_msg_to_send_buffer(buffer, &msg);
  4090. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4091. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4092. }
  4093. mavlink_msg_optical_flow_decode(last_msg, &packet2);
  4094. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4095. memset(&packet2, 0, sizeof(packet2));
  4096. mavlink_msg_optical_flow_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.flow_comp_m_x , packet1.flow_comp_m_y , packet1.quality , packet1.ground_distance , packet1.flow_rate_x , packet1.flow_rate_y );
  4097. mavlink_msg_optical_flow_decode(last_msg, &packet2);
  4098. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4099. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4100. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPTICAL_FLOW") != NULL);
  4101. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPTICAL_FLOW) != NULL);
  4102. #endif
  4103. }
  4104. static void mavlink_test_global_vision_position_estimate(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4105. {
  4106. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4107. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4108. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE >= 256) {
  4109. return;
  4110. }
  4111. #endif
  4112. mavlink_message_t msg;
  4113. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4114. uint16_t i;
  4115. mavlink_global_vision_position_estimate_t packet_in = {
  4116. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,{ 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0, 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0 },97
  4117. };
  4118. mavlink_global_vision_position_estimate_t packet1, packet2;
  4119. memset(&packet1, 0, sizeof(packet1));
  4120. packet1.usec = packet_in.usec;
  4121. packet1.x = packet_in.x;
  4122. packet1.y = packet_in.y;
  4123. packet1.z = packet_in.z;
  4124. packet1.roll = packet_in.roll;
  4125. packet1.pitch = packet_in.pitch;
  4126. packet1.yaw = packet_in.yaw;
  4127. packet1.reset_counter = packet_in.reset_counter;
  4128. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*21);
  4129. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4130. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4131. // cope with extensions
  4132. memset(MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE_MIN_LEN);
  4133. }
  4134. #endif
  4135. memset(&packet2, 0, sizeof(packet2));
  4136. mavlink_msg_global_vision_position_estimate_encode(system_id, component_id, &msg, &packet1);
  4137. mavlink_msg_global_vision_position_estimate_decode(&msg, &packet2);
  4138. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4139. memset(&packet2, 0, sizeof(packet2));
  4140. mavlink_msg_global_vision_position_estimate_pack(system_id, component_id, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance , packet1.reset_counter );
  4141. mavlink_msg_global_vision_position_estimate_decode(&msg, &packet2);
  4142. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4143. memset(&packet2, 0, sizeof(packet2));
  4144. mavlink_msg_global_vision_position_estimate_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance , packet1.reset_counter );
  4145. mavlink_msg_global_vision_position_estimate_decode(&msg, &packet2);
  4146. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4147. memset(&packet2, 0, sizeof(packet2));
  4148. mavlink_msg_to_send_buffer(buffer, &msg);
  4149. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4150. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4151. }
  4152. mavlink_msg_global_vision_position_estimate_decode(last_msg, &packet2);
  4153. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4154. memset(&packet2, 0, sizeof(packet2));
  4155. mavlink_msg_global_vision_position_estimate_send(MAVLINK_COMM_1 , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance , packet1.reset_counter );
  4156. mavlink_msg_global_vision_position_estimate_decode(last_msg, &packet2);
  4157. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4158. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4159. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GLOBAL_VISION_POSITION_ESTIMATE") != NULL);
  4160. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE) != NULL);
  4161. #endif
  4162. }
  4163. static void mavlink_test_vision_position_estimate(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4164. {
  4165. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4166. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4167. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE >= 256) {
  4168. return;
  4169. }
  4170. #endif
  4171. mavlink_message_t msg;
  4172. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4173. uint16_t i;
  4174. mavlink_vision_position_estimate_t packet_in = {
  4175. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,{ 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0, 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0 },97
  4176. };
  4177. mavlink_vision_position_estimate_t packet1, packet2;
  4178. memset(&packet1, 0, sizeof(packet1));
  4179. packet1.usec = packet_in.usec;
  4180. packet1.x = packet_in.x;
  4181. packet1.y = packet_in.y;
  4182. packet1.z = packet_in.z;
  4183. packet1.roll = packet_in.roll;
  4184. packet1.pitch = packet_in.pitch;
  4185. packet1.yaw = packet_in.yaw;
  4186. packet1.reset_counter = packet_in.reset_counter;
  4187. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*21);
  4188. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4189. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4190. // cope with extensions
  4191. memset(MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN);
  4192. }
  4193. #endif
  4194. memset(&packet2, 0, sizeof(packet2));
  4195. mavlink_msg_vision_position_estimate_encode(system_id, component_id, &msg, &packet1);
  4196. mavlink_msg_vision_position_estimate_decode(&msg, &packet2);
  4197. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4198. memset(&packet2, 0, sizeof(packet2));
  4199. mavlink_msg_vision_position_estimate_pack(system_id, component_id, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance , packet1.reset_counter );
  4200. mavlink_msg_vision_position_estimate_decode(&msg, &packet2);
  4201. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4202. memset(&packet2, 0, sizeof(packet2));
  4203. mavlink_msg_vision_position_estimate_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance , packet1.reset_counter );
  4204. mavlink_msg_vision_position_estimate_decode(&msg, &packet2);
  4205. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4206. memset(&packet2, 0, sizeof(packet2));
  4207. mavlink_msg_to_send_buffer(buffer, &msg);
  4208. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4209. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4210. }
  4211. mavlink_msg_vision_position_estimate_decode(last_msg, &packet2);
  4212. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4213. memset(&packet2, 0, sizeof(packet2));
  4214. mavlink_msg_vision_position_estimate_send(MAVLINK_COMM_1 , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance , packet1.reset_counter );
  4215. mavlink_msg_vision_position_estimate_decode(last_msg, &packet2);
  4216. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4217. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4218. MAVLINK_ASSERT(mavlink_get_message_info_by_name("VISION_POSITION_ESTIMATE") != NULL);
  4219. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE) != NULL);
  4220. #endif
  4221. }
  4222. static void mavlink_test_vision_speed_estimate(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4223. {
  4224. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4225. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4226. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE >= 256) {
  4227. return;
  4228. }
  4229. #endif
  4230. mavlink_message_t msg;
  4231. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4232. uint16_t i;
  4233. mavlink_vision_speed_estimate_t packet_in = {
  4234. 93372036854775807ULL,73.0,101.0,129.0,{ 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0 },173
  4235. };
  4236. mavlink_vision_speed_estimate_t packet1, packet2;
  4237. memset(&packet1, 0, sizeof(packet1));
  4238. packet1.usec = packet_in.usec;
  4239. packet1.x = packet_in.x;
  4240. packet1.y = packet_in.y;
  4241. packet1.z = packet_in.z;
  4242. packet1.reset_counter = packet_in.reset_counter;
  4243. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*9);
  4244. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4245. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4246. // cope with extensions
  4247. memset(MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE_MIN_LEN);
  4248. }
  4249. #endif
  4250. memset(&packet2, 0, sizeof(packet2));
  4251. mavlink_msg_vision_speed_estimate_encode(system_id, component_id, &msg, &packet1);
  4252. mavlink_msg_vision_speed_estimate_decode(&msg, &packet2);
  4253. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4254. memset(&packet2, 0, sizeof(packet2));
  4255. mavlink_msg_vision_speed_estimate_pack(system_id, component_id, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.covariance , packet1.reset_counter );
  4256. mavlink_msg_vision_speed_estimate_decode(&msg, &packet2);
  4257. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4258. memset(&packet2, 0, sizeof(packet2));
  4259. mavlink_msg_vision_speed_estimate_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.covariance , packet1.reset_counter );
  4260. mavlink_msg_vision_speed_estimate_decode(&msg, &packet2);
  4261. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4262. memset(&packet2, 0, sizeof(packet2));
  4263. mavlink_msg_to_send_buffer(buffer, &msg);
  4264. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4265. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4266. }
  4267. mavlink_msg_vision_speed_estimate_decode(last_msg, &packet2);
  4268. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4269. memset(&packet2, 0, sizeof(packet2));
  4270. mavlink_msg_vision_speed_estimate_send(MAVLINK_COMM_1 , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.covariance , packet1.reset_counter );
  4271. mavlink_msg_vision_speed_estimate_decode(last_msg, &packet2);
  4272. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4273. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4274. MAVLINK_ASSERT(mavlink_get_message_info_by_name("VISION_SPEED_ESTIMATE") != NULL);
  4275. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE) != NULL);
  4276. #endif
  4277. }
  4278. static void mavlink_test_vicon_position_estimate(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4279. {
  4280. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4281. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4282. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE >= 256) {
  4283. return;
  4284. }
  4285. #endif
  4286. mavlink_message_t msg;
  4287. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4288. uint16_t i;
  4289. mavlink_vicon_position_estimate_t packet_in = {
  4290. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,{ 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0, 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0 }
  4291. };
  4292. mavlink_vicon_position_estimate_t packet1, packet2;
  4293. memset(&packet1, 0, sizeof(packet1));
  4294. packet1.usec = packet_in.usec;
  4295. packet1.x = packet_in.x;
  4296. packet1.y = packet_in.y;
  4297. packet1.z = packet_in.z;
  4298. packet1.roll = packet_in.roll;
  4299. packet1.pitch = packet_in.pitch;
  4300. packet1.yaw = packet_in.yaw;
  4301. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*21);
  4302. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4303. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4304. // cope with extensions
  4305. memset(MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE_MIN_LEN);
  4306. }
  4307. #endif
  4308. memset(&packet2, 0, sizeof(packet2));
  4309. mavlink_msg_vicon_position_estimate_encode(system_id, component_id, &msg, &packet1);
  4310. mavlink_msg_vicon_position_estimate_decode(&msg, &packet2);
  4311. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4312. memset(&packet2, 0, sizeof(packet2));
  4313. mavlink_msg_vicon_position_estimate_pack(system_id, component_id, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance );
  4314. mavlink_msg_vicon_position_estimate_decode(&msg, &packet2);
  4315. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4316. memset(&packet2, 0, sizeof(packet2));
  4317. mavlink_msg_vicon_position_estimate_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance );
  4318. mavlink_msg_vicon_position_estimate_decode(&msg, &packet2);
  4319. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4320. memset(&packet2, 0, sizeof(packet2));
  4321. mavlink_msg_to_send_buffer(buffer, &msg);
  4322. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4323. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4324. }
  4325. mavlink_msg_vicon_position_estimate_decode(last_msg, &packet2);
  4326. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4327. memset(&packet2, 0, sizeof(packet2));
  4328. mavlink_msg_vicon_position_estimate_send(MAVLINK_COMM_1 , packet1.usec , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw , packet1.covariance );
  4329. mavlink_msg_vicon_position_estimate_decode(last_msg, &packet2);
  4330. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4331. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4332. MAVLINK_ASSERT(mavlink_get_message_info_by_name("VICON_POSITION_ESTIMATE") != NULL);
  4333. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE) != NULL);
  4334. #endif
  4335. }
  4336. static void mavlink_test_highres_imu(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4337. {
  4338. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4339. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4340. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIGHRES_IMU >= 256) {
  4341. return;
  4342. }
  4343. #endif
  4344. mavlink_message_t msg;
  4345. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4346. uint16_t i;
  4347. mavlink_highres_imu_t packet_in = {
  4348. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,20355,63
  4349. };
  4350. mavlink_highres_imu_t packet1, packet2;
  4351. memset(&packet1, 0, sizeof(packet1));
  4352. packet1.time_usec = packet_in.time_usec;
  4353. packet1.xacc = packet_in.xacc;
  4354. packet1.yacc = packet_in.yacc;
  4355. packet1.zacc = packet_in.zacc;
  4356. packet1.xgyro = packet_in.xgyro;
  4357. packet1.ygyro = packet_in.ygyro;
  4358. packet1.zgyro = packet_in.zgyro;
  4359. packet1.xmag = packet_in.xmag;
  4360. packet1.ymag = packet_in.ymag;
  4361. packet1.zmag = packet_in.zmag;
  4362. packet1.abs_pressure = packet_in.abs_pressure;
  4363. packet1.diff_pressure = packet_in.diff_pressure;
  4364. packet1.pressure_alt = packet_in.pressure_alt;
  4365. packet1.temperature = packet_in.temperature;
  4366. packet1.fields_updated = packet_in.fields_updated;
  4367. packet1.id = packet_in.id;
  4368. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4369. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4370. // cope with extensions
  4371. memset(MAVLINK_MSG_ID_HIGHRES_IMU_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIGHRES_IMU_MIN_LEN);
  4372. }
  4373. #endif
  4374. memset(&packet2, 0, sizeof(packet2));
  4375. mavlink_msg_highres_imu_encode(system_id, component_id, &msg, &packet1);
  4376. mavlink_msg_highres_imu_decode(&msg, &packet2);
  4377. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4378. memset(&packet2, 0, sizeof(packet2));
  4379. mavlink_msg_highres_imu_pack(system_id, component_id, &msg , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.abs_pressure , packet1.diff_pressure , packet1.pressure_alt , packet1.temperature , packet1.fields_updated , packet1.id );
  4380. mavlink_msg_highres_imu_decode(&msg, &packet2);
  4381. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4382. memset(&packet2, 0, sizeof(packet2));
  4383. mavlink_msg_highres_imu_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.abs_pressure , packet1.diff_pressure , packet1.pressure_alt , packet1.temperature , packet1.fields_updated , packet1.id );
  4384. mavlink_msg_highres_imu_decode(&msg, &packet2);
  4385. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4386. memset(&packet2, 0, sizeof(packet2));
  4387. mavlink_msg_to_send_buffer(buffer, &msg);
  4388. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4389. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4390. }
  4391. mavlink_msg_highres_imu_decode(last_msg, &packet2);
  4392. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4393. memset(&packet2, 0, sizeof(packet2));
  4394. mavlink_msg_highres_imu_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.abs_pressure , packet1.diff_pressure , packet1.pressure_alt , packet1.temperature , packet1.fields_updated , packet1.id );
  4395. mavlink_msg_highres_imu_decode(last_msg, &packet2);
  4396. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4397. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4398. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIGHRES_IMU") != NULL);
  4399. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIGHRES_IMU) != NULL);
  4400. #endif
  4401. }
  4402. static void mavlink_test_optical_flow_rad(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4403. {
  4404. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4405. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4406. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPTICAL_FLOW_RAD >= 256) {
  4407. return;
  4408. }
  4409. #endif
  4410. mavlink_message_t msg;
  4411. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4412. uint16_t i;
  4413. mavlink_optical_flow_rad_t packet_in = {
  4414. 93372036854775807ULL,963497880,101.0,129.0,157.0,185.0,213.0,963499128,269.0,19315,3,70
  4415. };
  4416. mavlink_optical_flow_rad_t packet1, packet2;
  4417. memset(&packet1, 0, sizeof(packet1));
  4418. packet1.time_usec = packet_in.time_usec;
  4419. packet1.integration_time_us = packet_in.integration_time_us;
  4420. packet1.integrated_x = packet_in.integrated_x;
  4421. packet1.integrated_y = packet_in.integrated_y;
  4422. packet1.integrated_xgyro = packet_in.integrated_xgyro;
  4423. packet1.integrated_ygyro = packet_in.integrated_ygyro;
  4424. packet1.integrated_zgyro = packet_in.integrated_zgyro;
  4425. packet1.time_delta_distance_us = packet_in.time_delta_distance_us;
  4426. packet1.distance = packet_in.distance;
  4427. packet1.temperature = packet_in.temperature;
  4428. packet1.sensor_id = packet_in.sensor_id;
  4429. packet1.quality = packet_in.quality;
  4430. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4431. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4432. // cope with extensions
  4433. memset(MAVLINK_MSG_ID_OPTICAL_FLOW_RAD_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPTICAL_FLOW_RAD_MIN_LEN);
  4434. }
  4435. #endif
  4436. memset(&packet2, 0, sizeof(packet2));
  4437. mavlink_msg_optical_flow_rad_encode(system_id, component_id, &msg, &packet1);
  4438. mavlink_msg_optical_flow_rad_decode(&msg, &packet2);
  4439. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4440. memset(&packet2, 0, sizeof(packet2));
  4441. mavlink_msg_optical_flow_rad_pack(system_id, component_id, &msg , packet1.time_usec , packet1.sensor_id , packet1.integration_time_us , packet1.integrated_x , packet1.integrated_y , packet1.integrated_xgyro , packet1.integrated_ygyro , packet1.integrated_zgyro , packet1.temperature , packet1.quality , packet1.time_delta_distance_us , packet1.distance );
  4442. mavlink_msg_optical_flow_rad_decode(&msg, &packet2);
  4443. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4444. memset(&packet2, 0, sizeof(packet2));
  4445. mavlink_msg_optical_flow_rad_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.sensor_id , packet1.integration_time_us , packet1.integrated_x , packet1.integrated_y , packet1.integrated_xgyro , packet1.integrated_ygyro , packet1.integrated_zgyro , packet1.temperature , packet1.quality , packet1.time_delta_distance_us , packet1.distance );
  4446. mavlink_msg_optical_flow_rad_decode(&msg, &packet2);
  4447. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4448. memset(&packet2, 0, sizeof(packet2));
  4449. mavlink_msg_to_send_buffer(buffer, &msg);
  4450. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4451. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4452. }
  4453. mavlink_msg_optical_flow_rad_decode(last_msg, &packet2);
  4454. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4455. memset(&packet2, 0, sizeof(packet2));
  4456. mavlink_msg_optical_flow_rad_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.sensor_id , packet1.integration_time_us , packet1.integrated_x , packet1.integrated_y , packet1.integrated_xgyro , packet1.integrated_ygyro , packet1.integrated_zgyro , packet1.temperature , packet1.quality , packet1.time_delta_distance_us , packet1.distance );
  4457. mavlink_msg_optical_flow_rad_decode(last_msg, &packet2);
  4458. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4459. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4460. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPTICAL_FLOW_RAD") != NULL);
  4461. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPTICAL_FLOW_RAD) != NULL);
  4462. #endif
  4463. }
  4464. static void mavlink_test_hil_sensor(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4465. {
  4466. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4467. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4468. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_SENSOR >= 256) {
  4469. return;
  4470. }
  4471. #endif
  4472. mavlink_message_t msg;
  4473. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4474. uint16_t i;
  4475. mavlink_hil_sensor_t packet_in = {
  4476. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,963500584,197
  4477. };
  4478. mavlink_hil_sensor_t packet1, packet2;
  4479. memset(&packet1, 0, sizeof(packet1));
  4480. packet1.time_usec = packet_in.time_usec;
  4481. packet1.xacc = packet_in.xacc;
  4482. packet1.yacc = packet_in.yacc;
  4483. packet1.zacc = packet_in.zacc;
  4484. packet1.xgyro = packet_in.xgyro;
  4485. packet1.ygyro = packet_in.ygyro;
  4486. packet1.zgyro = packet_in.zgyro;
  4487. packet1.xmag = packet_in.xmag;
  4488. packet1.ymag = packet_in.ymag;
  4489. packet1.zmag = packet_in.zmag;
  4490. packet1.abs_pressure = packet_in.abs_pressure;
  4491. packet1.diff_pressure = packet_in.diff_pressure;
  4492. packet1.pressure_alt = packet_in.pressure_alt;
  4493. packet1.temperature = packet_in.temperature;
  4494. packet1.fields_updated = packet_in.fields_updated;
  4495. packet1.id = packet_in.id;
  4496. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4497. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4498. // cope with extensions
  4499. memset(MAVLINK_MSG_ID_HIL_SENSOR_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_SENSOR_MIN_LEN);
  4500. }
  4501. #endif
  4502. memset(&packet2, 0, sizeof(packet2));
  4503. mavlink_msg_hil_sensor_encode(system_id, component_id, &msg, &packet1);
  4504. mavlink_msg_hil_sensor_decode(&msg, &packet2);
  4505. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4506. memset(&packet2, 0, sizeof(packet2));
  4507. mavlink_msg_hil_sensor_pack(system_id, component_id, &msg , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.abs_pressure , packet1.diff_pressure , packet1.pressure_alt , packet1.temperature , packet1.fields_updated , packet1.id );
  4508. mavlink_msg_hil_sensor_decode(&msg, &packet2);
  4509. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4510. memset(&packet2, 0, sizeof(packet2));
  4511. mavlink_msg_hil_sensor_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.abs_pressure , packet1.diff_pressure , packet1.pressure_alt , packet1.temperature , packet1.fields_updated , packet1.id );
  4512. mavlink_msg_hil_sensor_decode(&msg, &packet2);
  4513. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4514. memset(&packet2, 0, sizeof(packet2));
  4515. mavlink_msg_to_send_buffer(buffer, &msg);
  4516. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4517. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4518. }
  4519. mavlink_msg_hil_sensor_decode(last_msg, &packet2);
  4520. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4521. memset(&packet2, 0, sizeof(packet2));
  4522. mavlink_msg_hil_sensor_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.abs_pressure , packet1.diff_pressure , packet1.pressure_alt , packet1.temperature , packet1.fields_updated , packet1.id );
  4523. mavlink_msg_hil_sensor_decode(last_msg, &packet2);
  4524. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4525. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4526. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_SENSOR") != NULL);
  4527. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_SENSOR) != NULL);
  4528. #endif
  4529. }
  4530. static void mavlink_test_sim_state(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4531. {
  4532. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4533. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4534. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SIM_STATE >= 256) {
  4535. return;
  4536. }
  4537. #endif
  4538. mavlink_message_t msg;
  4539. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4540. uint16_t i;
  4541. mavlink_sim_state_t packet_in = {
  4542. 17.0,45.0,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,577.0,963501832,963502040
  4543. };
  4544. mavlink_sim_state_t packet1, packet2;
  4545. memset(&packet1, 0, sizeof(packet1));
  4546. packet1.q1 = packet_in.q1;
  4547. packet1.q2 = packet_in.q2;
  4548. packet1.q3 = packet_in.q3;
  4549. packet1.q4 = packet_in.q4;
  4550. packet1.roll = packet_in.roll;
  4551. packet1.pitch = packet_in.pitch;
  4552. packet1.yaw = packet_in.yaw;
  4553. packet1.xacc = packet_in.xacc;
  4554. packet1.yacc = packet_in.yacc;
  4555. packet1.zacc = packet_in.zacc;
  4556. packet1.xgyro = packet_in.xgyro;
  4557. packet1.ygyro = packet_in.ygyro;
  4558. packet1.zgyro = packet_in.zgyro;
  4559. packet1.lat = packet_in.lat;
  4560. packet1.lon = packet_in.lon;
  4561. packet1.alt = packet_in.alt;
  4562. packet1.std_dev_horz = packet_in.std_dev_horz;
  4563. packet1.std_dev_vert = packet_in.std_dev_vert;
  4564. packet1.vn = packet_in.vn;
  4565. packet1.ve = packet_in.ve;
  4566. packet1.vd = packet_in.vd;
  4567. packet1.lat_int = packet_in.lat_int;
  4568. packet1.lon_int = packet_in.lon_int;
  4569. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4570. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4571. // cope with extensions
  4572. memset(MAVLINK_MSG_ID_SIM_STATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SIM_STATE_MIN_LEN);
  4573. }
  4574. #endif
  4575. memset(&packet2, 0, sizeof(packet2));
  4576. mavlink_msg_sim_state_encode(system_id, component_id, &msg, &packet1);
  4577. mavlink_msg_sim_state_decode(&msg, &packet2);
  4578. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4579. memset(&packet2, 0, sizeof(packet2));
  4580. mavlink_msg_sim_state_pack(system_id, component_id, &msg , packet1.q1 , packet1.q2 , packet1.q3 , packet1.q4 , packet1.roll , packet1.pitch , packet1.yaw , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.lat , packet1.lon , packet1.alt , packet1.std_dev_horz , packet1.std_dev_vert , packet1.vn , packet1.ve , packet1.vd , packet1.lat_int , packet1.lon_int );
  4581. mavlink_msg_sim_state_decode(&msg, &packet2);
  4582. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4583. memset(&packet2, 0, sizeof(packet2));
  4584. mavlink_msg_sim_state_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.q1 , packet1.q2 , packet1.q3 , packet1.q4 , packet1.roll , packet1.pitch , packet1.yaw , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.lat , packet1.lon , packet1.alt , packet1.std_dev_horz , packet1.std_dev_vert , packet1.vn , packet1.ve , packet1.vd , packet1.lat_int , packet1.lon_int );
  4585. mavlink_msg_sim_state_decode(&msg, &packet2);
  4586. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4587. memset(&packet2, 0, sizeof(packet2));
  4588. mavlink_msg_to_send_buffer(buffer, &msg);
  4589. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4590. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4591. }
  4592. mavlink_msg_sim_state_decode(last_msg, &packet2);
  4593. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4594. memset(&packet2, 0, sizeof(packet2));
  4595. mavlink_msg_sim_state_send(MAVLINK_COMM_1 , packet1.q1 , packet1.q2 , packet1.q3 , packet1.q4 , packet1.roll , packet1.pitch , packet1.yaw , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.lat , packet1.lon , packet1.alt , packet1.std_dev_horz , packet1.std_dev_vert , packet1.vn , packet1.ve , packet1.vd , packet1.lat_int , packet1.lon_int );
  4596. mavlink_msg_sim_state_decode(last_msg, &packet2);
  4597. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4598. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4599. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SIM_STATE") != NULL);
  4600. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SIM_STATE) != NULL);
  4601. #endif
  4602. }
  4603. static void mavlink_test_radio_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4604. {
  4605. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4606. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4607. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RADIO_STATUS >= 256) {
  4608. return;
  4609. }
  4610. #endif
  4611. mavlink_message_t msg;
  4612. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4613. uint16_t i;
  4614. mavlink_radio_status_t packet_in = {
  4615. 17235,17339,17,84,151,218,29
  4616. };
  4617. mavlink_radio_status_t packet1, packet2;
  4618. memset(&packet1, 0, sizeof(packet1));
  4619. packet1.rxerrors = packet_in.rxerrors;
  4620. packet1.fixed = packet_in.fixed;
  4621. packet1.rssi = packet_in.rssi;
  4622. packet1.remrssi = packet_in.remrssi;
  4623. packet1.txbuf = packet_in.txbuf;
  4624. packet1.noise = packet_in.noise;
  4625. packet1.remnoise = packet_in.remnoise;
  4626. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4627. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4628. // cope with extensions
  4629. memset(MAVLINK_MSG_ID_RADIO_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RADIO_STATUS_MIN_LEN);
  4630. }
  4631. #endif
  4632. memset(&packet2, 0, sizeof(packet2));
  4633. mavlink_msg_radio_status_encode(system_id, component_id, &msg, &packet1);
  4634. mavlink_msg_radio_status_decode(&msg, &packet2);
  4635. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4636. memset(&packet2, 0, sizeof(packet2));
  4637. mavlink_msg_radio_status_pack(system_id, component_id, &msg , packet1.rssi , packet1.remrssi , packet1.txbuf , packet1.noise , packet1.remnoise , packet1.rxerrors , packet1.fixed );
  4638. mavlink_msg_radio_status_decode(&msg, &packet2);
  4639. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4640. memset(&packet2, 0, sizeof(packet2));
  4641. mavlink_msg_radio_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.rssi , packet1.remrssi , packet1.txbuf , packet1.noise , packet1.remnoise , packet1.rxerrors , packet1.fixed );
  4642. mavlink_msg_radio_status_decode(&msg, &packet2);
  4643. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4644. memset(&packet2, 0, sizeof(packet2));
  4645. mavlink_msg_to_send_buffer(buffer, &msg);
  4646. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4647. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4648. }
  4649. mavlink_msg_radio_status_decode(last_msg, &packet2);
  4650. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4651. memset(&packet2, 0, sizeof(packet2));
  4652. mavlink_msg_radio_status_send(MAVLINK_COMM_1 , packet1.rssi , packet1.remrssi , packet1.txbuf , packet1.noise , packet1.remnoise , packet1.rxerrors , packet1.fixed );
  4653. mavlink_msg_radio_status_decode(last_msg, &packet2);
  4654. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4655. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4656. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RADIO_STATUS") != NULL);
  4657. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RADIO_STATUS) != NULL);
  4658. #endif
  4659. }
  4660. static void mavlink_test_file_transfer_protocol(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4661. {
  4662. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4663. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4664. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_FILE_TRANSFER_PROTOCOL >= 256) {
  4665. return;
  4666. }
  4667. #endif
  4668. mavlink_message_t msg;
  4669. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4670. uint16_t i;
  4671. mavlink_file_transfer_protocol_t packet_in = {
  4672. 5,72,139,{ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200 }
  4673. };
  4674. mavlink_file_transfer_protocol_t packet1, packet2;
  4675. memset(&packet1, 0, sizeof(packet1));
  4676. packet1.target_network = packet_in.target_network;
  4677. packet1.target_system = packet_in.target_system;
  4678. packet1.target_component = packet_in.target_component;
  4679. mav_array_memcpy(packet1.payload, packet_in.payload, sizeof(uint8_t)*251);
  4680. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4681. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4682. // cope with extensions
  4683. memset(MAVLINK_MSG_ID_FILE_TRANSFER_PROTOCOL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_FILE_TRANSFER_PROTOCOL_MIN_LEN);
  4684. }
  4685. #endif
  4686. memset(&packet2, 0, sizeof(packet2));
  4687. mavlink_msg_file_transfer_protocol_encode(system_id, component_id, &msg, &packet1);
  4688. mavlink_msg_file_transfer_protocol_decode(&msg, &packet2);
  4689. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4690. memset(&packet2, 0, sizeof(packet2));
  4691. mavlink_msg_file_transfer_protocol_pack(system_id, component_id, &msg , packet1.target_network , packet1.target_system , packet1.target_component , packet1.payload );
  4692. mavlink_msg_file_transfer_protocol_decode(&msg, &packet2);
  4693. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4694. memset(&packet2, 0, sizeof(packet2));
  4695. mavlink_msg_file_transfer_protocol_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_network , packet1.target_system , packet1.target_component , packet1.payload );
  4696. mavlink_msg_file_transfer_protocol_decode(&msg, &packet2);
  4697. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4698. memset(&packet2, 0, sizeof(packet2));
  4699. mavlink_msg_to_send_buffer(buffer, &msg);
  4700. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4701. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4702. }
  4703. mavlink_msg_file_transfer_protocol_decode(last_msg, &packet2);
  4704. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4705. memset(&packet2, 0, sizeof(packet2));
  4706. mavlink_msg_file_transfer_protocol_send(MAVLINK_COMM_1 , packet1.target_network , packet1.target_system , packet1.target_component , packet1.payload );
  4707. mavlink_msg_file_transfer_protocol_decode(last_msg, &packet2);
  4708. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4709. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4710. MAVLINK_ASSERT(mavlink_get_message_info_by_name("FILE_TRANSFER_PROTOCOL") != NULL);
  4711. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_FILE_TRANSFER_PROTOCOL) != NULL);
  4712. #endif
  4713. }
  4714. static void mavlink_test_timesync(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4715. {
  4716. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4717. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4718. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TIMESYNC >= 256) {
  4719. return;
  4720. }
  4721. #endif
  4722. mavlink_message_t msg;
  4723. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4724. uint16_t i;
  4725. mavlink_timesync_t packet_in = {
  4726. 93372036854775807LL,93372036854776311LL,53,120
  4727. };
  4728. mavlink_timesync_t packet1, packet2;
  4729. memset(&packet1, 0, sizeof(packet1));
  4730. packet1.tc1 = packet_in.tc1;
  4731. packet1.ts1 = packet_in.ts1;
  4732. packet1.target_system = packet_in.target_system;
  4733. packet1.target_component = packet_in.target_component;
  4734. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4735. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4736. // cope with extensions
  4737. memset(MAVLINK_MSG_ID_TIMESYNC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TIMESYNC_MIN_LEN);
  4738. }
  4739. #endif
  4740. memset(&packet2, 0, sizeof(packet2));
  4741. mavlink_msg_timesync_encode(system_id, component_id, &msg, &packet1);
  4742. mavlink_msg_timesync_decode(&msg, &packet2);
  4743. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4744. memset(&packet2, 0, sizeof(packet2));
  4745. mavlink_msg_timesync_pack(system_id, component_id, &msg , packet1.tc1 , packet1.ts1 , packet1.target_system , packet1.target_component );
  4746. mavlink_msg_timesync_decode(&msg, &packet2);
  4747. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4748. memset(&packet2, 0, sizeof(packet2));
  4749. mavlink_msg_timesync_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.tc1 , packet1.ts1 , packet1.target_system , packet1.target_component );
  4750. mavlink_msg_timesync_decode(&msg, &packet2);
  4751. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4752. memset(&packet2, 0, sizeof(packet2));
  4753. mavlink_msg_to_send_buffer(buffer, &msg);
  4754. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4755. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4756. }
  4757. mavlink_msg_timesync_decode(last_msg, &packet2);
  4758. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4759. memset(&packet2, 0, sizeof(packet2));
  4760. mavlink_msg_timesync_send(MAVLINK_COMM_1 , packet1.tc1 , packet1.ts1 , packet1.target_system , packet1.target_component );
  4761. mavlink_msg_timesync_decode(last_msg, &packet2);
  4762. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4763. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4764. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TIMESYNC") != NULL);
  4765. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TIMESYNC) != NULL);
  4766. #endif
  4767. }
  4768. static void mavlink_test_camera_trigger(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4769. {
  4770. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4771. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4772. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_TRIGGER >= 256) {
  4773. return;
  4774. }
  4775. #endif
  4776. mavlink_message_t msg;
  4777. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4778. uint16_t i;
  4779. mavlink_camera_trigger_t packet_in = {
  4780. 93372036854775807ULL,963497880
  4781. };
  4782. mavlink_camera_trigger_t packet1, packet2;
  4783. memset(&packet1, 0, sizeof(packet1));
  4784. packet1.time_usec = packet_in.time_usec;
  4785. packet1.seq = packet_in.seq;
  4786. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4787. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4788. // cope with extensions
  4789. memset(MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN);
  4790. }
  4791. #endif
  4792. memset(&packet2, 0, sizeof(packet2));
  4793. mavlink_msg_camera_trigger_encode(system_id, component_id, &msg, &packet1);
  4794. mavlink_msg_camera_trigger_decode(&msg, &packet2);
  4795. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4796. memset(&packet2, 0, sizeof(packet2));
  4797. mavlink_msg_camera_trigger_pack(system_id, component_id, &msg , packet1.time_usec , packet1.seq );
  4798. mavlink_msg_camera_trigger_decode(&msg, &packet2);
  4799. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4800. memset(&packet2, 0, sizeof(packet2));
  4801. mavlink_msg_camera_trigger_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.seq );
  4802. mavlink_msg_camera_trigger_decode(&msg, &packet2);
  4803. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4804. memset(&packet2, 0, sizeof(packet2));
  4805. mavlink_msg_to_send_buffer(buffer, &msg);
  4806. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4807. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4808. }
  4809. mavlink_msg_camera_trigger_decode(last_msg, &packet2);
  4810. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4811. memset(&packet2, 0, sizeof(packet2));
  4812. mavlink_msg_camera_trigger_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.seq );
  4813. mavlink_msg_camera_trigger_decode(last_msg, &packet2);
  4814. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4815. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4816. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_TRIGGER") != NULL);
  4817. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_TRIGGER) != NULL);
  4818. #endif
  4819. }
  4820. static void mavlink_test_hil_gps(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4821. {
  4822. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4823. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4824. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_GPS >= 256) {
  4825. return;
  4826. }
  4827. #endif
  4828. mavlink_message_t msg;
  4829. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4830. uint16_t i;
  4831. mavlink_hil_gps_t packet_in = {
  4832. 93372036854775807ULL,963497880,963498088,963498296,18275,18379,18483,18587,18691,18795,18899,235,46,113,19159
  4833. };
  4834. mavlink_hil_gps_t packet1, packet2;
  4835. memset(&packet1, 0, sizeof(packet1));
  4836. packet1.time_usec = packet_in.time_usec;
  4837. packet1.lat = packet_in.lat;
  4838. packet1.lon = packet_in.lon;
  4839. packet1.alt = packet_in.alt;
  4840. packet1.eph = packet_in.eph;
  4841. packet1.epv = packet_in.epv;
  4842. packet1.vel = packet_in.vel;
  4843. packet1.vn = packet_in.vn;
  4844. packet1.ve = packet_in.ve;
  4845. packet1.vd = packet_in.vd;
  4846. packet1.cog = packet_in.cog;
  4847. packet1.fix_type = packet_in.fix_type;
  4848. packet1.satellites_visible = packet_in.satellites_visible;
  4849. packet1.id = packet_in.id;
  4850. packet1.yaw = packet_in.yaw;
  4851. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4852. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4853. // cope with extensions
  4854. memset(MAVLINK_MSG_ID_HIL_GPS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_GPS_MIN_LEN);
  4855. }
  4856. #endif
  4857. memset(&packet2, 0, sizeof(packet2));
  4858. mavlink_msg_hil_gps_encode(system_id, component_id, &msg, &packet1);
  4859. mavlink_msg_hil_gps_decode(&msg, &packet2);
  4860. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4861. memset(&packet2, 0, sizeof(packet2));
  4862. mavlink_msg_hil_gps_pack(system_id, component_id, &msg , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.vn , packet1.ve , packet1.vd , packet1.cog , packet1.satellites_visible , packet1.id , packet1.yaw );
  4863. mavlink_msg_hil_gps_decode(&msg, &packet2);
  4864. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4865. memset(&packet2, 0, sizeof(packet2));
  4866. mavlink_msg_hil_gps_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.vn , packet1.ve , packet1.vd , packet1.cog , packet1.satellites_visible , packet1.id , packet1.yaw );
  4867. mavlink_msg_hil_gps_decode(&msg, &packet2);
  4868. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4869. memset(&packet2, 0, sizeof(packet2));
  4870. mavlink_msg_to_send_buffer(buffer, &msg);
  4871. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4872. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4873. }
  4874. mavlink_msg_hil_gps_decode(last_msg, &packet2);
  4875. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4876. memset(&packet2, 0, sizeof(packet2));
  4877. mavlink_msg_hil_gps_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.vn , packet1.ve , packet1.vd , packet1.cog , packet1.satellites_visible , packet1.id , packet1.yaw );
  4878. mavlink_msg_hil_gps_decode(last_msg, &packet2);
  4879. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4880. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4881. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_GPS") != NULL);
  4882. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_GPS) != NULL);
  4883. #endif
  4884. }
  4885. static void mavlink_test_hil_optical_flow(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4886. {
  4887. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4888. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4889. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_OPTICAL_FLOW >= 256) {
  4890. return;
  4891. }
  4892. #endif
  4893. mavlink_message_t msg;
  4894. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4895. uint16_t i;
  4896. mavlink_hil_optical_flow_t packet_in = {
  4897. 93372036854775807ULL,963497880,101.0,129.0,157.0,185.0,213.0,963499128,269.0,19315,3,70
  4898. };
  4899. mavlink_hil_optical_flow_t packet1, packet2;
  4900. memset(&packet1, 0, sizeof(packet1));
  4901. packet1.time_usec = packet_in.time_usec;
  4902. packet1.integration_time_us = packet_in.integration_time_us;
  4903. packet1.integrated_x = packet_in.integrated_x;
  4904. packet1.integrated_y = packet_in.integrated_y;
  4905. packet1.integrated_xgyro = packet_in.integrated_xgyro;
  4906. packet1.integrated_ygyro = packet_in.integrated_ygyro;
  4907. packet1.integrated_zgyro = packet_in.integrated_zgyro;
  4908. packet1.time_delta_distance_us = packet_in.time_delta_distance_us;
  4909. packet1.distance = packet_in.distance;
  4910. packet1.temperature = packet_in.temperature;
  4911. packet1.sensor_id = packet_in.sensor_id;
  4912. packet1.quality = packet_in.quality;
  4913. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4914. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4915. // cope with extensions
  4916. memset(MAVLINK_MSG_ID_HIL_OPTICAL_FLOW_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_OPTICAL_FLOW_MIN_LEN);
  4917. }
  4918. #endif
  4919. memset(&packet2, 0, sizeof(packet2));
  4920. mavlink_msg_hil_optical_flow_encode(system_id, component_id, &msg, &packet1);
  4921. mavlink_msg_hil_optical_flow_decode(&msg, &packet2);
  4922. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4923. memset(&packet2, 0, sizeof(packet2));
  4924. mavlink_msg_hil_optical_flow_pack(system_id, component_id, &msg , packet1.time_usec , packet1.sensor_id , packet1.integration_time_us , packet1.integrated_x , packet1.integrated_y , packet1.integrated_xgyro , packet1.integrated_ygyro , packet1.integrated_zgyro , packet1.temperature , packet1.quality , packet1.time_delta_distance_us , packet1.distance );
  4925. mavlink_msg_hil_optical_flow_decode(&msg, &packet2);
  4926. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4927. memset(&packet2, 0, sizeof(packet2));
  4928. mavlink_msg_hil_optical_flow_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.sensor_id , packet1.integration_time_us , packet1.integrated_x , packet1.integrated_y , packet1.integrated_xgyro , packet1.integrated_ygyro , packet1.integrated_zgyro , packet1.temperature , packet1.quality , packet1.time_delta_distance_us , packet1.distance );
  4929. mavlink_msg_hil_optical_flow_decode(&msg, &packet2);
  4930. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4931. memset(&packet2, 0, sizeof(packet2));
  4932. mavlink_msg_to_send_buffer(buffer, &msg);
  4933. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  4934. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  4935. }
  4936. mavlink_msg_hil_optical_flow_decode(last_msg, &packet2);
  4937. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4938. memset(&packet2, 0, sizeof(packet2));
  4939. mavlink_msg_hil_optical_flow_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.sensor_id , packet1.integration_time_us , packet1.integrated_x , packet1.integrated_y , packet1.integrated_xgyro , packet1.integrated_ygyro , packet1.integrated_zgyro , packet1.temperature , packet1.quality , packet1.time_delta_distance_us , packet1.distance );
  4940. mavlink_msg_hil_optical_flow_decode(last_msg, &packet2);
  4941. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4942. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  4943. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_OPTICAL_FLOW") != NULL);
  4944. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_OPTICAL_FLOW) != NULL);
  4945. #endif
  4946. }
  4947. static void mavlink_test_hil_state_quaternion(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  4948. {
  4949. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4950. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  4951. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIL_STATE_QUATERNION >= 256) {
  4952. return;
  4953. }
  4954. #endif
  4955. mavlink_message_t msg;
  4956. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  4957. uint16_t i;
  4958. mavlink_hil_state_quaternion_t packet_in = {
  4959. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0 },185.0,213.0,241.0,963499336,963499544,963499752,19731,19835,19939,20043,20147,20251,20355,20459
  4960. };
  4961. mavlink_hil_state_quaternion_t packet1, packet2;
  4962. memset(&packet1, 0, sizeof(packet1));
  4963. packet1.time_usec = packet_in.time_usec;
  4964. packet1.rollspeed = packet_in.rollspeed;
  4965. packet1.pitchspeed = packet_in.pitchspeed;
  4966. packet1.yawspeed = packet_in.yawspeed;
  4967. packet1.lat = packet_in.lat;
  4968. packet1.lon = packet_in.lon;
  4969. packet1.alt = packet_in.alt;
  4970. packet1.vx = packet_in.vx;
  4971. packet1.vy = packet_in.vy;
  4972. packet1.vz = packet_in.vz;
  4973. packet1.ind_airspeed = packet_in.ind_airspeed;
  4974. packet1.true_airspeed = packet_in.true_airspeed;
  4975. packet1.xacc = packet_in.xacc;
  4976. packet1.yacc = packet_in.yacc;
  4977. packet1.zacc = packet_in.zacc;
  4978. mav_array_memcpy(packet1.attitude_quaternion, packet_in.attitude_quaternion, sizeof(float)*4);
  4979. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  4980. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  4981. // cope with extensions
  4982. memset(MAVLINK_MSG_ID_HIL_STATE_QUATERNION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIL_STATE_QUATERNION_MIN_LEN);
  4983. }
  4984. #endif
  4985. memset(&packet2, 0, sizeof(packet2));
  4986. mavlink_msg_hil_state_quaternion_encode(system_id, component_id, &msg, &packet1);
  4987. mavlink_msg_hil_state_quaternion_decode(&msg, &packet2);
  4988. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4989. memset(&packet2, 0, sizeof(packet2));
  4990. mavlink_msg_hil_state_quaternion_pack(system_id, component_id, &msg , packet1.time_usec , packet1.attitude_quaternion , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.lat , packet1.lon , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.ind_airspeed , packet1.true_airspeed , packet1.xacc , packet1.yacc , packet1.zacc );
  4991. mavlink_msg_hil_state_quaternion_decode(&msg, &packet2);
  4992. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4993. memset(&packet2, 0, sizeof(packet2));
  4994. mavlink_msg_hil_state_quaternion_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.attitude_quaternion , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.lat , packet1.lon , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.ind_airspeed , packet1.true_airspeed , packet1.xacc , packet1.yacc , packet1.zacc );
  4995. mavlink_msg_hil_state_quaternion_decode(&msg, &packet2);
  4996. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  4997. memset(&packet2, 0, sizeof(packet2));
  4998. mavlink_msg_to_send_buffer(buffer, &msg);
  4999. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5000. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5001. }
  5002. mavlink_msg_hil_state_quaternion_decode(last_msg, &packet2);
  5003. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5004. memset(&packet2, 0, sizeof(packet2));
  5005. mavlink_msg_hil_state_quaternion_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.attitude_quaternion , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.lat , packet1.lon , packet1.alt , packet1.vx , packet1.vy , packet1.vz , packet1.ind_airspeed , packet1.true_airspeed , packet1.xacc , packet1.yacc , packet1.zacc );
  5006. mavlink_msg_hil_state_quaternion_decode(last_msg, &packet2);
  5007. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5008. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5009. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIL_STATE_QUATERNION") != NULL);
  5010. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIL_STATE_QUATERNION) != NULL);
  5011. #endif
  5012. }
  5013. static void mavlink_test_scaled_imu2(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5014. {
  5015. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5016. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5017. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SCALED_IMU2 >= 256) {
  5018. return;
  5019. }
  5020. #endif
  5021. mavlink_message_t msg;
  5022. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5023. uint16_t i;
  5024. mavlink_scaled_imu2_t packet_in = {
  5025. 963497464,17443,17547,17651,17755,17859,17963,18067,18171,18275,18379
  5026. };
  5027. mavlink_scaled_imu2_t packet1, packet2;
  5028. memset(&packet1, 0, sizeof(packet1));
  5029. packet1.time_boot_ms = packet_in.time_boot_ms;
  5030. packet1.xacc = packet_in.xacc;
  5031. packet1.yacc = packet_in.yacc;
  5032. packet1.zacc = packet_in.zacc;
  5033. packet1.xgyro = packet_in.xgyro;
  5034. packet1.ygyro = packet_in.ygyro;
  5035. packet1.zgyro = packet_in.zgyro;
  5036. packet1.xmag = packet_in.xmag;
  5037. packet1.ymag = packet_in.ymag;
  5038. packet1.zmag = packet_in.zmag;
  5039. packet1.temperature = packet_in.temperature;
  5040. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5041. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5042. // cope with extensions
  5043. memset(MAVLINK_MSG_ID_SCALED_IMU2_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SCALED_IMU2_MIN_LEN);
  5044. }
  5045. #endif
  5046. memset(&packet2, 0, sizeof(packet2));
  5047. mavlink_msg_scaled_imu2_encode(system_id, component_id, &msg, &packet1);
  5048. mavlink_msg_scaled_imu2_decode(&msg, &packet2);
  5049. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5050. memset(&packet2, 0, sizeof(packet2));
  5051. mavlink_msg_scaled_imu2_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  5052. mavlink_msg_scaled_imu2_decode(&msg, &packet2);
  5053. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5054. memset(&packet2, 0, sizeof(packet2));
  5055. mavlink_msg_scaled_imu2_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  5056. mavlink_msg_scaled_imu2_decode(&msg, &packet2);
  5057. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5058. memset(&packet2, 0, sizeof(packet2));
  5059. mavlink_msg_to_send_buffer(buffer, &msg);
  5060. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5061. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5062. }
  5063. mavlink_msg_scaled_imu2_decode(last_msg, &packet2);
  5064. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5065. memset(&packet2, 0, sizeof(packet2));
  5066. mavlink_msg_scaled_imu2_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  5067. mavlink_msg_scaled_imu2_decode(last_msg, &packet2);
  5068. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5069. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5070. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SCALED_IMU2") != NULL);
  5071. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SCALED_IMU2) != NULL);
  5072. #endif
  5073. }
  5074. static void mavlink_test_log_request_list(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5075. {
  5076. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5077. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5078. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOG_REQUEST_LIST >= 256) {
  5079. return;
  5080. }
  5081. #endif
  5082. mavlink_message_t msg;
  5083. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5084. uint16_t i;
  5085. mavlink_log_request_list_t packet_in = {
  5086. 17235,17339,17,84
  5087. };
  5088. mavlink_log_request_list_t packet1, packet2;
  5089. memset(&packet1, 0, sizeof(packet1));
  5090. packet1.start = packet_in.start;
  5091. packet1.end = packet_in.end;
  5092. packet1.target_system = packet_in.target_system;
  5093. packet1.target_component = packet_in.target_component;
  5094. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5095. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5096. // cope with extensions
  5097. memset(MAVLINK_MSG_ID_LOG_REQUEST_LIST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOG_REQUEST_LIST_MIN_LEN);
  5098. }
  5099. #endif
  5100. memset(&packet2, 0, sizeof(packet2));
  5101. mavlink_msg_log_request_list_encode(system_id, component_id, &msg, &packet1);
  5102. mavlink_msg_log_request_list_decode(&msg, &packet2);
  5103. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5104. memset(&packet2, 0, sizeof(packet2));
  5105. mavlink_msg_log_request_list_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.start , packet1.end );
  5106. mavlink_msg_log_request_list_decode(&msg, &packet2);
  5107. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5108. memset(&packet2, 0, sizeof(packet2));
  5109. mavlink_msg_log_request_list_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.start , packet1.end );
  5110. mavlink_msg_log_request_list_decode(&msg, &packet2);
  5111. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5112. memset(&packet2, 0, sizeof(packet2));
  5113. mavlink_msg_to_send_buffer(buffer, &msg);
  5114. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5115. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5116. }
  5117. mavlink_msg_log_request_list_decode(last_msg, &packet2);
  5118. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5119. memset(&packet2, 0, sizeof(packet2));
  5120. mavlink_msg_log_request_list_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.start , packet1.end );
  5121. mavlink_msg_log_request_list_decode(last_msg, &packet2);
  5122. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5123. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5124. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOG_REQUEST_LIST") != NULL);
  5125. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOG_REQUEST_LIST) != NULL);
  5126. #endif
  5127. }
  5128. static void mavlink_test_log_entry(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5129. {
  5130. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5131. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5132. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOG_ENTRY >= 256) {
  5133. return;
  5134. }
  5135. #endif
  5136. mavlink_message_t msg;
  5137. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5138. uint16_t i;
  5139. mavlink_log_entry_t packet_in = {
  5140. 963497464,963497672,17651,17755,17859
  5141. };
  5142. mavlink_log_entry_t packet1, packet2;
  5143. memset(&packet1, 0, sizeof(packet1));
  5144. packet1.time_utc = packet_in.time_utc;
  5145. packet1.size = packet_in.size;
  5146. packet1.id = packet_in.id;
  5147. packet1.num_logs = packet_in.num_logs;
  5148. packet1.last_log_num = packet_in.last_log_num;
  5149. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5150. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5151. // cope with extensions
  5152. memset(MAVLINK_MSG_ID_LOG_ENTRY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOG_ENTRY_MIN_LEN);
  5153. }
  5154. #endif
  5155. memset(&packet2, 0, sizeof(packet2));
  5156. mavlink_msg_log_entry_encode(system_id, component_id, &msg, &packet1);
  5157. mavlink_msg_log_entry_decode(&msg, &packet2);
  5158. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5159. memset(&packet2, 0, sizeof(packet2));
  5160. mavlink_msg_log_entry_pack(system_id, component_id, &msg , packet1.id , packet1.num_logs , packet1.last_log_num , packet1.time_utc , packet1.size );
  5161. mavlink_msg_log_entry_decode(&msg, &packet2);
  5162. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5163. memset(&packet2, 0, sizeof(packet2));
  5164. mavlink_msg_log_entry_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.id , packet1.num_logs , packet1.last_log_num , packet1.time_utc , packet1.size );
  5165. mavlink_msg_log_entry_decode(&msg, &packet2);
  5166. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5167. memset(&packet2, 0, sizeof(packet2));
  5168. mavlink_msg_to_send_buffer(buffer, &msg);
  5169. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5170. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5171. }
  5172. mavlink_msg_log_entry_decode(last_msg, &packet2);
  5173. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5174. memset(&packet2, 0, sizeof(packet2));
  5175. mavlink_msg_log_entry_send(MAVLINK_COMM_1 , packet1.id , packet1.num_logs , packet1.last_log_num , packet1.time_utc , packet1.size );
  5176. mavlink_msg_log_entry_decode(last_msg, &packet2);
  5177. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5178. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5179. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOG_ENTRY") != NULL);
  5180. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOG_ENTRY) != NULL);
  5181. #endif
  5182. }
  5183. static void mavlink_test_log_request_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5184. {
  5185. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5186. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5187. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOG_REQUEST_DATA >= 256) {
  5188. return;
  5189. }
  5190. #endif
  5191. mavlink_message_t msg;
  5192. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5193. uint16_t i;
  5194. mavlink_log_request_data_t packet_in = {
  5195. 963497464,963497672,17651,163,230
  5196. };
  5197. mavlink_log_request_data_t packet1, packet2;
  5198. memset(&packet1, 0, sizeof(packet1));
  5199. packet1.ofs = packet_in.ofs;
  5200. packet1.count = packet_in.count;
  5201. packet1.id = packet_in.id;
  5202. packet1.target_system = packet_in.target_system;
  5203. packet1.target_component = packet_in.target_component;
  5204. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5205. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5206. // cope with extensions
  5207. memset(MAVLINK_MSG_ID_LOG_REQUEST_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOG_REQUEST_DATA_MIN_LEN);
  5208. }
  5209. #endif
  5210. memset(&packet2, 0, sizeof(packet2));
  5211. mavlink_msg_log_request_data_encode(system_id, component_id, &msg, &packet1);
  5212. mavlink_msg_log_request_data_decode(&msg, &packet2);
  5213. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5214. memset(&packet2, 0, sizeof(packet2));
  5215. mavlink_msg_log_request_data_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id , packet1.ofs , packet1.count );
  5216. mavlink_msg_log_request_data_decode(&msg, &packet2);
  5217. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5218. memset(&packet2, 0, sizeof(packet2));
  5219. mavlink_msg_log_request_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id , packet1.ofs , packet1.count );
  5220. mavlink_msg_log_request_data_decode(&msg, &packet2);
  5221. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5222. memset(&packet2, 0, sizeof(packet2));
  5223. mavlink_msg_to_send_buffer(buffer, &msg);
  5224. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5225. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5226. }
  5227. mavlink_msg_log_request_data_decode(last_msg, &packet2);
  5228. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5229. memset(&packet2, 0, sizeof(packet2));
  5230. mavlink_msg_log_request_data_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id , packet1.ofs , packet1.count );
  5231. mavlink_msg_log_request_data_decode(last_msg, &packet2);
  5232. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5233. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5234. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOG_REQUEST_DATA") != NULL);
  5235. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOG_REQUEST_DATA) != NULL);
  5236. #endif
  5237. }
  5238. static void mavlink_test_log_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5239. {
  5240. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5241. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5242. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOG_DATA >= 256) {
  5243. return;
  5244. }
  5245. #endif
  5246. mavlink_message_t msg;
  5247. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5248. uint16_t i;
  5249. mavlink_log_data_t packet_in = {
  5250. 963497464,17443,151,{ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 }
  5251. };
  5252. mavlink_log_data_t packet1, packet2;
  5253. memset(&packet1, 0, sizeof(packet1));
  5254. packet1.ofs = packet_in.ofs;
  5255. packet1.id = packet_in.id;
  5256. packet1.count = packet_in.count;
  5257. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*90);
  5258. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5259. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5260. // cope with extensions
  5261. memset(MAVLINK_MSG_ID_LOG_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOG_DATA_MIN_LEN);
  5262. }
  5263. #endif
  5264. memset(&packet2, 0, sizeof(packet2));
  5265. mavlink_msg_log_data_encode(system_id, component_id, &msg, &packet1);
  5266. mavlink_msg_log_data_decode(&msg, &packet2);
  5267. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5268. memset(&packet2, 0, sizeof(packet2));
  5269. mavlink_msg_log_data_pack(system_id, component_id, &msg , packet1.id , packet1.ofs , packet1.count , packet1.data );
  5270. mavlink_msg_log_data_decode(&msg, &packet2);
  5271. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5272. memset(&packet2, 0, sizeof(packet2));
  5273. mavlink_msg_log_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.id , packet1.ofs , packet1.count , packet1.data );
  5274. mavlink_msg_log_data_decode(&msg, &packet2);
  5275. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5276. memset(&packet2, 0, sizeof(packet2));
  5277. mavlink_msg_to_send_buffer(buffer, &msg);
  5278. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5279. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5280. }
  5281. mavlink_msg_log_data_decode(last_msg, &packet2);
  5282. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5283. memset(&packet2, 0, sizeof(packet2));
  5284. mavlink_msg_log_data_send(MAVLINK_COMM_1 , packet1.id , packet1.ofs , packet1.count , packet1.data );
  5285. mavlink_msg_log_data_decode(last_msg, &packet2);
  5286. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5287. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5288. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOG_DATA") != NULL);
  5289. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOG_DATA) != NULL);
  5290. #endif
  5291. }
  5292. static void mavlink_test_log_erase(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5293. {
  5294. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5295. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5296. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOG_ERASE >= 256) {
  5297. return;
  5298. }
  5299. #endif
  5300. mavlink_message_t msg;
  5301. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5302. uint16_t i;
  5303. mavlink_log_erase_t packet_in = {
  5304. 5,72
  5305. };
  5306. mavlink_log_erase_t packet1, packet2;
  5307. memset(&packet1, 0, sizeof(packet1));
  5308. packet1.target_system = packet_in.target_system;
  5309. packet1.target_component = packet_in.target_component;
  5310. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5311. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5312. // cope with extensions
  5313. memset(MAVLINK_MSG_ID_LOG_ERASE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOG_ERASE_MIN_LEN);
  5314. }
  5315. #endif
  5316. memset(&packet2, 0, sizeof(packet2));
  5317. mavlink_msg_log_erase_encode(system_id, component_id, &msg, &packet1);
  5318. mavlink_msg_log_erase_decode(&msg, &packet2);
  5319. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5320. memset(&packet2, 0, sizeof(packet2));
  5321. mavlink_msg_log_erase_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component );
  5322. mavlink_msg_log_erase_decode(&msg, &packet2);
  5323. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5324. memset(&packet2, 0, sizeof(packet2));
  5325. mavlink_msg_log_erase_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component );
  5326. mavlink_msg_log_erase_decode(&msg, &packet2);
  5327. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5328. memset(&packet2, 0, sizeof(packet2));
  5329. mavlink_msg_to_send_buffer(buffer, &msg);
  5330. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5331. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5332. }
  5333. mavlink_msg_log_erase_decode(last_msg, &packet2);
  5334. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5335. memset(&packet2, 0, sizeof(packet2));
  5336. mavlink_msg_log_erase_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component );
  5337. mavlink_msg_log_erase_decode(last_msg, &packet2);
  5338. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5339. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5340. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOG_ERASE") != NULL);
  5341. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOG_ERASE) != NULL);
  5342. #endif
  5343. }
  5344. static void mavlink_test_log_request_end(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5345. {
  5346. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5347. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5348. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOG_REQUEST_END >= 256) {
  5349. return;
  5350. }
  5351. #endif
  5352. mavlink_message_t msg;
  5353. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5354. uint16_t i;
  5355. mavlink_log_request_end_t packet_in = {
  5356. 5,72
  5357. };
  5358. mavlink_log_request_end_t packet1, packet2;
  5359. memset(&packet1, 0, sizeof(packet1));
  5360. packet1.target_system = packet_in.target_system;
  5361. packet1.target_component = packet_in.target_component;
  5362. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5363. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5364. // cope with extensions
  5365. memset(MAVLINK_MSG_ID_LOG_REQUEST_END_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOG_REQUEST_END_MIN_LEN);
  5366. }
  5367. #endif
  5368. memset(&packet2, 0, sizeof(packet2));
  5369. mavlink_msg_log_request_end_encode(system_id, component_id, &msg, &packet1);
  5370. mavlink_msg_log_request_end_decode(&msg, &packet2);
  5371. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5372. memset(&packet2, 0, sizeof(packet2));
  5373. mavlink_msg_log_request_end_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component );
  5374. mavlink_msg_log_request_end_decode(&msg, &packet2);
  5375. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5376. memset(&packet2, 0, sizeof(packet2));
  5377. mavlink_msg_log_request_end_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component );
  5378. mavlink_msg_log_request_end_decode(&msg, &packet2);
  5379. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5380. memset(&packet2, 0, sizeof(packet2));
  5381. mavlink_msg_to_send_buffer(buffer, &msg);
  5382. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5383. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5384. }
  5385. mavlink_msg_log_request_end_decode(last_msg, &packet2);
  5386. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5387. memset(&packet2, 0, sizeof(packet2));
  5388. mavlink_msg_log_request_end_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component );
  5389. mavlink_msg_log_request_end_decode(last_msg, &packet2);
  5390. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5391. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5392. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOG_REQUEST_END") != NULL);
  5393. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOG_REQUEST_END) != NULL);
  5394. #endif
  5395. }
  5396. static void mavlink_test_gps_inject_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5397. {
  5398. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5399. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5400. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_INJECT_DATA >= 256) {
  5401. return;
  5402. }
  5403. #endif
  5404. mavlink_message_t msg;
  5405. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5406. uint16_t i;
  5407. mavlink_gps_inject_data_t packet_in = {
  5408. 5,72,139,{ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 }
  5409. };
  5410. mavlink_gps_inject_data_t packet1, packet2;
  5411. memset(&packet1, 0, sizeof(packet1));
  5412. packet1.target_system = packet_in.target_system;
  5413. packet1.target_component = packet_in.target_component;
  5414. packet1.len = packet_in.len;
  5415. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*110);
  5416. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5417. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5418. // cope with extensions
  5419. memset(MAVLINK_MSG_ID_GPS_INJECT_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_INJECT_DATA_MIN_LEN);
  5420. }
  5421. #endif
  5422. memset(&packet2, 0, sizeof(packet2));
  5423. mavlink_msg_gps_inject_data_encode(system_id, component_id, &msg, &packet1);
  5424. mavlink_msg_gps_inject_data_decode(&msg, &packet2);
  5425. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5426. memset(&packet2, 0, sizeof(packet2));
  5427. mavlink_msg_gps_inject_data_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.len , packet1.data );
  5428. mavlink_msg_gps_inject_data_decode(&msg, &packet2);
  5429. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5430. memset(&packet2, 0, sizeof(packet2));
  5431. mavlink_msg_gps_inject_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.len , packet1.data );
  5432. mavlink_msg_gps_inject_data_decode(&msg, &packet2);
  5433. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5434. memset(&packet2, 0, sizeof(packet2));
  5435. mavlink_msg_to_send_buffer(buffer, &msg);
  5436. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5437. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5438. }
  5439. mavlink_msg_gps_inject_data_decode(last_msg, &packet2);
  5440. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5441. memset(&packet2, 0, sizeof(packet2));
  5442. mavlink_msg_gps_inject_data_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.len , packet1.data );
  5443. mavlink_msg_gps_inject_data_decode(last_msg, &packet2);
  5444. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5445. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5446. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_INJECT_DATA") != NULL);
  5447. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_INJECT_DATA) != NULL);
  5448. #endif
  5449. }
  5450. static void mavlink_test_gps2_raw(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5451. {
  5452. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5453. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5454. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS2_RAW >= 256) {
  5455. return;
  5456. }
  5457. #endif
  5458. mavlink_message_t msg;
  5459. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5460. uint16_t i;
  5461. mavlink_gps2_raw_t packet_in = {
  5462. 93372036854775807ULL,963497880,963498088,963498296,963498504,18483,18587,18691,18795,101,168,235,19055,963499388,963499596,963499804,963500012,963500220
  5463. };
  5464. mavlink_gps2_raw_t packet1, packet2;
  5465. memset(&packet1, 0, sizeof(packet1));
  5466. packet1.time_usec = packet_in.time_usec;
  5467. packet1.lat = packet_in.lat;
  5468. packet1.lon = packet_in.lon;
  5469. packet1.alt = packet_in.alt;
  5470. packet1.dgps_age = packet_in.dgps_age;
  5471. packet1.eph = packet_in.eph;
  5472. packet1.epv = packet_in.epv;
  5473. packet1.vel = packet_in.vel;
  5474. packet1.cog = packet_in.cog;
  5475. packet1.fix_type = packet_in.fix_type;
  5476. packet1.satellites_visible = packet_in.satellites_visible;
  5477. packet1.dgps_numch = packet_in.dgps_numch;
  5478. packet1.yaw = packet_in.yaw;
  5479. packet1.alt_ellipsoid = packet_in.alt_ellipsoid;
  5480. packet1.h_acc = packet_in.h_acc;
  5481. packet1.v_acc = packet_in.v_acc;
  5482. packet1.vel_acc = packet_in.vel_acc;
  5483. packet1.hdg_acc = packet_in.hdg_acc;
  5484. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5485. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5486. // cope with extensions
  5487. memset(MAVLINK_MSG_ID_GPS2_RAW_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS2_RAW_MIN_LEN);
  5488. }
  5489. #endif
  5490. memset(&packet2, 0, sizeof(packet2));
  5491. mavlink_msg_gps2_raw_encode(system_id, component_id, &msg, &packet1);
  5492. mavlink_msg_gps2_raw_decode(&msg, &packet2);
  5493. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5494. memset(&packet2, 0, sizeof(packet2));
  5495. mavlink_msg_gps2_raw_pack(system_id, component_id, &msg , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.cog , packet1.satellites_visible , packet1.dgps_numch , packet1.dgps_age , packet1.yaw , packet1.alt_ellipsoid , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.hdg_acc );
  5496. mavlink_msg_gps2_raw_decode(&msg, &packet2);
  5497. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5498. memset(&packet2, 0, sizeof(packet2));
  5499. mavlink_msg_gps2_raw_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.cog , packet1.satellites_visible , packet1.dgps_numch , packet1.dgps_age , packet1.yaw , packet1.alt_ellipsoid , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.hdg_acc );
  5500. mavlink_msg_gps2_raw_decode(&msg, &packet2);
  5501. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5502. memset(&packet2, 0, sizeof(packet2));
  5503. mavlink_msg_to_send_buffer(buffer, &msg);
  5504. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5505. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5506. }
  5507. mavlink_msg_gps2_raw_decode(last_msg, &packet2);
  5508. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5509. memset(&packet2, 0, sizeof(packet2));
  5510. mavlink_msg_gps2_raw_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.eph , packet1.epv , packet1.vel , packet1.cog , packet1.satellites_visible , packet1.dgps_numch , packet1.dgps_age , packet1.yaw , packet1.alt_ellipsoid , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.hdg_acc );
  5511. mavlink_msg_gps2_raw_decode(last_msg, &packet2);
  5512. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5513. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5514. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS2_RAW") != NULL);
  5515. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS2_RAW) != NULL);
  5516. #endif
  5517. }
  5518. static void mavlink_test_power_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5519. {
  5520. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5521. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5522. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_POWER_STATUS >= 256) {
  5523. return;
  5524. }
  5525. #endif
  5526. mavlink_message_t msg;
  5527. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5528. uint16_t i;
  5529. mavlink_power_status_t packet_in = {
  5530. 17235,17339,17443
  5531. };
  5532. mavlink_power_status_t packet1, packet2;
  5533. memset(&packet1, 0, sizeof(packet1));
  5534. packet1.Vcc = packet_in.Vcc;
  5535. packet1.Vservo = packet_in.Vservo;
  5536. packet1.flags = packet_in.flags;
  5537. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5538. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5539. // cope with extensions
  5540. memset(MAVLINK_MSG_ID_POWER_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_POWER_STATUS_MIN_LEN);
  5541. }
  5542. #endif
  5543. memset(&packet2, 0, sizeof(packet2));
  5544. mavlink_msg_power_status_encode(system_id, component_id, &msg, &packet1);
  5545. mavlink_msg_power_status_decode(&msg, &packet2);
  5546. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5547. memset(&packet2, 0, sizeof(packet2));
  5548. mavlink_msg_power_status_pack(system_id, component_id, &msg , packet1.Vcc , packet1.Vservo , packet1.flags );
  5549. mavlink_msg_power_status_decode(&msg, &packet2);
  5550. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5551. memset(&packet2, 0, sizeof(packet2));
  5552. mavlink_msg_power_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.Vcc , packet1.Vservo , packet1.flags );
  5553. mavlink_msg_power_status_decode(&msg, &packet2);
  5554. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5555. memset(&packet2, 0, sizeof(packet2));
  5556. mavlink_msg_to_send_buffer(buffer, &msg);
  5557. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5558. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5559. }
  5560. mavlink_msg_power_status_decode(last_msg, &packet2);
  5561. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5562. memset(&packet2, 0, sizeof(packet2));
  5563. mavlink_msg_power_status_send(MAVLINK_COMM_1 , packet1.Vcc , packet1.Vservo , packet1.flags );
  5564. mavlink_msg_power_status_decode(last_msg, &packet2);
  5565. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5566. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5567. MAVLINK_ASSERT(mavlink_get_message_info_by_name("POWER_STATUS") != NULL);
  5568. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_POWER_STATUS) != NULL);
  5569. #endif
  5570. }
  5571. static void mavlink_test_serial_control(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5572. {
  5573. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5574. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5575. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SERIAL_CONTROL >= 256) {
  5576. return;
  5577. }
  5578. #endif
  5579. mavlink_message_t msg;
  5580. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5581. uint16_t i;
  5582. mavlink_serial_control_t packet_in = {
  5583. 963497464,17443,151,218,29,{ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 },178,245
  5584. };
  5585. mavlink_serial_control_t packet1, packet2;
  5586. memset(&packet1, 0, sizeof(packet1));
  5587. packet1.baudrate = packet_in.baudrate;
  5588. packet1.timeout = packet_in.timeout;
  5589. packet1.device = packet_in.device;
  5590. packet1.flags = packet_in.flags;
  5591. packet1.count = packet_in.count;
  5592. packet1.target_system = packet_in.target_system;
  5593. packet1.target_component = packet_in.target_component;
  5594. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*70);
  5595. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5596. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5597. // cope with extensions
  5598. memset(MAVLINK_MSG_ID_SERIAL_CONTROL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SERIAL_CONTROL_MIN_LEN);
  5599. }
  5600. #endif
  5601. memset(&packet2, 0, sizeof(packet2));
  5602. mavlink_msg_serial_control_encode(system_id, component_id, &msg, &packet1);
  5603. mavlink_msg_serial_control_decode(&msg, &packet2);
  5604. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5605. memset(&packet2, 0, sizeof(packet2));
  5606. mavlink_msg_serial_control_pack(system_id, component_id, &msg , packet1.device , packet1.flags , packet1.timeout , packet1.baudrate , packet1.count , packet1.data , packet1.target_system , packet1.target_component );
  5607. mavlink_msg_serial_control_decode(&msg, &packet2);
  5608. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5609. memset(&packet2, 0, sizeof(packet2));
  5610. mavlink_msg_serial_control_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.device , packet1.flags , packet1.timeout , packet1.baudrate , packet1.count , packet1.data , packet1.target_system , packet1.target_component );
  5611. mavlink_msg_serial_control_decode(&msg, &packet2);
  5612. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5613. memset(&packet2, 0, sizeof(packet2));
  5614. mavlink_msg_to_send_buffer(buffer, &msg);
  5615. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5616. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5617. }
  5618. mavlink_msg_serial_control_decode(last_msg, &packet2);
  5619. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5620. memset(&packet2, 0, sizeof(packet2));
  5621. mavlink_msg_serial_control_send(MAVLINK_COMM_1 , packet1.device , packet1.flags , packet1.timeout , packet1.baudrate , packet1.count , packet1.data , packet1.target_system , packet1.target_component );
  5622. mavlink_msg_serial_control_decode(last_msg, &packet2);
  5623. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5624. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5625. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SERIAL_CONTROL") != NULL);
  5626. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SERIAL_CONTROL) != NULL);
  5627. #endif
  5628. }
  5629. static void mavlink_test_gps_rtk(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5630. {
  5631. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5632. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5633. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_RTK >= 256) {
  5634. return;
  5635. }
  5636. #endif
  5637. mavlink_message_t msg;
  5638. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5639. uint16_t i;
  5640. mavlink_gps_rtk_t packet_in = {
  5641. 963497464,963497672,963497880,963498088,963498296,963498504,963498712,18691,223,34,101,168,235
  5642. };
  5643. mavlink_gps_rtk_t packet1, packet2;
  5644. memset(&packet1, 0, sizeof(packet1));
  5645. packet1.time_last_baseline_ms = packet_in.time_last_baseline_ms;
  5646. packet1.tow = packet_in.tow;
  5647. packet1.baseline_a_mm = packet_in.baseline_a_mm;
  5648. packet1.baseline_b_mm = packet_in.baseline_b_mm;
  5649. packet1.baseline_c_mm = packet_in.baseline_c_mm;
  5650. packet1.accuracy = packet_in.accuracy;
  5651. packet1.iar_num_hypotheses = packet_in.iar_num_hypotheses;
  5652. packet1.wn = packet_in.wn;
  5653. packet1.rtk_receiver_id = packet_in.rtk_receiver_id;
  5654. packet1.rtk_health = packet_in.rtk_health;
  5655. packet1.rtk_rate = packet_in.rtk_rate;
  5656. packet1.nsats = packet_in.nsats;
  5657. packet1.baseline_coords_type = packet_in.baseline_coords_type;
  5658. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5659. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5660. // cope with extensions
  5661. memset(MAVLINK_MSG_ID_GPS_RTK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_RTK_MIN_LEN);
  5662. }
  5663. #endif
  5664. memset(&packet2, 0, sizeof(packet2));
  5665. mavlink_msg_gps_rtk_encode(system_id, component_id, &msg, &packet1);
  5666. mavlink_msg_gps_rtk_decode(&msg, &packet2);
  5667. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5668. memset(&packet2, 0, sizeof(packet2));
  5669. mavlink_msg_gps_rtk_pack(system_id, component_id, &msg , packet1.time_last_baseline_ms , packet1.rtk_receiver_id , packet1.wn , packet1.tow , packet1.rtk_health , packet1.rtk_rate , packet1.nsats , packet1.baseline_coords_type , packet1.baseline_a_mm , packet1.baseline_b_mm , packet1.baseline_c_mm , packet1.accuracy , packet1.iar_num_hypotheses );
  5670. mavlink_msg_gps_rtk_decode(&msg, &packet2);
  5671. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5672. memset(&packet2, 0, sizeof(packet2));
  5673. mavlink_msg_gps_rtk_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_last_baseline_ms , packet1.rtk_receiver_id , packet1.wn , packet1.tow , packet1.rtk_health , packet1.rtk_rate , packet1.nsats , packet1.baseline_coords_type , packet1.baseline_a_mm , packet1.baseline_b_mm , packet1.baseline_c_mm , packet1.accuracy , packet1.iar_num_hypotheses );
  5674. mavlink_msg_gps_rtk_decode(&msg, &packet2);
  5675. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5676. memset(&packet2, 0, sizeof(packet2));
  5677. mavlink_msg_to_send_buffer(buffer, &msg);
  5678. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5679. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5680. }
  5681. mavlink_msg_gps_rtk_decode(last_msg, &packet2);
  5682. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5683. memset(&packet2, 0, sizeof(packet2));
  5684. mavlink_msg_gps_rtk_send(MAVLINK_COMM_1 , packet1.time_last_baseline_ms , packet1.rtk_receiver_id , packet1.wn , packet1.tow , packet1.rtk_health , packet1.rtk_rate , packet1.nsats , packet1.baseline_coords_type , packet1.baseline_a_mm , packet1.baseline_b_mm , packet1.baseline_c_mm , packet1.accuracy , packet1.iar_num_hypotheses );
  5685. mavlink_msg_gps_rtk_decode(last_msg, &packet2);
  5686. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5687. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5688. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_RTK") != NULL);
  5689. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_RTK) != NULL);
  5690. #endif
  5691. }
  5692. static void mavlink_test_gps2_rtk(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5693. {
  5694. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5695. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5696. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS2_RTK >= 256) {
  5697. return;
  5698. }
  5699. #endif
  5700. mavlink_message_t msg;
  5701. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5702. uint16_t i;
  5703. mavlink_gps2_rtk_t packet_in = {
  5704. 963497464,963497672,963497880,963498088,963498296,963498504,963498712,18691,223,34,101,168,235
  5705. };
  5706. mavlink_gps2_rtk_t packet1, packet2;
  5707. memset(&packet1, 0, sizeof(packet1));
  5708. packet1.time_last_baseline_ms = packet_in.time_last_baseline_ms;
  5709. packet1.tow = packet_in.tow;
  5710. packet1.baseline_a_mm = packet_in.baseline_a_mm;
  5711. packet1.baseline_b_mm = packet_in.baseline_b_mm;
  5712. packet1.baseline_c_mm = packet_in.baseline_c_mm;
  5713. packet1.accuracy = packet_in.accuracy;
  5714. packet1.iar_num_hypotheses = packet_in.iar_num_hypotheses;
  5715. packet1.wn = packet_in.wn;
  5716. packet1.rtk_receiver_id = packet_in.rtk_receiver_id;
  5717. packet1.rtk_health = packet_in.rtk_health;
  5718. packet1.rtk_rate = packet_in.rtk_rate;
  5719. packet1.nsats = packet_in.nsats;
  5720. packet1.baseline_coords_type = packet_in.baseline_coords_type;
  5721. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5722. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5723. // cope with extensions
  5724. memset(MAVLINK_MSG_ID_GPS2_RTK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS2_RTK_MIN_LEN);
  5725. }
  5726. #endif
  5727. memset(&packet2, 0, sizeof(packet2));
  5728. mavlink_msg_gps2_rtk_encode(system_id, component_id, &msg, &packet1);
  5729. mavlink_msg_gps2_rtk_decode(&msg, &packet2);
  5730. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5731. memset(&packet2, 0, sizeof(packet2));
  5732. mavlink_msg_gps2_rtk_pack(system_id, component_id, &msg , packet1.time_last_baseline_ms , packet1.rtk_receiver_id , packet1.wn , packet1.tow , packet1.rtk_health , packet1.rtk_rate , packet1.nsats , packet1.baseline_coords_type , packet1.baseline_a_mm , packet1.baseline_b_mm , packet1.baseline_c_mm , packet1.accuracy , packet1.iar_num_hypotheses );
  5733. mavlink_msg_gps2_rtk_decode(&msg, &packet2);
  5734. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5735. memset(&packet2, 0, sizeof(packet2));
  5736. mavlink_msg_gps2_rtk_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_last_baseline_ms , packet1.rtk_receiver_id , packet1.wn , packet1.tow , packet1.rtk_health , packet1.rtk_rate , packet1.nsats , packet1.baseline_coords_type , packet1.baseline_a_mm , packet1.baseline_b_mm , packet1.baseline_c_mm , packet1.accuracy , packet1.iar_num_hypotheses );
  5737. mavlink_msg_gps2_rtk_decode(&msg, &packet2);
  5738. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5739. memset(&packet2, 0, sizeof(packet2));
  5740. mavlink_msg_to_send_buffer(buffer, &msg);
  5741. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5742. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5743. }
  5744. mavlink_msg_gps2_rtk_decode(last_msg, &packet2);
  5745. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5746. memset(&packet2, 0, sizeof(packet2));
  5747. mavlink_msg_gps2_rtk_send(MAVLINK_COMM_1 , packet1.time_last_baseline_ms , packet1.rtk_receiver_id , packet1.wn , packet1.tow , packet1.rtk_health , packet1.rtk_rate , packet1.nsats , packet1.baseline_coords_type , packet1.baseline_a_mm , packet1.baseline_b_mm , packet1.baseline_c_mm , packet1.accuracy , packet1.iar_num_hypotheses );
  5748. mavlink_msg_gps2_rtk_decode(last_msg, &packet2);
  5749. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5750. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5751. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS2_RTK") != NULL);
  5752. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS2_RTK) != NULL);
  5753. #endif
  5754. }
  5755. static void mavlink_test_scaled_imu3(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5756. {
  5757. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5758. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5759. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SCALED_IMU3 >= 256) {
  5760. return;
  5761. }
  5762. #endif
  5763. mavlink_message_t msg;
  5764. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5765. uint16_t i;
  5766. mavlink_scaled_imu3_t packet_in = {
  5767. 963497464,17443,17547,17651,17755,17859,17963,18067,18171,18275,18379
  5768. };
  5769. mavlink_scaled_imu3_t packet1, packet2;
  5770. memset(&packet1, 0, sizeof(packet1));
  5771. packet1.time_boot_ms = packet_in.time_boot_ms;
  5772. packet1.xacc = packet_in.xacc;
  5773. packet1.yacc = packet_in.yacc;
  5774. packet1.zacc = packet_in.zacc;
  5775. packet1.xgyro = packet_in.xgyro;
  5776. packet1.ygyro = packet_in.ygyro;
  5777. packet1.zgyro = packet_in.zgyro;
  5778. packet1.xmag = packet_in.xmag;
  5779. packet1.ymag = packet_in.ymag;
  5780. packet1.zmag = packet_in.zmag;
  5781. packet1.temperature = packet_in.temperature;
  5782. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5783. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5784. // cope with extensions
  5785. memset(MAVLINK_MSG_ID_SCALED_IMU3_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SCALED_IMU3_MIN_LEN);
  5786. }
  5787. #endif
  5788. memset(&packet2, 0, sizeof(packet2));
  5789. mavlink_msg_scaled_imu3_encode(system_id, component_id, &msg, &packet1);
  5790. mavlink_msg_scaled_imu3_decode(&msg, &packet2);
  5791. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5792. memset(&packet2, 0, sizeof(packet2));
  5793. mavlink_msg_scaled_imu3_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  5794. mavlink_msg_scaled_imu3_decode(&msg, &packet2);
  5795. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5796. memset(&packet2, 0, sizeof(packet2));
  5797. mavlink_msg_scaled_imu3_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  5798. mavlink_msg_scaled_imu3_decode(&msg, &packet2);
  5799. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5800. memset(&packet2, 0, sizeof(packet2));
  5801. mavlink_msg_to_send_buffer(buffer, &msg);
  5802. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5803. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5804. }
  5805. mavlink_msg_scaled_imu3_decode(last_msg, &packet2);
  5806. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5807. memset(&packet2, 0, sizeof(packet2));
  5808. mavlink_msg_scaled_imu3_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro , packet1.xmag , packet1.ymag , packet1.zmag , packet1.temperature );
  5809. mavlink_msg_scaled_imu3_decode(last_msg, &packet2);
  5810. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5811. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5812. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SCALED_IMU3") != NULL);
  5813. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SCALED_IMU3) != NULL);
  5814. #endif
  5815. }
  5816. static void mavlink_test_data_transmission_handshake(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5817. {
  5818. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5819. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5820. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE >= 256) {
  5821. return;
  5822. }
  5823. #endif
  5824. mavlink_message_t msg;
  5825. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5826. uint16_t i;
  5827. mavlink_data_transmission_handshake_t packet_in = {
  5828. 963497464,17443,17547,17651,163,230,41
  5829. };
  5830. mavlink_data_transmission_handshake_t packet1, packet2;
  5831. memset(&packet1, 0, sizeof(packet1));
  5832. packet1.size = packet_in.size;
  5833. packet1.width = packet_in.width;
  5834. packet1.height = packet_in.height;
  5835. packet1.packets = packet_in.packets;
  5836. packet1.type = packet_in.type;
  5837. packet1.payload = packet_in.payload;
  5838. packet1.jpg_quality = packet_in.jpg_quality;
  5839. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5840. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5841. // cope with extensions
  5842. memset(MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE_MIN_LEN);
  5843. }
  5844. #endif
  5845. memset(&packet2, 0, sizeof(packet2));
  5846. mavlink_msg_data_transmission_handshake_encode(system_id, component_id, &msg, &packet1);
  5847. mavlink_msg_data_transmission_handshake_decode(&msg, &packet2);
  5848. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5849. memset(&packet2, 0, sizeof(packet2));
  5850. mavlink_msg_data_transmission_handshake_pack(system_id, component_id, &msg , packet1.type , packet1.size , packet1.width , packet1.height , packet1.packets , packet1.payload , packet1.jpg_quality );
  5851. mavlink_msg_data_transmission_handshake_decode(&msg, &packet2);
  5852. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5853. memset(&packet2, 0, sizeof(packet2));
  5854. mavlink_msg_data_transmission_handshake_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.type , packet1.size , packet1.width , packet1.height , packet1.packets , packet1.payload , packet1.jpg_quality );
  5855. mavlink_msg_data_transmission_handshake_decode(&msg, &packet2);
  5856. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5857. memset(&packet2, 0, sizeof(packet2));
  5858. mavlink_msg_to_send_buffer(buffer, &msg);
  5859. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5860. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5861. }
  5862. mavlink_msg_data_transmission_handshake_decode(last_msg, &packet2);
  5863. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5864. memset(&packet2, 0, sizeof(packet2));
  5865. mavlink_msg_data_transmission_handshake_send(MAVLINK_COMM_1 , packet1.type , packet1.size , packet1.width , packet1.height , packet1.packets , packet1.payload , packet1.jpg_quality );
  5866. mavlink_msg_data_transmission_handshake_decode(last_msg, &packet2);
  5867. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5868. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5869. MAVLINK_ASSERT(mavlink_get_message_info_by_name("DATA_TRANSMISSION_HANDSHAKE") != NULL);
  5870. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE) != NULL);
  5871. #endif
  5872. }
  5873. static void mavlink_test_encapsulated_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5874. {
  5875. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5876. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5877. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ENCAPSULATED_DATA >= 256) {
  5878. return;
  5879. }
  5880. #endif
  5881. mavlink_message_t msg;
  5882. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5883. uint16_t i;
  5884. mavlink_encapsulated_data_t packet_in = {
  5885. 17235,{ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135 }
  5886. };
  5887. mavlink_encapsulated_data_t packet1, packet2;
  5888. memset(&packet1, 0, sizeof(packet1));
  5889. packet1.seqnr = packet_in.seqnr;
  5890. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*253);
  5891. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5892. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5893. // cope with extensions
  5894. memset(MAVLINK_MSG_ID_ENCAPSULATED_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ENCAPSULATED_DATA_MIN_LEN);
  5895. }
  5896. #endif
  5897. memset(&packet2, 0, sizeof(packet2));
  5898. mavlink_msg_encapsulated_data_encode(system_id, component_id, &msg, &packet1);
  5899. mavlink_msg_encapsulated_data_decode(&msg, &packet2);
  5900. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5901. memset(&packet2, 0, sizeof(packet2));
  5902. mavlink_msg_encapsulated_data_pack(system_id, component_id, &msg , packet1.seqnr , packet1.data );
  5903. mavlink_msg_encapsulated_data_decode(&msg, &packet2);
  5904. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5905. memset(&packet2, 0, sizeof(packet2));
  5906. mavlink_msg_encapsulated_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.seqnr , packet1.data );
  5907. mavlink_msg_encapsulated_data_decode(&msg, &packet2);
  5908. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5909. memset(&packet2, 0, sizeof(packet2));
  5910. mavlink_msg_to_send_buffer(buffer, &msg);
  5911. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5912. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5913. }
  5914. mavlink_msg_encapsulated_data_decode(last_msg, &packet2);
  5915. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5916. memset(&packet2, 0, sizeof(packet2));
  5917. mavlink_msg_encapsulated_data_send(MAVLINK_COMM_1 , packet1.seqnr , packet1.data );
  5918. mavlink_msg_encapsulated_data_decode(last_msg, &packet2);
  5919. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5920. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5921. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ENCAPSULATED_DATA") != NULL);
  5922. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ENCAPSULATED_DATA) != NULL);
  5923. #endif
  5924. }
  5925. static void mavlink_test_distance_sensor(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5926. {
  5927. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5928. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5929. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_DISTANCE_SENSOR >= 256) {
  5930. return;
  5931. }
  5932. #endif
  5933. mavlink_message_t msg;
  5934. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5935. uint16_t i;
  5936. mavlink_distance_sensor_t packet_in = {
  5937. 963497464,17443,17547,17651,163,230,41,108,115.0,143.0,{ 171.0, 172.0, 173.0, 174.0 },247
  5938. };
  5939. mavlink_distance_sensor_t packet1, packet2;
  5940. memset(&packet1, 0, sizeof(packet1));
  5941. packet1.time_boot_ms = packet_in.time_boot_ms;
  5942. packet1.min_distance = packet_in.min_distance;
  5943. packet1.max_distance = packet_in.max_distance;
  5944. packet1.current_distance = packet_in.current_distance;
  5945. packet1.type = packet_in.type;
  5946. packet1.id = packet_in.id;
  5947. packet1.orientation = packet_in.orientation;
  5948. packet1.covariance = packet_in.covariance;
  5949. packet1.horizontal_fov = packet_in.horizontal_fov;
  5950. packet1.vertical_fov = packet_in.vertical_fov;
  5951. packet1.signal_quality = packet_in.signal_quality;
  5952. mav_array_memcpy(packet1.quaternion, packet_in.quaternion, sizeof(float)*4);
  5953. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5954. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  5955. // cope with extensions
  5956. memset(MAVLINK_MSG_ID_DISTANCE_SENSOR_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_DISTANCE_SENSOR_MIN_LEN);
  5957. }
  5958. #endif
  5959. memset(&packet2, 0, sizeof(packet2));
  5960. mavlink_msg_distance_sensor_encode(system_id, component_id, &msg, &packet1);
  5961. mavlink_msg_distance_sensor_decode(&msg, &packet2);
  5962. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5963. memset(&packet2, 0, sizeof(packet2));
  5964. mavlink_msg_distance_sensor_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.min_distance , packet1.max_distance , packet1.current_distance , packet1.type , packet1.id , packet1.orientation , packet1.covariance , packet1.horizontal_fov , packet1.vertical_fov , packet1.quaternion , packet1.signal_quality );
  5965. mavlink_msg_distance_sensor_decode(&msg, &packet2);
  5966. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5967. memset(&packet2, 0, sizeof(packet2));
  5968. mavlink_msg_distance_sensor_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.min_distance , packet1.max_distance , packet1.current_distance , packet1.type , packet1.id , packet1.orientation , packet1.covariance , packet1.horizontal_fov , packet1.vertical_fov , packet1.quaternion , packet1.signal_quality );
  5969. mavlink_msg_distance_sensor_decode(&msg, &packet2);
  5970. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5971. memset(&packet2, 0, sizeof(packet2));
  5972. mavlink_msg_to_send_buffer(buffer, &msg);
  5973. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  5974. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  5975. }
  5976. mavlink_msg_distance_sensor_decode(last_msg, &packet2);
  5977. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5978. memset(&packet2, 0, sizeof(packet2));
  5979. mavlink_msg_distance_sensor_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.min_distance , packet1.max_distance , packet1.current_distance , packet1.type , packet1.id , packet1.orientation , packet1.covariance , packet1.horizontal_fov , packet1.vertical_fov , packet1.quaternion , packet1.signal_quality );
  5980. mavlink_msg_distance_sensor_decode(last_msg, &packet2);
  5981. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  5982. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  5983. MAVLINK_ASSERT(mavlink_get_message_info_by_name("DISTANCE_SENSOR") != NULL);
  5984. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_DISTANCE_SENSOR) != NULL);
  5985. #endif
  5986. }
  5987. static void mavlink_test_terrain_request(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  5988. {
  5989. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  5990. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  5991. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TERRAIN_REQUEST >= 256) {
  5992. return;
  5993. }
  5994. #endif
  5995. mavlink_message_t msg;
  5996. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  5997. uint16_t i;
  5998. mavlink_terrain_request_t packet_in = {
  5999. 93372036854775807ULL,963497880,963498088,18067
  6000. };
  6001. mavlink_terrain_request_t packet1, packet2;
  6002. memset(&packet1, 0, sizeof(packet1));
  6003. packet1.mask = packet_in.mask;
  6004. packet1.lat = packet_in.lat;
  6005. packet1.lon = packet_in.lon;
  6006. packet1.grid_spacing = packet_in.grid_spacing;
  6007. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6008. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6009. // cope with extensions
  6010. memset(MAVLINK_MSG_ID_TERRAIN_REQUEST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TERRAIN_REQUEST_MIN_LEN);
  6011. }
  6012. #endif
  6013. memset(&packet2, 0, sizeof(packet2));
  6014. mavlink_msg_terrain_request_encode(system_id, component_id, &msg, &packet1);
  6015. mavlink_msg_terrain_request_decode(&msg, &packet2);
  6016. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6017. memset(&packet2, 0, sizeof(packet2));
  6018. mavlink_msg_terrain_request_pack(system_id, component_id, &msg , packet1.lat , packet1.lon , packet1.grid_spacing , packet1.mask );
  6019. mavlink_msg_terrain_request_decode(&msg, &packet2);
  6020. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6021. memset(&packet2, 0, sizeof(packet2));
  6022. mavlink_msg_terrain_request_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.lat , packet1.lon , packet1.grid_spacing , packet1.mask );
  6023. mavlink_msg_terrain_request_decode(&msg, &packet2);
  6024. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6025. memset(&packet2, 0, sizeof(packet2));
  6026. mavlink_msg_to_send_buffer(buffer, &msg);
  6027. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6028. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6029. }
  6030. mavlink_msg_terrain_request_decode(last_msg, &packet2);
  6031. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6032. memset(&packet2, 0, sizeof(packet2));
  6033. mavlink_msg_terrain_request_send(MAVLINK_COMM_1 , packet1.lat , packet1.lon , packet1.grid_spacing , packet1.mask );
  6034. mavlink_msg_terrain_request_decode(last_msg, &packet2);
  6035. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6036. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6037. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TERRAIN_REQUEST") != NULL);
  6038. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TERRAIN_REQUEST) != NULL);
  6039. #endif
  6040. }
  6041. static void mavlink_test_terrain_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6042. {
  6043. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6044. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6045. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TERRAIN_DATA >= 256) {
  6046. return;
  6047. }
  6048. #endif
  6049. mavlink_message_t msg;
  6050. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6051. uint16_t i;
  6052. mavlink_terrain_data_t packet_in = {
  6053. 963497464,963497672,17651,{ 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770 },3
  6054. };
  6055. mavlink_terrain_data_t packet1, packet2;
  6056. memset(&packet1, 0, sizeof(packet1));
  6057. packet1.lat = packet_in.lat;
  6058. packet1.lon = packet_in.lon;
  6059. packet1.grid_spacing = packet_in.grid_spacing;
  6060. packet1.gridbit = packet_in.gridbit;
  6061. mav_array_memcpy(packet1.data, packet_in.data, sizeof(int16_t)*16);
  6062. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6063. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6064. // cope with extensions
  6065. memset(MAVLINK_MSG_ID_TERRAIN_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TERRAIN_DATA_MIN_LEN);
  6066. }
  6067. #endif
  6068. memset(&packet2, 0, sizeof(packet2));
  6069. mavlink_msg_terrain_data_encode(system_id, component_id, &msg, &packet1);
  6070. mavlink_msg_terrain_data_decode(&msg, &packet2);
  6071. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6072. memset(&packet2, 0, sizeof(packet2));
  6073. mavlink_msg_terrain_data_pack(system_id, component_id, &msg , packet1.lat , packet1.lon , packet1.grid_spacing , packet1.gridbit , packet1.data );
  6074. mavlink_msg_terrain_data_decode(&msg, &packet2);
  6075. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6076. memset(&packet2, 0, sizeof(packet2));
  6077. mavlink_msg_terrain_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.lat , packet1.lon , packet1.grid_spacing , packet1.gridbit , packet1.data );
  6078. mavlink_msg_terrain_data_decode(&msg, &packet2);
  6079. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6080. memset(&packet2, 0, sizeof(packet2));
  6081. mavlink_msg_to_send_buffer(buffer, &msg);
  6082. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6083. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6084. }
  6085. mavlink_msg_terrain_data_decode(last_msg, &packet2);
  6086. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6087. memset(&packet2, 0, sizeof(packet2));
  6088. mavlink_msg_terrain_data_send(MAVLINK_COMM_1 , packet1.lat , packet1.lon , packet1.grid_spacing , packet1.gridbit , packet1.data );
  6089. mavlink_msg_terrain_data_decode(last_msg, &packet2);
  6090. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6091. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6092. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TERRAIN_DATA") != NULL);
  6093. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TERRAIN_DATA) != NULL);
  6094. #endif
  6095. }
  6096. static void mavlink_test_terrain_check(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6097. {
  6098. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6099. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6100. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TERRAIN_CHECK >= 256) {
  6101. return;
  6102. }
  6103. #endif
  6104. mavlink_message_t msg;
  6105. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6106. uint16_t i;
  6107. mavlink_terrain_check_t packet_in = {
  6108. 963497464,963497672
  6109. };
  6110. mavlink_terrain_check_t packet1, packet2;
  6111. memset(&packet1, 0, sizeof(packet1));
  6112. packet1.lat = packet_in.lat;
  6113. packet1.lon = packet_in.lon;
  6114. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6115. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6116. // cope with extensions
  6117. memset(MAVLINK_MSG_ID_TERRAIN_CHECK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TERRAIN_CHECK_MIN_LEN);
  6118. }
  6119. #endif
  6120. memset(&packet2, 0, sizeof(packet2));
  6121. mavlink_msg_terrain_check_encode(system_id, component_id, &msg, &packet1);
  6122. mavlink_msg_terrain_check_decode(&msg, &packet2);
  6123. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6124. memset(&packet2, 0, sizeof(packet2));
  6125. mavlink_msg_terrain_check_pack(system_id, component_id, &msg , packet1.lat , packet1.lon );
  6126. mavlink_msg_terrain_check_decode(&msg, &packet2);
  6127. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6128. memset(&packet2, 0, sizeof(packet2));
  6129. mavlink_msg_terrain_check_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.lat , packet1.lon );
  6130. mavlink_msg_terrain_check_decode(&msg, &packet2);
  6131. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6132. memset(&packet2, 0, sizeof(packet2));
  6133. mavlink_msg_to_send_buffer(buffer, &msg);
  6134. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6135. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6136. }
  6137. mavlink_msg_terrain_check_decode(last_msg, &packet2);
  6138. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6139. memset(&packet2, 0, sizeof(packet2));
  6140. mavlink_msg_terrain_check_send(MAVLINK_COMM_1 , packet1.lat , packet1.lon );
  6141. mavlink_msg_terrain_check_decode(last_msg, &packet2);
  6142. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6143. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6144. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TERRAIN_CHECK") != NULL);
  6145. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TERRAIN_CHECK) != NULL);
  6146. #endif
  6147. }
  6148. static void mavlink_test_terrain_report(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6149. {
  6150. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6151. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6152. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TERRAIN_REPORT >= 256) {
  6153. return;
  6154. }
  6155. #endif
  6156. mavlink_message_t msg;
  6157. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6158. uint16_t i;
  6159. mavlink_terrain_report_t packet_in = {
  6160. 963497464,963497672,73.0,101.0,18067,18171,18275
  6161. };
  6162. mavlink_terrain_report_t packet1, packet2;
  6163. memset(&packet1, 0, sizeof(packet1));
  6164. packet1.lat = packet_in.lat;
  6165. packet1.lon = packet_in.lon;
  6166. packet1.terrain_height = packet_in.terrain_height;
  6167. packet1.current_height = packet_in.current_height;
  6168. packet1.spacing = packet_in.spacing;
  6169. packet1.pending = packet_in.pending;
  6170. packet1.loaded = packet_in.loaded;
  6171. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6172. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6173. // cope with extensions
  6174. memset(MAVLINK_MSG_ID_TERRAIN_REPORT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TERRAIN_REPORT_MIN_LEN);
  6175. }
  6176. #endif
  6177. memset(&packet2, 0, sizeof(packet2));
  6178. mavlink_msg_terrain_report_encode(system_id, component_id, &msg, &packet1);
  6179. mavlink_msg_terrain_report_decode(&msg, &packet2);
  6180. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6181. memset(&packet2, 0, sizeof(packet2));
  6182. mavlink_msg_terrain_report_pack(system_id, component_id, &msg , packet1.lat , packet1.lon , packet1.spacing , packet1.terrain_height , packet1.current_height , packet1.pending , packet1.loaded );
  6183. mavlink_msg_terrain_report_decode(&msg, &packet2);
  6184. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6185. memset(&packet2, 0, sizeof(packet2));
  6186. mavlink_msg_terrain_report_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.lat , packet1.lon , packet1.spacing , packet1.terrain_height , packet1.current_height , packet1.pending , packet1.loaded );
  6187. mavlink_msg_terrain_report_decode(&msg, &packet2);
  6188. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6189. memset(&packet2, 0, sizeof(packet2));
  6190. mavlink_msg_to_send_buffer(buffer, &msg);
  6191. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6192. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6193. }
  6194. mavlink_msg_terrain_report_decode(last_msg, &packet2);
  6195. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6196. memset(&packet2, 0, sizeof(packet2));
  6197. mavlink_msg_terrain_report_send(MAVLINK_COMM_1 , packet1.lat , packet1.lon , packet1.spacing , packet1.terrain_height , packet1.current_height , packet1.pending , packet1.loaded );
  6198. mavlink_msg_terrain_report_decode(last_msg, &packet2);
  6199. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6200. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6201. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TERRAIN_REPORT") != NULL);
  6202. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TERRAIN_REPORT) != NULL);
  6203. #endif
  6204. }
  6205. static void mavlink_test_scaled_pressure2(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6206. {
  6207. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6208. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6209. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SCALED_PRESSURE2 >= 256) {
  6210. return;
  6211. }
  6212. #endif
  6213. mavlink_message_t msg;
  6214. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6215. uint16_t i;
  6216. mavlink_scaled_pressure2_t packet_in = {
  6217. 963497464,45.0,73.0,17859,17963
  6218. };
  6219. mavlink_scaled_pressure2_t packet1, packet2;
  6220. memset(&packet1, 0, sizeof(packet1));
  6221. packet1.time_boot_ms = packet_in.time_boot_ms;
  6222. packet1.press_abs = packet_in.press_abs;
  6223. packet1.press_diff = packet_in.press_diff;
  6224. packet1.temperature = packet_in.temperature;
  6225. packet1.temperature_press_diff = packet_in.temperature_press_diff;
  6226. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6227. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6228. // cope with extensions
  6229. memset(MAVLINK_MSG_ID_SCALED_PRESSURE2_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SCALED_PRESSURE2_MIN_LEN);
  6230. }
  6231. #endif
  6232. memset(&packet2, 0, sizeof(packet2));
  6233. mavlink_msg_scaled_pressure2_encode(system_id, component_id, &msg, &packet1);
  6234. mavlink_msg_scaled_pressure2_decode(&msg, &packet2);
  6235. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6236. memset(&packet2, 0, sizeof(packet2));
  6237. mavlink_msg_scaled_pressure2_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  6238. mavlink_msg_scaled_pressure2_decode(&msg, &packet2);
  6239. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6240. memset(&packet2, 0, sizeof(packet2));
  6241. mavlink_msg_scaled_pressure2_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  6242. mavlink_msg_scaled_pressure2_decode(&msg, &packet2);
  6243. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6244. memset(&packet2, 0, sizeof(packet2));
  6245. mavlink_msg_to_send_buffer(buffer, &msg);
  6246. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6247. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6248. }
  6249. mavlink_msg_scaled_pressure2_decode(last_msg, &packet2);
  6250. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6251. memset(&packet2, 0, sizeof(packet2));
  6252. mavlink_msg_scaled_pressure2_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  6253. mavlink_msg_scaled_pressure2_decode(last_msg, &packet2);
  6254. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6255. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6256. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SCALED_PRESSURE2") != NULL);
  6257. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SCALED_PRESSURE2) != NULL);
  6258. #endif
  6259. }
  6260. static void mavlink_test_att_pos_mocap(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6261. {
  6262. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6263. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6264. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ATT_POS_MOCAP >= 256) {
  6265. return;
  6266. }
  6267. #endif
  6268. mavlink_message_t msg;
  6269. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6270. uint16_t i;
  6271. mavlink_att_pos_mocap_t packet_in = {
  6272. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0 },185.0,213.0,241.0,{ 269.0, 270.0, 271.0, 272.0, 273.0, 274.0, 275.0, 276.0, 277.0, 278.0, 279.0, 280.0, 281.0, 282.0, 283.0, 284.0, 285.0, 286.0, 287.0, 288.0, 289.0 }
  6273. };
  6274. mavlink_att_pos_mocap_t packet1, packet2;
  6275. memset(&packet1, 0, sizeof(packet1));
  6276. packet1.time_usec = packet_in.time_usec;
  6277. packet1.x = packet_in.x;
  6278. packet1.y = packet_in.y;
  6279. packet1.z = packet_in.z;
  6280. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  6281. mav_array_memcpy(packet1.covariance, packet_in.covariance, sizeof(float)*21);
  6282. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6283. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6284. // cope with extensions
  6285. memset(MAVLINK_MSG_ID_ATT_POS_MOCAP_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ATT_POS_MOCAP_MIN_LEN);
  6286. }
  6287. #endif
  6288. memset(&packet2, 0, sizeof(packet2));
  6289. mavlink_msg_att_pos_mocap_encode(system_id, component_id, &msg, &packet1);
  6290. mavlink_msg_att_pos_mocap_decode(&msg, &packet2);
  6291. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6292. memset(&packet2, 0, sizeof(packet2));
  6293. mavlink_msg_att_pos_mocap_pack(system_id, component_id, &msg , packet1.time_usec , packet1.q , packet1.x , packet1.y , packet1.z , packet1.covariance );
  6294. mavlink_msg_att_pos_mocap_decode(&msg, &packet2);
  6295. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6296. memset(&packet2, 0, sizeof(packet2));
  6297. mavlink_msg_att_pos_mocap_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.q , packet1.x , packet1.y , packet1.z , packet1.covariance );
  6298. mavlink_msg_att_pos_mocap_decode(&msg, &packet2);
  6299. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6300. memset(&packet2, 0, sizeof(packet2));
  6301. mavlink_msg_to_send_buffer(buffer, &msg);
  6302. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6303. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6304. }
  6305. mavlink_msg_att_pos_mocap_decode(last_msg, &packet2);
  6306. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6307. memset(&packet2, 0, sizeof(packet2));
  6308. mavlink_msg_att_pos_mocap_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.q , packet1.x , packet1.y , packet1.z , packet1.covariance );
  6309. mavlink_msg_att_pos_mocap_decode(last_msg, &packet2);
  6310. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6311. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6312. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ATT_POS_MOCAP") != NULL);
  6313. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ATT_POS_MOCAP) != NULL);
  6314. #endif
  6315. }
  6316. static void mavlink_test_set_actuator_control_target(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6317. {
  6318. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6319. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6320. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_ACTUATOR_CONTROL_TARGET >= 256) {
  6321. return;
  6322. }
  6323. #endif
  6324. mavlink_message_t msg;
  6325. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6326. uint16_t i;
  6327. mavlink_set_actuator_control_target_t packet_in = {
  6328. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0 },125,192,3
  6329. };
  6330. mavlink_set_actuator_control_target_t packet1, packet2;
  6331. memset(&packet1, 0, sizeof(packet1));
  6332. packet1.time_usec = packet_in.time_usec;
  6333. packet1.group_mlx = packet_in.group_mlx;
  6334. packet1.target_system = packet_in.target_system;
  6335. packet1.target_component = packet_in.target_component;
  6336. mav_array_memcpy(packet1.controls, packet_in.controls, sizeof(float)*8);
  6337. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6338. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6339. // cope with extensions
  6340. memset(MAVLINK_MSG_ID_SET_ACTUATOR_CONTROL_TARGET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_ACTUATOR_CONTROL_TARGET_MIN_LEN);
  6341. }
  6342. #endif
  6343. memset(&packet2, 0, sizeof(packet2));
  6344. mavlink_msg_set_actuator_control_target_encode(system_id, component_id, &msg, &packet1);
  6345. mavlink_msg_set_actuator_control_target_decode(&msg, &packet2);
  6346. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6347. memset(&packet2, 0, sizeof(packet2));
  6348. mavlink_msg_set_actuator_control_target_pack(system_id, component_id, &msg , packet1.time_usec , packet1.group_mlx , packet1.target_system , packet1.target_component , packet1.controls );
  6349. mavlink_msg_set_actuator_control_target_decode(&msg, &packet2);
  6350. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6351. memset(&packet2, 0, sizeof(packet2));
  6352. mavlink_msg_set_actuator_control_target_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.group_mlx , packet1.target_system , packet1.target_component , packet1.controls );
  6353. mavlink_msg_set_actuator_control_target_decode(&msg, &packet2);
  6354. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6355. memset(&packet2, 0, sizeof(packet2));
  6356. mavlink_msg_to_send_buffer(buffer, &msg);
  6357. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6358. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6359. }
  6360. mavlink_msg_set_actuator_control_target_decode(last_msg, &packet2);
  6361. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6362. memset(&packet2, 0, sizeof(packet2));
  6363. mavlink_msg_set_actuator_control_target_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.group_mlx , packet1.target_system , packet1.target_component , packet1.controls );
  6364. mavlink_msg_set_actuator_control_target_decode(last_msg, &packet2);
  6365. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6366. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6367. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_ACTUATOR_CONTROL_TARGET") != NULL);
  6368. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_ACTUATOR_CONTROL_TARGET) != NULL);
  6369. #endif
  6370. }
  6371. static void mavlink_test_actuator_control_target(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6372. {
  6373. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6374. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6375. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ACTUATOR_CONTROL_TARGET >= 256) {
  6376. return;
  6377. }
  6378. #endif
  6379. mavlink_message_t msg;
  6380. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6381. uint16_t i;
  6382. mavlink_actuator_control_target_t packet_in = {
  6383. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0 },125
  6384. };
  6385. mavlink_actuator_control_target_t packet1, packet2;
  6386. memset(&packet1, 0, sizeof(packet1));
  6387. packet1.time_usec = packet_in.time_usec;
  6388. packet1.group_mlx = packet_in.group_mlx;
  6389. mav_array_memcpy(packet1.controls, packet_in.controls, sizeof(float)*8);
  6390. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6391. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6392. // cope with extensions
  6393. memset(MAVLINK_MSG_ID_ACTUATOR_CONTROL_TARGET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ACTUATOR_CONTROL_TARGET_MIN_LEN);
  6394. }
  6395. #endif
  6396. memset(&packet2, 0, sizeof(packet2));
  6397. mavlink_msg_actuator_control_target_encode(system_id, component_id, &msg, &packet1);
  6398. mavlink_msg_actuator_control_target_decode(&msg, &packet2);
  6399. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6400. memset(&packet2, 0, sizeof(packet2));
  6401. mavlink_msg_actuator_control_target_pack(system_id, component_id, &msg , packet1.time_usec , packet1.group_mlx , packet1.controls );
  6402. mavlink_msg_actuator_control_target_decode(&msg, &packet2);
  6403. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6404. memset(&packet2, 0, sizeof(packet2));
  6405. mavlink_msg_actuator_control_target_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.group_mlx , packet1.controls );
  6406. mavlink_msg_actuator_control_target_decode(&msg, &packet2);
  6407. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6408. memset(&packet2, 0, sizeof(packet2));
  6409. mavlink_msg_to_send_buffer(buffer, &msg);
  6410. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6411. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6412. }
  6413. mavlink_msg_actuator_control_target_decode(last_msg, &packet2);
  6414. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6415. memset(&packet2, 0, sizeof(packet2));
  6416. mavlink_msg_actuator_control_target_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.group_mlx , packet1.controls );
  6417. mavlink_msg_actuator_control_target_decode(last_msg, &packet2);
  6418. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6419. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6420. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ACTUATOR_CONTROL_TARGET") != NULL);
  6421. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ACTUATOR_CONTROL_TARGET) != NULL);
  6422. #endif
  6423. }
  6424. static void mavlink_test_altitude(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6425. {
  6426. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6427. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6428. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ALTITUDE >= 256) {
  6429. return;
  6430. }
  6431. #endif
  6432. mavlink_message_t msg;
  6433. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6434. uint16_t i;
  6435. mavlink_altitude_t packet_in = {
  6436. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0
  6437. };
  6438. mavlink_altitude_t packet1, packet2;
  6439. memset(&packet1, 0, sizeof(packet1));
  6440. packet1.time_usec = packet_in.time_usec;
  6441. packet1.altitude_monotonic = packet_in.altitude_monotonic;
  6442. packet1.altitude_amsl = packet_in.altitude_amsl;
  6443. packet1.altitude_local = packet_in.altitude_local;
  6444. packet1.altitude_relative = packet_in.altitude_relative;
  6445. packet1.altitude_terrain = packet_in.altitude_terrain;
  6446. packet1.bottom_clearance = packet_in.bottom_clearance;
  6447. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6448. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6449. // cope with extensions
  6450. memset(MAVLINK_MSG_ID_ALTITUDE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ALTITUDE_MIN_LEN);
  6451. }
  6452. #endif
  6453. memset(&packet2, 0, sizeof(packet2));
  6454. mavlink_msg_altitude_encode(system_id, component_id, &msg, &packet1);
  6455. mavlink_msg_altitude_decode(&msg, &packet2);
  6456. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6457. memset(&packet2, 0, sizeof(packet2));
  6458. mavlink_msg_altitude_pack(system_id, component_id, &msg , packet1.time_usec , packet1.altitude_monotonic , packet1.altitude_amsl , packet1.altitude_local , packet1.altitude_relative , packet1.altitude_terrain , packet1.bottom_clearance );
  6459. mavlink_msg_altitude_decode(&msg, &packet2);
  6460. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6461. memset(&packet2, 0, sizeof(packet2));
  6462. mavlink_msg_altitude_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.altitude_monotonic , packet1.altitude_amsl , packet1.altitude_local , packet1.altitude_relative , packet1.altitude_terrain , packet1.bottom_clearance );
  6463. mavlink_msg_altitude_decode(&msg, &packet2);
  6464. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6465. memset(&packet2, 0, sizeof(packet2));
  6466. mavlink_msg_to_send_buffer(buffer, &msg);
  6467. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6468. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6469. }
  6470. mavlink_msg_altitude_decode(last_msg, &packet2);
  6471. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6472. memset(&packet2, 0, sizeof(packet2));
  6473. mavlink_msg_altitude_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.altitude_monotonic , packet1.altitude_amsl , packet1.altitude_local , packet1.altitude_relative , packet1.altitude_terrain , packet1.bottom_clearance );
  6474. mavlink_msg_altitude_decode(last_msg, &packet2);
  6475. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6476. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6477. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ALTITUDE") != NULL);
  6478. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ALTITUDE) != NULL);
  6479. #endif
  6480. }
  6481. static void mavlink_test_resource_request(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6482. {
  6483. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6484. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6485. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RESOURCE_REQUEST >= 256) {
  6486. return;
  6487. }
  6488. #endif
  6489. mavlink_message_t msg;
  6490. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6491. uint16_t i;
  6492. mavlink_resource_request_t packet_in = {
  6493. 5,72,{ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2 },243,{ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173 }
  6494. };
  6495. mavlink_resource_request_t packet1, packet2;
  6496. memset(&packet1, 0, sizeof(packet1));
  6497. packet1.request_id = packet_in.request_id;
  6498. packet1.uri_type = packet_in.uri_type;
  6499. packet1.transfer_type = packet_in.transfer_type;
  6500. mav_array_memcpy(packet1.uri, packet_in.uri, sizeof(uint8_t)*120);
  6501. mav_array_memcpy(packet1.storage, packet_in.storage, sizeof(uint8_t)*120);
  6502. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6503. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6504. // cope with extensions
  6505. memset(MAVLINK_MSG_ID_RESOURCE_REQUEST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RESOURCE_REQUEST_MIN_LEN);
  6506. }
  6507. #endif
  6508. memset(&packet2, 0, sizeof(packet2));
  6509. mavlink_msg_resource_request_encode(system_id, component_id, &msg, &packet1);
  6510. mavlink_msg_resource_request_decode(&msg, &packet2);
  6511. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6512. memset(&packet2, 0, sizeof(packet2));
  6513. mavlink_msg_resource_request_pack(system_id, component_id, &msg , packet1.request_id , packet1.uri_type , packet1.uri , packet1.transfer_type , packet1.storage );
  6514. mavlink_msg_resource_request_decode(&msg, &packet2);
  6515. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6516. memset(&packet2, 0, sizeof(packet2));
  6517. mavlink_msg_resource_request_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.request_id , packet1.uri_type , packet1.uri , packet1.transfer_type , packet1.storage );
  6518. mavlink_msg_resource_request_decode(&msg, &packet2);
  6519. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6520. memset(&packet2, 0, sizeof(packet2));
  6521. mavlink_msg_to_send_buffer(buffer, &msg);
  6522. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6523. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6524. }
  6525. mavlink_msg_resource_request_decode(last_msg, &packet2);
  6526. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6527. memset(&packet2, 0, sizeof(packet2));
  6528. mavlink_msg_resource_request_send(MAVLINK_COMM_1 , packet1.request_id , packet1.uri_type , packet1.uri , packet1.transfer_type , packet1.storage );
  6529. mavlink_msg_resource_request_decode(last_msg, &packet2);
  6530. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6531. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6532. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RESOURCE_REQUEST") != NULL);
  6533. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RESOURCE_REQUEST) != NULL);
  6534. #endif
  6535. }
  6536. static void mavlink_test_scaled_pressure3(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6537. {
  6538. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6539. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6540. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SCALED_PRESSURE3 >= 256) {
  6541. return;
  6542. }
  6543. #endif
  6544. mavlink_message_t msg;
  6545. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6546. uint16_t i;
  6547. mavlink_scaled_pressure3_t packet_in = {
  6548. 963497464,45.0,73.0,17859,17963
  6549. };
  6550. mavlink_scaled_pressure3_t packet1, packet2;
  6551. memset(&packet1, 0, sizeof(packet1));
  6552. packet1.time_boot_ms = packet_in.time_boot_ms;
  6553. packet1.press_abs = packet_in.press_abs;
  6554. packet1.press_diff = packet_in.press_diff;
  6555. packet1.temperature = packet_in.temperature;
  6556. packet1.temperature_press_diff = packet_in.temperature_press_diff;
  6557. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6558. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6559. // cope with extensions
  6560. memset(MAVLINK_MSG_ID_SCALED_PRESSURE3_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SCALED_PRESSURE3_MIN_LEN);
  6561. }
  6562. #endif
  6563. memset(&packet2, 0, sizeof(packet2));
  6564. mavlink_msg_scaled_pressure3_encode(system_id, component_id, &msg, &packet1);
  6565. mavlink_msg_scaled_pressure3_decode(&msg, &packet2);
  6566. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6567. memset(&packet2, 0, sizeof(packet2));
  6568. mavlink_msg_scaled_pressure3_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  6569. mavlink_msg_scaled_pressure3_decode(&msg, &packet2);
  6570. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6571. memset(&packet2, 0, sizeof(packet2));
  6572. mavlink_msg_scaled_pressure3_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  6573. mavlink_msg_scaled_pressure3_decode(&msg, &packet2);
  6574. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6575. memset(&packet2, 0, sizeof(packet2));
  6576. mavlink_msg_to_send_buffer(buffer, &msg);
  6577. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6578. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6579. }
  6580. mavlink_msg_scaled_pressure3_decode(last_msg, &packet2);
  6581. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6582. memset(&packet2, 0, sizeof(packet2));
  6583. mavlink_msg_scaled_pressure3_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.press_abs , packet1.press_diff , packet1.temperature , packet1.temperature_press_diff );
  6584. mavlink_msg_scaled_pressure3_decode(last_msg, &packet2);
  6585. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6586. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6587. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SCALED_PRESSURE3") != NULL);
  6588. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SCALED_PRESSURE3) != NULL);
  6589. #endif
  6590. }
  6591. static void mavlink_test_follow_target(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6592. {
  6593. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6594. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6595. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_FOLLOW_TARGET >= 256) {
  6596. return;
  6597. }
  6598. #endif
  6599. mavlink_message_t msg;
  6600. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6601. uint16_t i;
  6602. mavlink_follow_target_t packet_in = {
  6603. 93372036854775807ULL,93372036854776311ULL,963498296,963498504,185.0,{ 213.0, 214.0, 215.0 },{ 297.0, 298.0, 299.0 },{ 381.0, 382.0, 383.0, 384.0 },{ 493.0, 494.0, 495.0 },{ 577.0, 578.0, 579.0 },25
  6604. };
  6605. mavlink_follow_target_t packet1, packet2;
  6606. memset(&packet1, 0, sizeof(packet1));
  6607. packet1.timestamp = packet_in.timestamp;
  6608. packet1.custom_state = packet_in.custom_state;
  6609. packet1.lat = packet_in.lat;
  6610. packet1.lon = packet_in.lon;
  6611. packet1.alt = packet_in.alt;
  6612. packet1.est_capabilities = packet_in.est_capabilities;
  6613. mav_array_memcpy(packet1.vel, packet_in.vel, sizeof(float)*3);
  6614. mav_array_memcpy(packet1.acc, packet_in.acc, sizeof(float)*3);
  6615. mav_array_memcpy(packet1.attitude_q, packet_in.attitude_q, sizeof(float)*4);
  6616. mav_array_memcpy(packet1.rates, packet_in.rates, sizeof(float)*3);
  6617. mav_array_memcpy(packet1.position_cov, packet_in.position_cov, sizeof(float)*3);
  6618. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6619. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6620. // cope with extensions
  6621. memset(MAVLINK_MSG_ID_FOLLOW_TARGET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_FOLLOW_TARGET_MIN_LEN);
  6622. }
  6623. #endif
  6624. memset(&packet2, 0, sizeof(packet2));
  6625. mavlink_msg_follow_target_encode(system_id, component_id, &msg, &packet1);
  6626. mavlink_msg_follow_target_decode(&msg, &packet2);
  6627. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6628. memset(&packet2, 0, sizeof(packet2));
  6629. mavlink_msg_follow_target_pack(system_id, component_id, &msg , packet1.timestamp , packet1.est_capabilities , packet1.lat , packet1.lon , packet1.alt , packet1.vel , packet1.acc , packet1.attitude_q , packet1.rates , packet1.position_cov , packet1.custom_state );
  6630. mavlink_msg_follow_target_decode(&msg, &packet2);
  6631. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6632. memset(&packet2, 0, sizeof(packet2));
  6633. mavlink_msg_follow_target_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.est_capabilities , packet1.lat , packet1.lon , packet1.alt , packet1.vel , packet1.acc , packet1.attitude_q , packet1.rates , packet1.position_cov , packet1.custom_state );
  6634. mavlink_msg_follow_target_decode(&msg, &packet2);
  6635. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6636. memset(&packet2, 0, sizeof(packet2));
  6637. mavlink_msg_to_send_buffer(buffer, &msg);
  6638. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6639. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6640. }
  6641. mavlink_msg_follow_target_decode(last_msg, &packet2);
  6642. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6643. memset(&packet2, 0, sizeof(packet2));
  6644. mavlink_msg_follow_target_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.est_capabilities , packet1.lat , packet1.lon , packet1.alt , packet1.vel , packet1.acc , packet1.attitude_q , packet1.rates , packet1.position_cov , packet1.custom_state );
  6645. mavlink_msg_follow_target_decode(last_msg, &packet2);
  6646. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6647. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6648. MAVLINK_ASSERT(mavlink_get_message_info_by_name("FOLLOW_TARGET") != NULL);
  6649. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_FOLLOW_TARGET) != NULL);
  6650. #endif
  6651. }
  6652. static void mavlink_test_control_system_state(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6653. {
  6654. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6655. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6656. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CONTROL_SYSTEM_STATE >= 256) {
  6657. return;
  6658. }
  6659. #endif
  6660. mavlink_message_t msg;
  6661. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6662. uint16_t i;
  6663. mavlink_control_system_state_t packet_in = {
  6664. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,{ 353.0, 354.0, 355.0 },{ 437.0, 438.0, 439.0 },{ 521.0, 522.0, 523.0, 524.0 },633.0,661.0,689.0
  6665. };
  6666. mavlink_control_system_state_t packet1, packet2;
  6667. memset(&packet1, 0, sizeof(packet1));
  6668. packet1.time_usec = packet_in.time_usec;
  6669. packet1.x_acc = packet_in.x_acc;
  6670. packet1.y_acc = packet_in.y_acc;
  6671. packet1.z_acc = packet_in.z_acc;
  6672. packet1.x_vel = packet_in.x_vel;
  6673. packet1.y_vel = packet_in.y_vel;
  6674. packet1.z_vel = packet_in.z_vel;
  6675. packet1.x_pos = packet_in.x_pos;
  6676. packet1.y_pos = packet_in.y_pos;
  6677. packet1.z_pos = packet_in.z_pos;
  6678. packet1.airspeed = packet_in.airspeed;
  6679. packet1.roll_rate = packet_in.roll_rate;
  6680. packet1.pitch_rate = packet_in.pitch_rate;
  6681. packet1.yaw_rate = packet_in.yaw_rate;
  6682. mav_array_memcpy(packet1.vel_variance, packet_in.vel_variance, sizeof(float)*3);
  6683. mav_array_memcpy(packet1.pos_variance, packet_in.pos_variance, sizeof(float)*3);
  6684. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  6685. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6686. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6687. // cope with extensions
  6688. memset(MAVLINK_MSG_ID_CONTROL_SYSTEM_STATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CONTROL_SYSTEM_STATE_MIN_LEN);
  6689. }
  6690. #endif
  6691. memset(&packet2, 0, sizeof(packet2));
  6692. mavlink_msg_control_system_state_encode(system_id, component_id, &msg, &packet1);
  6693. mavlink_msg_control_system_state_decode(&msg, &packet2);
  6694. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6695. memset(&packet2, 0, sizeof(packet2));
  6696. mavlink_msg_control_system_state_pack(system_id, component_id, &msg , packet1.time_usec , packet1.x_acc , packet1.y_acc , packet1.z_acc , packet1.x_vel , packet1.y_vel , packet1.z_vel , packet1.x_pos , packet1.y_pos , packet1.z_pos , packet1.airspeed , packet1.vel_variance , packet1.pos_variance , packet1.q , packet1.roll_rate , packet1.pitch_rate , packet1.yaw_rate );
  6697. mavlink_msg_control_system_state_decode(&msg, &packet2);
  6698. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6699. memset(&packet2, 0, sizeof(packet2));
  6700. mavlink_msg_control_system_state_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.x_acc , packet1.y_acc , packet1.z_acc , packet1.x_vel , packet1.y_vel , packet1.z_vel , packet1.x_pos , packet1.y_pos , packet1.z_pos , packet1.airspeed , packet1.vel_variance , packet1.pos_variance , packet1.q , packet1.roll_rate , packet1.pitch_rate , packet1.yaw_rate );
  6701. mavlink_msg_control_system_state_decode(&msg, &packet2);
  6702. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6703. memset(&packet2, 0, sizeof(packet2));
  6704. mavlink_msg_to_send_buffer(buffer, &msg);
  6705. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6706. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6707. }
  6708. mavlink_msg_control_system_state_decode(last_msg, &packet2);
  6709. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6710. memset(&packet2, 0, sizeof(packet2));
  6711. mavlink_msg_control_system_state_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.x_acc , packet1.y_acc , packet1.z_acc , packet1.x_vel , packet1.y_vel , packet1.z_vel , packet1.x_pos , packet1.y_pos , packet1.z_pos , packet1.airspeed , packet1.vel_variance , packet1.pos_variance , packet1.q , packet1.roll_rate , packet1.pitch_rate , packet1.yaw_rate );
  6712. mavlink_msg_control_system_state_decode(last_msg, &packet2);
  6713. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6714. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6715. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CONTROL_SYSTEM_STATE") != NULL);
  6716. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CONTROL_SYSTEM_STATE) != NULL);
  6717. #endif
  6718. }
  6719. static void mavlink_test_battery_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6720. {
  6721. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6722. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6723. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_BATTERY_STATUS >= 256) {
  6724. return;
  6725. }
  6726. #endif
  6727. mavlink_message_t msg;
  6728. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6729. uint16_t i;
  6730. mavlink_battery_status_t packet_in = {
  6731. 963497464,963497672,17651,{ 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764 },18795,101,168,235,46,963499336,125,{ 19367, 19368, 19369, 19370 },216,963500064
  6732. };
  6733. mavlink_battery_status_t packet1, packet2;
  6734. memset(&packet1, 0, sizeof(packet1));
  6735. packet1.current_consumed = packet_in.current_consumed;
  6736. packet1.energy_consumed = packet_in.energy_consumed;
  6737. packet1.temperature = packet_in.temperature;
  6738. packet1.current_battery = packet_in.current_battery;
  6739. packet1.id = packet_in.id;
  6740. packet1.battery_function = packet_in.battery_function;
  6741. packet1.type = packet_in.type;
  6742. packet1.battery_remaining = packet_in.battery_remaining;
  6743. packet1.time_remaining = packet_in.time_remaining;
  6744. packet1.charge_state = packet_in.charge_state;
  6745. packet1.mode = packet_in.mode;
  6746. packet1.fault_bitmask = packet_in.fault_bitmask;
  6747. mav_array_memcpy(packet1.voltages, packet_in.voltages, sizeof(uint16_t)*10);
  6748. mav_array_memcpy(packet1.voltages_ext, packet_in.voltages_ext, sizeof(uint16_t)*4);
  6749. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6750. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6751. // cope with extensions
  6752. memset(MAVLINK_MSG_ID_BATTERY_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_BATTERY_STATUS_MIN_LEN);
  6753. }
  6754. #endif
  6755. memset(&packet2, 0, sizeof(packet2));
  6756. mavlink_msg_battery_status_encode(system_id, component_id, &msg, &packet1);
  6757. mavlink_msg_battery_status_decode(&msg, &packet2);
  6758. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6759. memset(&packet2, 0, sizeof(packet2));
  6760. mavlink_msg_battery_status_pack(system_id, component_id, &msg , packet1.id , packet1.battery_function , packet1.type , packet1.temperature , packet1.voltages , packet1.current_battery , packet1.current_consumed , packet1.energy_consumed , packet1.battery_remaining , packet1.time_remaining , packet1.charge_state , packet1.voltages_ext , packet1.mode , packet1.fault_bitmask );
  6761. mavlink_msg_battery_status_decode(&msg, &packet2);
  6762. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6763. memset(&packet2, 0, sizeof(packet2));
  6764. mavlink_msg_battery_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.id , packet1.battery_function , packet1.type , packet1.temperature , packet1.voltages , packet1.current_battery , packet1.current_consumed , packet1.energy_consumed , packet1.battery_remaining , packet1.time_remaining , packet1.charge_state , packet1.voltages_ext , packet1.mode , packet1.fault_bitmask );
  6765. mavlink_msg_battery_status_decode(&msg, &packet2);
  6766. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6767. memset(&packet2, 0, sizeof(packet2));
  6768. mavlink_msg_to_send_buffer(buffer, &msg);
  6769. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6770. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6771. }
  6772. mavlink_msg_battery_status_decode(last_msg, &packet2);
  6773. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6774. memset(&packet2, 0, sizeof(packet2));
  6775. mavlink_msg_battery_status_send(MAVLINK_COMM_1 , packet1.id , packet1.battery_function , packet1.type , packet1.temperature , packet1.voltages , packet1.current_battery , packet1.current_consumed , packet1.energy_consumed , packet1.battery_remaining , packet1.time_remaining , packet1.charge_state , packet1.voltages_ext , packet1.mode , packet1.fault_bitmask );
  6776. mavlink_msg_battery_status_decode(last_msg, &packet2);
  6777. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6778. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6779. MAVLINK_ASSERT(mavlink_get_message_info_by_name("BATTERY_STATUS") != NULL);
  6780. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_BATTERY_STATUS) != NULL);
  6781. #endif
  6782. }
  6783. static void mavlink_test_autopilot_version(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6784. {
  6785. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6786. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6787. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_AUTOPILOT_VERSION >= 256) {
  6788. return;
  6789. }
  6790. #endif
  6791. mavlink_message_t msg;
  6792. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6793. uint16_t i;
  6794. mavlink_autopilot_version_t packet_in = {
  6795. 93372036854775807ULL,93372036854776311ULL,963498296,963498504,963498712,963498920,18899,19003,{ 113, 114, 115, 116, 117, 118, 119, 120 },{ 137, 138, 139, 140, 141, 142, 143, 144 },{ 161, 162, 163, 164, 165, 166, 167, 168 },{ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202 }
  6796. };
  6797. mavlink_autopilot_version_t packet1, packet2;
  6798. memset(&packet1, 0, sizeof(packet1));
  6799. packet1.capabilities = packet_in.capabilities;
  6800. packet1.uid = packet_in.uid;
  6801. packet1.flight_sw_version = packet_in.flight_sw_version;
  6802. packet1.middleware_sw_version = packet_in.middleware_sw_version;
  6803. packet1.os_sw_version = packet_in.os_sw_version;
  6804. packet1.board_version = packet_in.board_version;
  6805. packet1.vendor_id = packet_in.vendor_id;
  6806. packet1.product_id = packet_in.product_id;
  6807. mav_array_memcpy(packet1.flight_custom_version, packet_in.flight_custom_version, sizeof(uint8_t)*8);
  6808. mav_array_memcpy(packet1.middleware_custom_version, packet_in.middleware_custom_version, sizeof(uint8_t)*8);
  6809. mav_array_memcpy(packet1.os_custom_version, packet_in.os_custom_version, sizeof(uint8_t)*8);
  6810. mav_array_memcpy(packet1.uid2, packet_in.uid2, sizeof(uint8_t)*18);
  6811. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6812. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6813. // cope with extensions
  6814. memset(MAVLINK_MSG_ID_AUTOPILOT_VERSION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_AUTOPILOT_VERSION_MIN_LEN);
  6815. }
  6816. #endif
  6817. memset(&packet2, 0, sizeof(packet2));
  6818. mavlink_msg_autopilot_version_encode(system_id, component_id, &msg, &packet1);
  6819. mavlink_msg_autopilot_version_decode(&msg, &packet2);
  6820. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6821. memset(&packet2, 0, sizeof(packet2));
  6822. mavlink_msg_autopilot_version_pack(system_id, component_id, &msg , packet1.capabilities , packet1.flight_sw_version , packet1.middleware_sw_version , packet1.os_sw_version , packet1.board_version , packet1.flight_custom_version , packet1.middleware_custom_version , packet1.os_custom_version , packet1.vendor_id , packet1.product_id , packet1.uid , packet1.uid2 );
  6823. mavlink_msg_autopilot_version_decode(&msg, &packet2);
  6824. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6825. memset(&packet2, 0, sizeof(packet2));
  6826. mavlink_msg_autopilot_version_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.capabilities , packet1.flight_sw_version , packet1.middleware_sw_version , packet1.os_sw_version , packet1.board_version , packet1.flight_custom_version , packet1.middleware_custom_version , packet1.os_custom_version , packet1.vendor_id , packet1.product_id , packet1.uid , packet1.uid2 );
  6827. mavlink_msg_autopilot_version_decode(&msg, &packet2);
  6828. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6829. memset(&packet2, 0, sizeof(packet2));
  6830. mavlink_msg_to_send_buffer(buffer, &msg);
  6831. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6832. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6833. }
  6834. mavlink_msg_autopilot_version_decode(last_msg, &packet2);
  6835. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6836. memset(&packet2, 0, sizeof(packet2));
  6837. mavlink_msg_autopilot_version_send(MAVLINK_COMM_1 , packet1.capabilities , packet1.flight_sw_version , packet1.middleware_sw_version , packet1.os_sw_version , packet1.board_version , packet1.flight_custom_version , packet1.middleware_custom_version , packet1.os_custom_version , packet1.vendor_id , packet1.product_id , packet1.uid , packet1.uid2 );
  6838. mavlink_msg_autopilot_version_decode(last_msg, &packet2);
  6839. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6840. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6841. MAVLINK_ASSERT(mavlink_get_message_info_by_name("AUTOPILOT_VERSION") != NULL);
  6842. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_AUTOPILOT_VERSION) != NULL);
  6843. #endif
  6844. }
  6845. static void mavlink_test_landing_target(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6846. {
  6847. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6848. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6849. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LANDING_TARGET >= 256) {
  6850. return;
  6851. }
  6852. #endif
  6853. mavlink_message_t msg;
  6854. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6855. uint16_t i;
  6856. mavlink_landing_target_t packet_in = {
  6857. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,89,156,227.0,255.0,283.0,{ 311.0, 312.0, 313.0, 314.0 },51,118
  6858. };
  6859. mavlink_landing_target_t packet1, packet2;
  6860. memset(&packet1, 0, sizeof(packet1));
  6861. packet1.time_usec = packet_in.time_usec;
  6862. packet1.angle_x = packet_in.angle_x;
  6863. packet1.angle_y = packet_in.angle_y;
  6864. packet1.distance = packet_in.distance;
  6865. packet1.size_x = packet_in.size_x;
  6866. packet1.size_y = packet_in.size_y;
  6867. packet1.target_num = packet_in.target_num;
  6868. packet1.frame = packet_in.frame;
  6869. packet1.x = packet_in.x;
  6870. packet1.y = packet_in.y;
  6871. packet1.z = packet_in.z;
  6872. packet1.type = packet_in.type;
  6873. packet1.position_valid = packet_in.position_valid;
  6874. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  6875. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6876. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6877. // cope with extensions
  6878. memset(MAVLINK_MSG_ID_LANDING_TARGET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LANDING_TARGET_MIN_LEN);
  6879. }
  6880. #endif
  6881. memset(&packet2, 0, sizeof(packet2));
  6882. mavlink_msg_landing_target_encode(system_id, component_id, &msg, &packet1);
  6883. mavlink_msg_landing_target_decode(&msg, &packet2);
  6884. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6885. memset(&packet2, 0, sizeof(packet2));
  6886. mavlink_msg_landing_target_pack(system_id, component_id, &msg , packet1.time_usec , packet1.target_num , packet1.frame , packet1.angle_x , packet1.angle_y , packet1.distance , packet1.size_x , packet1.size_y , packet1.x , packet1.y , packet1.z , packet1.q , packet1.type , packet1.position_valid );
  6887. mavlink_msg_landing_target_decode(&msg, &packet2);
  6888. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6889. memset(&packet2, 0, sizeof(packet2));
  6890. mavlink_msg_landing_target_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.target_num , packet1.frame , packet1.angle_x , packet1.angle_y , packet1.distance , packet1.size_x , packet1.size_y , packet1.x , packet1.y , packet1.z , packet1.q , packet1.type , packet1.position_valid );
  6891. mavlink_msg_landing_target_decode(&msg, &packet2);
  6892. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6893. memset(&packet2, 0, sizeof(packet2));
  6894. mavlink_msg_to_send_buffer(buffer, &msg);
  6895. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6896. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6897. }
  6898. mavlink_msg_landing_target_decode(last_msg, &packet2);
  6899. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6900. memset(&packet2, 0, sizeof(packet2));
  6901. mavlink_msg_landing_target_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.target_num , packet1.frame , packet1.angle_x , packet1.angle_y , packet1.distance , packet1.size_x , packet1.size_y , packet1.x , packet1.y , packet1.z , packet1.q , packet1.type , packet1.position_valid );
  6902. mavlink_msg_landing_target_decode(last_msg, &packet2);
  6903. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6904. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6905. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LANDING_TARGET") != NULL);
  6906. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LANDING_TARGET) != NULL);
  6907. #endif
  6908. }
  6909. static void mavlink_test_fence_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6910. {
  6911. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6912. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6913. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_FENCE_STATUS >= 256) {
  6914. return;
  6915. }
  6916. #endif
  6917. mavlink_message_t msg;
  6918. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6919. uint16_t i;
  6920. mavlink_fence_status_t packet_in = {
  6921. 963497464,17443,151,218,29
  6922. };
  6923. mavlink_fence_status_t packet1, packet2;
  6924. memset(&packet1, 0, sizeof(packet1));
  6925. packet1.breach_time = packet_in.breach_time;
  6926. packet1.breach_count = packet_in.breach_count;
  6927. packet1.breach_status = packet_in.breach_status;
  6928. packet1.breach_type = packet_in.breach_type;
  6929. packet1.breach_mitigation = packet_in.breach_mitigation;
  6930. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6931. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  6932. // cope with extensions
  6933. memset(MAVLINK_MSG_ID_FENCE_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_FENCE_STATUS_MIN_LEN);
  6934. }
  6935. #endif
  6936. memset(&packet2, 0, sizeof(packet2));
  6937. mavlink_msg_fence_status_encode(system_id, component_id, &msg, &packet1);
  6938. mavlink_msg_fence_status_decode(&msg, &packet2);
  6939. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6940. memset(&packet2, 0, sizeof(packet2));
  6941. mavlink_msg_fence_status_pack(system_id, component_id, &msg , packet1.breach_status , packet1.breach_count , packet1.breach_type , packet1.breach_time , packet1.breach_mitigation );
  6942. mavlink_msg_fence_status_decode(&msg, &packet2);
  6943. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6944. memset(&packet2, 0, sizeof(packet2));
  6945. mavlink_msg_fence_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.breach_status , packet1.breach_count , packet1.breach_type , packet1.breach_time , packet1.breach_mitigation );
  6946. mavlink_msg_fence_status_decode(&msg, &packet2);
  6947. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6948. memset(&packet2, 0, sizeof(packet2));
  6949. mavlink_msg_to_send_buffer(buffer, &msg);
  6950. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  6951. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  6952. }
  6953. mavlink_msg_fence_status_decode(last_msg, &packet2);
  6954. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6955. memset(&packet2, 0, sizeof(packet2));
  6956. mavlink_msg_fence_status_send(MAVLINK_COMM_1 , packet1.breach_status , packet1.breach_count , packet1.breach_type , packet1.breach_time , packet1.breach_mitigation );
  6957. mavlink_msg_fence_status_decode(last_msg, &packet2);
  6958. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  6959. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  6960. MAVLINK_ASSERT(mavlink_get_message_info_by_name("FENCE_STATUS") != NULL);
  6961. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_FENCE_STATUS) != NULL);
  6962. #endif
  6963. }
  6964. static void mavlink_test_mag_cal_report(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  6965. {
  6966. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6967. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  6968. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MAG_CAL_REPORT >= 256) {
  6969. return;
  6970. }
  6971. #endif
  6972. mavlink_message_t msg;
  6973. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  6974. uint16_t i;
  6975. mavlink_mag_cal_report_t packet_in = {
  6976. 17.0,45.0,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,125,192,3,70,325.0,149,216,367.0
  6977. };
  6978. mavlink_mag_cal_report_t packet1, packet2;
  6979. memset(&packet1, 0, sizeof(packet1));
  6980. packet1.fitness = packet_in.fitness;
  6981. packet1.ofs_x = packet_in.ofs_x;
  6982. packet1.ofs_y = packet_in.ofs_y;
  6983. packet1.ofs_z = packet_in.ofs_z;
  6984. packet1.diag_x = packet_in.diag_x;
  6985. packet1.diag_y = packet_in.diag_y;
  6986. packet1.diag_z = packet_in.diag_z;
  6987. packet1.offdiag_x = packet_in.offdiag_x;
  6988. packet1.offdiag_y = packet_in.offdiag_y;
  6989. packet1.offdiag_z = packet_in.offdiag_z;
  6990. packet1.compass_id = packet_in.compass_id;
  6991. packet1.cal_mask = packet_in.cal_mask;
  6992. packet1.cal_status = packet_in.cal_status;
  6993. packet1.autosaved = packet_in.autosaved;
  6994. packet1.orientation_confidence = packet_in.orientation_confidence;
  6995. packet1.old_orientation = packet_in.old_orientation;
  6996. packet1.new_orientation = packet_in.new_orientation;
  6997. packet1.scale_factor = packet_in.scale_factor;
  6998. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  6999. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7000. // cope with extensions
  7001. memset(MAVLINK_MSG_ID_MAG_CAL_REPORT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MAG_CAL_REPORT_MIN_LEN);
  7002. }
  7003. #endif
  7004. memset(&packet2, 0, sizeof(packet2));
  7005. mavlink_msg_mag_cal_report_encode(system_id, component_id, &msg, &packet1);
  7006. mavlink_msg_mag_cal_report_decode(&msg, &packet2);
  7007. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7008. memset(&packet2, 0, sizeof(packet2));
  7009. mavlink_msg_mag_cal_report_pack(system_id, component_id, &msg , packet1.compass_id , packet1.cal_mask , packet1.cal_status , packet1.autosaved , packet1.fitness , packet1.ofs_x , packet1.ofs_y , packet1.ofs_z , packet1.diag_x , packet1.diag_y , packet1.diag_z , packet1.offdiag_x , packet1.offdiag_y , packet1.offdiag_z , packet1.orientation_confidence , packet1.old_orientation , packet1.new_orientation , packet1.scale_factor );
  7010. mavlink_msg_mag_cal_report_decode(&msg, &packet2);
  7011. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7012. memset(&packet2, 0, sizeof(packet2));
  7013. mavlink_msg_mag_cal_report_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.compass_id , packet1.cal_mask , packet1.cal_status , packet1.autosaved , packet1.fitness , packet1.ofs_x , packet1.ofs_y , packet1.ofs_z , packet1.diag_x , packet1.diag_y , packet1.diag_z , packet1.offdiag_x , packet1.offdiag_y , packet1.offdiag_z , packet1.orientation_confidence , packet1.old_orientation , packet1.new_orientation , packet1.scale_factor );
  7014. mavlink_msg_mag_cal_report_decode(&msg, &packet2);
  7015. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7016. memset(&packet2, 0, sizeof(packet2));
  7017. mavlink_msg_to_send_buffer(buffer, &msg);
  7018. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7019. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7020. }
  7021. mavlink_msg_mag_cal_report_decode(last_msg, &packet2);
  7022. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7023. memset(&packet2, 0, sizeof(packet2));
  7024. mavlink_msg_mag_cal_report_send(MAVLINK_COMM_1 , packet1.compass_id , packet1.cal_mask , packet1.cal_status , packet1.autosaved , packet1.fitness , packet1.ofs_x , packet1.ofs_y , packet1.ofs_z , packet1.diag_x , packet1.diag_y , packet1.diag_z , packet1.offdiag_x , packet1.offdiag_y , packet1.offdiag_z , packet1.orientation_confidence , packet1.old_orientation , packet1.new_orientation , packet1.scale_factor );
  7025. mavlink_msg_mag_cal_report_decode(last_msg, &packet2);
  7026. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7027. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7028. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MAG_CAL_REPORT") != NULL);
  7029. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MAG_CAL_REPORT) != NULL);
  7030. #endif
  7031. }
  7032. static void mavlink_test_efi_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7033. {
  7034. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7035. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7036. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_EFI_STATUS >= 256) {
  7037. return;
  7038. }
  7039. #endif
  7040. mavlink_message_t msg;
  7041. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7042. uint16_t i;
  7043. mavlink_efi_status_t packet_in = {
  7044. 17.0,45.0,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,197,472.0,500.0
  7045. };
  7046. mavlink_efi_status_t packet1, packet2;
  7047. memset(&packet1, 0, sizeof(packet1));
  7048. packet1.ecu_index = packet_in.ecu_index;
  7049. packet1.rpm = packet_in.rpm;
  7050. packet1.fuel_consumed = packet_in.fuel_consumed;
  7051. packet1.fuel_flow = packet_in.fuel_flow;
  7052. packet1.engine_load = packet_in.engine_load;
  7053. packet1.throttle_position = packet_in.throttle_position;
  7054. packet1.spark_dwell_time = packet_in.spark_dwell_time;
  7055. packet1.barometric_pressure = packet_in.barometric_pressure;
  7056. packet1.intake_manifold_pressure = packet_in.intake_manifold_pressure;
  7057. packet1.intake_manifold_temperature = packet_in.intake_manifold_temperature;
  7058. packet1.cylinder_head_temperature = packet_in.cylinder_head_temperature;
  7059. packet1.ignition_timing = packet_in.ignition_timing;
  7060. packet1.injection_time = packet_in.injection_time;
  7061. packet1.exhaust_gas_temperature = packet_in.exhaust_gas_temperature;
  7062. packet1.throttle_out = packet_in.throttle_out;
  7063. packet1.pt_compensation = packet_in.pt_compensation;
  7064. packet1.health = packet_in.health;
  7065. packet1.ignition_voltage = packet_in.ignition_voltage;
  7066. packet1.fuel_pressure = packet_in.fuel_pressure;
  7067. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7068. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7069. // cope with extensions
  7070. memset(MAVLINK_MSG_ID_EFI_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_EFI_STATUS_MIN_LEN);
  7071. }
  7072. #endif
  7073. memset(&packet2, 0, sizeof(packet2));
  7074. mavlink_msg_efi_status_encode(system_id, component_id, &msg, &packet1);
  7075. mavlink_msg_efi_status_decode(&msg, &packet2);
  7076. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7077. memset(&packet2, 0, sizeof(packet2));
  7078. mavlink_msg_efi_status_pack(system_id, component_id, &msg , packet1.health , packet1.ecu_index , packet1.rpm , packet1.fuel_consumed , packet1.fuel_flow , packet1.engine_load , packet1.throttle_position , packet1.spark_dwell_time , packet1.barometric_pressure , packet1.intake_manifold_pressure , packet1.intake_manifold_temperature , packet1.cylinder_head_temperature , packet1.ignition_timing , packet1.injection_time , packet1.exhaust_gas_temperature , packet1.throttle_out , packet1.pt_compensation , packet1.ignition_voltage , packet1.fuel_pressure );
  7079. mavlink_msg_efi_status_decode(&msg, &packet2);
  7080. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7081. memset(&packet2, 0, sizeof(packet2));
  7082. mavlink_msg_efi_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.health , packet1.ecu_index , packet1.rpm , packet1.fuel_consumed , packet1.fuel_flow , packet1.engine_load , packet1.throttle_position , packet1.spark_dwell_time , packet1.barometric_pressure , packet1.intake_manifold_pressure , packet1.intake_manifold_temperature , packet1.cylinder_head_temperature , packet1.ignition_timing , packet1.injection_time , packet1.exhaust_gas_temperature , packet1.throttle_out , packet1.pt_compensation , packet1.ignition_voltage , packet1.fuel_pressure );
  7083. mavlink_msg_efi_status_decode(&msg, &packet2);
  7084. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7085. memset(&packet2, 0, sizeof(packet2));
  7086. mavlink_msg_to_send_buffer(buffer, &msg);
  7087. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7088. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7089. }
  7090. mavlink_msg_efi_status_decode(last_msg, &packet2);
  7091. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7092. memset(&packet2, 0, sizeof(packet2));
  7093. mavlink_msg_efi_status_send(MAVLINK_COMM_1 , packet1.health , packet1.ecu_index , packet1.rpm , packet1.fuel_consumed , packet1.fuel_flow , packet1.engine_load , packet1.throttle_position , packet1.spark_dwell_time , packet1.barometric_pressure , packet1.intake_manifold_pressure , packet1.intake_manifold_temperature , packet1.cylinder_head_temperature , packet1.ignition_timing , packet1.injection_time , packet1.exhaust_gas_temperature , packet1.throttle_out , packet1.pt_compensation , packet1.ignition_voltage , packet1.fuel_pressure );
  7094. mavlink_msg_efi_status_decode(last_msg, &packet2);
  7095. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7096. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7097. MAVLINK_ASSERT(mavlink_get_message_info_by_name("EFI_STATUS") != NULL);
  7098. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_EFI_STATUS) != NULL);
  7099. #endif
  7100. }
  7101. static void mavlink_test_estimator_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7102. {
  7103. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7104. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7105. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ESTIMATOR_STATUS >= 256) {
  7106. return;
  7107. }
  7108. #endif
  7109. mavlink_message_t msg;
  7110. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7111. uint16_t i;
  7112. mavlink_estimator_status_t packet_in = {
  7113. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,19315
  7114. };
  7115. mavlink_estimator_status_t packet1, packet2;
  7116. memset(&packet1, 0, sizeof(packet1));
  7117. packet1.time_usec = packet_in.time_usec;
  7118. packet1.vel_ratio = packet_in.vel_ratio;
  7119. packet1.pos_horiz_ratio = packet_in.pos_horiz_ratio;
  7120. packet1.pos_vert_ratio = packet_in.pos_vert_ratio;
  7121. packet1.mag_ratio = packet_in.mag_ratio;
  7122. packet1.hagl_ratio = packet_in.hagl_ratio;
  7123. packet1.tas_ratio = packet_in.tas_ratio;
  7124. packet1.pos_horiz_accuracy = packet_in.pos_horiz_accuracy;
  7125. packet1.pos_vert_accuracy = packet_in.pos_vert_accuracy;
  7126. packet1.flags = packet_in.flags;
  7127. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7128. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7129. // cope with extensions
  7130. memset(MAVLINK_MSG_ID_ESTIMATOR_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ESTIMATOR_STATUS_MIN_LEN);
  7131. }
  7132. #endif
  7133. memset(&packet2, 0, sizeof(packet2));
  7134. mavlink_msg_estimator_status_encode(system_id, component_id, &msg, &packet1);
  7135. mavlink_msg_estimator_status_decode(&msg, &packet2);
  7136. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7137. memset(&packet2, 0, sizeof(packet2));
  7138. mavlink_msg_estimator_status_pack(system_id, component_id, &msg , packet1.time_usec , packet1.flags , packet1.vel_ratio , packet1.pos_horiz_ratio , packet1.pos_vert_ratio , packet1.mag_ratio , packet1.hagl_ratio , packet1.tas_ratio , packet1.pos_horiz_accuracy , packet1.pos_vert_accuracy );
  7139. mavlink_msg_estimator_status_decode(&msg, &packet2);
  7140. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7141. memset(&packet2, 0, sizeof(packet2));
  7142. mavlink_msg_estimator_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.flags , packet1.vel_ratio , packet1.pos_horiz_ratio , packet1.pos_vert_ratio , packet1.mag_ratio , packet1.hagl_ratio , packet1.tas_ratio , packet1.pos_horiz_accuracy , packet1.pos_vert_accuracy );
  7143. mavlink_msg_estimator_status_decode(&msg, &packet2);
  7144. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7145. memset(&packet2, 0, sizeof(packet2));
  7146. mavlink_msg_to_send_buffer(buffer, &msg);
  7147. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7148. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7149. }
  7150. mavlink_msg_estimator_status_decode(last_msg, &packet2);
  7151. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7152. memset(&packet2, 0, sizeof(packet2));
  7153. mavlink_msg_estimator_status_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.flags , packet1.vel_ratio , packet1.pos_horiz_ratio , packet1.pos_vert_ratio , packet1.mag_ratio , packet1.hagl_ratio , packet1.tas_ratio , packet1.pos_horiz_accuracy , packet1.pos_vert_accuracy );
  7154. mavlink_msg_estimator_status_decode(last_msg, &packet2);
  7155. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7156. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7157. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ESTIMATOR_STATUS") != NULL);
  7158. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ESTIMATOR_STATUS) != NULL);
  7159. #endif
  7160. }
  7161. static void mavlink_test_wind_cov(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7162. {
  7163. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7164. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7165. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_WIND_COV >= 256) {
  7166. return;
  7167. }
  7168. #endif
  7169. mavlink_message_t msg;
  7170. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7171. uint16_t i;
  7172. mavlink_wind_cov_t packet_in = {
  7173. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0
  7174. };
  7175. mavlink_wind_cov_t packet1, packet2;
  7176. memset(&packet1, 0, sizeof(packet1));
  7177. packet1.time_usec = packet_in.time_usec;
  7178. packet1.wind_x = packet_in.wind_x;
  7179. packet1.wind_y = packet_in.wind_y;
  7180. packet1.wind_z = packet_in.wind_z;
  7181. packet1.var_horiz = packet_in.var_horiz;
  7182. packet1.var_vert = packet_in.var_vert;
  7183. packet1.wind_alt = packet_in.wind_alt;
  7184. packet1.horiz_accuracy = packet_in.horiz_accuracy;
  7185. packet1.vert_accuracy = packet_in.vert_accuracy;
  7186. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7187. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7188. // cope with extensions
  7189. memset(MAVLINK_MSG_ID_WIND_COV_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_WIND_COV_MIN_LEN);
  7190. }
  7191. #endif
  7192. memset(&packet2, 0, sizeof(packet2));
  7193. mavlink_msg_wind_cov_encode(system_id, component_id, &msg, &packet1);
  7194. mavlink_msg_wind_cov_decode(&msg, &packet2);
  7195. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7196. memset(&packet2, 0, sizeof(packet2));
  7197. mavlink_msg_wind_cov_pack(system_id, component_id, &msg , packet1.time_usec , packet1.wind_x , packet1.wind_y , packet1.wind_z , packet1.var_horiz , packet1.var_vert , packet1.wind_alt , packet1.horiz_accuracy , packet1.vert_accuracy );
  7198. mavlink_msg_wind_cov_decode(&msg, &packet2);
  7199. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7200. memset(&packet2, 0, sizeof(packet2));
  7201. mavlink_msg_wind_cov_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.wind_x , packet1.wind_y , packet1.wind_z , packet1.var_horiz , packet1.var_vert , packet1.wind_alt , packet1.horiz_accuracy , packet1.vert_accuracy );
  7202. mavlink_msg_wind_cov_decode(&msg, &packet2);
  7203. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7204. memset(&packet2, 0, sizeof(packet2));
  7205. mavlink_msg_to_send_buffer(buffer, &msg);
  7206. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7207. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7208. }
  7209. mavlink_msg_wind_cov_decode(last_msg, &packet2);
  7210. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7211. memset(&packet2, 0, sizeof(packet2));
  7212. mavlink_msg_wind_cov_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.wind_x , packet1.wind_y , packet1.wind_z , packet1.var_horiz , packet1.var_vert , packet1.wind_alt , packet1.horiz_accuracy , packet1.vert_accuracy );
  7213. mavlink_msg_wind_cov_decode(last_msg, &packet2);
  7214. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7215. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7216. MAVLINK_ASSERT(mavlink_get_message_info_by_name("WIND_COV") != NULL);
  7217. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_WIND_COV) != NULL);
  7218. #endif
  7219. }
  7220. static void mavlink_test_gps_input(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7221. {
  7222. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7223. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7224. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_INPUT >= 256) {
  7225. return;
  7226. }
  7227. #endif
  7228. mavlink_message_t msg;
  7229. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7230. uint16_t i;
  7231. mavlink_gps_input_t packet_in = {
  7232. 93372036854775807ULL,963497880,963498088,963498296,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,20147,20251,185,252,63,20511
  7233. };
  7234. mavlink_gps_input_t packet1, packet2;
  7235. memset(&packet1, 0, sizeof(packet1));
  7236. packet1.time_usec = packet_in.time_usec;
  7237. packet1.time_week_ms = packet_in.time_week_ms;
  7238. packet1.lat = packet_in.lat;
  7239. packet1.lon = packet_in.lon;
  7240. packet1.alt = packet_in.alt;
  7241. packet1.hdop = packet_in.hdop;
  7242. packet1.vdop = packet_in.vdop;
  7243. packet1.vn = packet_in.vn;
  7244. packet1.ve = packet_in.ve;
  7245. packet1.vd = packet_in.vd;
  7246. packet1.speed_accuracy = packet_in.speed_accuracy;
  7247. packet1.horiz_accuracy = packet_in.horiz_accuracy;
  7248. packet1.vert_accuracy = packet_in.vert_accuracy;
  7249. packet1.ignore_flags = packet_in.ignore_flags;
  7250. packet1.time_week = packet_in.time_week;
  7251. packet1.gps_id = packet_in.gps_id;
  7252. packet1.fix_type = packet_in.fix_type;
  7253. packet1.satellites_visible = packet_in.satellites_visible;
  7254. packet1.yaw = packet_in.yaw;
  7255. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7256. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7257. // cope with extensions
  7258. memset(MAVLINK_MSG_ID_GPS_INPUT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_INPUT_MIN_LEN);
  7259. }
  7260. #endif
  7261. memset(&packet2, 0, sizeof(packet2));
  7262. mavlink_msg_gps_input_encode(system_id, component_id, &msg, &packet1);
  7263. mavlink_msg_gps_input_decode(&msg, &packet2);
  7264. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7265. memset(&packet2, 0, sizeof(packet2));
  7266. mavlink_msg_gps_input_pack(system_id, component_id, &msg , packet1.time_usec , packet1.gps_id , packet1.ignore_flags , packet1.time_week_ms , packet1.time_week , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.hdop , packet1.vdop , packet1.vn , packet1.ve , packet1.vd , packet1.speed_accuracy , packet1.horiz_accuracy , packet1.vert_accuracy , packet1.satellites_visible , packet1.yaw );
  7267. mavlink_msg_gps_input_decode(&msg, &packet2);
  7268. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7269. memset(&packet2, 0, sizeof(packet2));
  7270. mavlink_msg_gps_input_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.gps_id , packet1.ignore_flags , packet1.time_week_ms , packet1.time_week , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.hdop , packet1.vdop , packet1.vn , packet1.ve , packet1.vd , packet1.speed_accuracy , packet1.horiz_accuracy , packet1.vert_accuracy , packet1.satellites_visible , packet1.yaw );
  7271. mavlink_msg_gps_input_decode(&msg, &packet2);
  7272. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7273. memset(&packet2, 0, sizeof(packet2));
  7274. mavlink_msg_to_send_buffer(buffer, &msg);
  7275. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7276. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7277. }
  7278. mavlink_msg_gps_input_decode(last_msg, &packet2);
  7279. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7280. memset(&packet2, 0, sizeof(packet2));
  7281. mavlink_msg_gps_input_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.gps_id , packet1.ignore_flags , packet1.time_week_ms , packet1.time_week , packet1.fix_type , packet1.lat , packet1.lon , packet1.alt , packet1.hdop , packet1.vdop , packet1.vn , packet1.ve , packet1.vd , packet1.speed_accuracy , packet1.horiz_accuracy , packet1.vert_accuracy , packet1.satellites_visible , packet1.yaw );
  7282. mavlink_msg_gps_input_decode(last_msg, &packet2);
  7283. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7284. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7285. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_INPUT") != NULL);
  7286. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_INPUT) != NULL);
  7287. #endif
  7288. }
  7289. static void mavlink_test_gps_rtcm_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7290. {
  7291. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7292. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7293. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GPS_RTCM_DATA >= 256) {
  7294. return;
  7295. }
  7296. #endif
  7297. mavlink_message_t msg;
  7298. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7299. uint16_t i;
  7300. mavlink_gps_rtcm_data_t packet_in = {
  7301. 5,72,{ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 }
  7302. };
  7303. mavlink_gps_rtcm_data_t packet1, packet2;
  7304. memset(&packet1, 0, sizeof(packet1));
  7305. packet1.flags = packet_in.flags;
  7306. packet1.len = packet_in.len;
  7307. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*180);
  7308. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7309. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7310. // cope with extensions
  7311. memset(MAVLINK_MSG_ID_GPS_RTCM_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GPS_RTCM_DATA_MIN_LEN);
  7312. }
  7313. #endif
  7314. memset(&packet2, 0, sizeof(packet2));
  7315. mavlink_msg_gps_rtcm_data_encode(system_id, component_id, &msg, &packet1);
  7316. mavlink_msg_gps_rtcm_data_decode(&msg, &packet2);
  7317. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7318. memset(&packet2, 0, sizeof(packet2));
  7319. mavlink_msg_gps_rtcm_data_pack(system_id, component_id, &msg , packet1.flags , packet1.len , packet1.data );
  7320. mavlink_msg_gps_rtcm_data_decode(&msg, &packet2);
  7321. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7322. memset(&packet2, 0, sizeof(packet2));
  7323. mavlink_msg_gps_rtcm_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.flags , packet1.len , packet1.data );
  7324. mavlink_msg_gps_rtcm_data_decode(&msg, &packet2);
  7325. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7326. memset(&packet2, 0, sizeof(packet2));
  7327. mavlink_msg_to_send_buffer(buffer, &msg);
  7328. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7329. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7330. }
  7331. mavlink_msg_gps_rtcm_data_decode(last_msg, &packet2);
  7332. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7333. memset(&packet2, 0, sizeof(packet2));
  7334. mavlink_msg_gps_rtcm_data_send(MAVLINK_COMM_1 , packet1.flags , packet1.len , packet1.data );
  7335. mavlink_msg_gps_rtcm_data_decode(last_msg, &packet2);
  7336. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7337. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7338. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GPS_RTCM_DATA") != NULL);
  7339. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GPS_RTCM_DATA) != NULL);
  7340. #endif
  7341. }
  7342. static void mavlink_test_high_latency(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7343. {
  7344. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7345. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7346. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIGH_LATENCY >= 256) {
  7347. return;
  7348. }
  7349. #endif
  7350. mavlink_message_t msg;
  7351. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7352. uint16_t i;
  7353. mavlink_high_latency_t packet_in = {
  7354. 963497464,963497672,963497880,17859,17963,18067,18171,18275,18379,18483,211,22,89,156,223,34,101,168,235,46,113,180,247,58
  7355. };
  7356. mavlink_high_latency_t packet1, packet2;
  7357. memset(&packet1, 0, sizeof(packet1));
  7358. packet1.custom_mode = packet_in.custom_mode;
  7359. packet1.latitude = packet_in.latitude;
  7360. packet1.longitude = packet_in.longitude;
  7361. packet1.roll = packet_in.roll;
  7362. packet1.pitch = packet_in.pitch;
  7363. packet1.heading = packet_in.heading;
  7364. packet1.heading_sp = packet_in.heading_sp;
  7365. packet1.altitude_amsl = packet_in.altitude_amsl;
  7366. packet1.altitude_sp = packet_in.altitude_sp;
  7367. packet1.wp_distance = packet_in.wp_distance;
  7368. packet1.base_mode = packet_in.base_mode;
  7369. packet1.landed_state = packet_in.landed_state;
  7370. packet1.throttle = packet_in.throttle;
  7371. packet1.airspeed = packet_in.airspeed;
  7372. packet1.airspeed_sp = packet_in.airspeed_sp;
  7373. packet1.groundspeed = packet_in.groundspeed;
  7374. packet1.climb_rate = packet_in.climb_rate;
  7375. packet1.gps_nsat = packet_in.gps_nsat;
  7376. packet1.gps_fix_type = packet_in.gps_fix_type;
  7377. packet1.battery_remaining = packet_in.battery_remaining;
  7378. packet1.temperature = packet_in.temperature;
  7379. packet1.temperature_air = packet_in.temperature_air;
  7380. packet1.failsafe = packet_in.failsafe;
  7381. packet1.wp_num = packet_in.wp_num;
  7382. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7383. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7384. // cope with extensions
  7385. memset(MAVLINK_MSG_ID_HIGH_LATENCY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIGH_LATENCY_MIN_LEN);
  7386. }
  7387. #endif
  7388. memset(&packet2, 0, sizeof(packet2));
  7389. mavlink_msg_high_latency_encode(system_id, component_id, &msg, &packet1);
  7390. mavlink_msg_high_latency_decode(&msg, &packet2);
  7391. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7392. memset(&packet2, 0, sizeof(packet2));
  7393. mavlink_msg_high_latency_pack(system_id, component_id, &msg , packet1.base_mode , packet1.custom_mode , packet1.landed_state , packet1.roll , packet1.pitch , packet1.heading , packet1.throttle , packet1.heading_sp , packet1.latitude , packet1.longitude , packet1.altitude_amsl , packet1.altitude_sp , packet1.airspeed , packet1.airspeed_sp , packet1.groundspeed , packet1.climb_rate , packet1.gps_nsat , packet1.gps_fix_type , packet1.battery_remaining , packet1.temperature , packet1.temperature_air , packet1.failsafe , packet1.wp_num , packet1.wp_distance );
  7394. mavlink_msg_high_latency_decode(&msg, &packet2);
  7395. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7396. memset(&packet2, 0, sizeof(packet2));
  7397. mavlink_msg_high_latency_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.base_mode , packet1.custom_mode , packet1.landed_state , packet1.roll , packet1.pitch , packet1.heading , packet1.throttle , packet1.heading_sp , packet1.latitude , packet1.longitude , packet1.altitude_amsl , packet1.altitude_sp , packet1.airspeed , packet1.airspeed_sp , packet1.groundspeed , packet1.climb_rate , packet1.gps_nsat , packet1.gps_fix_type , packet1.battery_remaining , packet1.temperature , packet1.temperature_air , packet1.failsafe , packet1.wp_num , packet1.wp_distance );
  7398. mavlink_msg_high_latency_decode(&msg, &packet2);
  7399. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7400. memset(&packet2, 0, sizeof(packet2));
  7401. mavlink_msg_to_send_buffer(buffer, &msg);
  7402. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7403. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7404. }
  7405. mavlink_msg_high_latency_decode(last_msg, &packet2);
  7406. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7407. memset(&packet2, 0, sizeof(packet2));
  7408. mavlink_msg_high_latency_send(MAVLINK_COMM_1 , packet1.base_mode , packet1.custom_mode , packet1.landed_state , packet1.roll , packet1.pitch , packet1.heading , packet1.throttle , packet1.heading_sp , packet1.latitude , packet1.longitude , packet1.altitude_amsl , packet1.altitude_sp , packet1.airspeed , packet1.airspeed_sp , packet1.groundspeed , packet1.climb_rate , packet1.gps_nsat , packet1.gps_fix_type , packet1.battery_remaining , packet1.temperature , packet1.temperature_air , packet1.failsafe , packet1.wp_num , packet1.wp_distance );
  7409. mavlink_msg_high_latency_decode(last_msg, &packet2);
  7410. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7411. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7412. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIGH_LATENCY") != NULL);
  7413. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIGH_LATENCY) != NULL);
  7414. #endif
  7415. }
  7416. static void mavlink_test_high_latency2(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7417. {
  7418. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7419. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7420. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HIGH_LATENCY2 >= 256) {
  7421. return;
  7422. }
  7423. #endif
  7424. mavlink_message_t msg;
  7425. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7426. uint16_t i;
  7427. mavlink_high_latency2_t packet_in = {
  7428. 963497464,963497672,963497880,17859,17963,18067,18171,18275,18379,77,144,211,22,89,156,223,34,101,168,235,46,113,180,247,58,125,192
  7429. };
  7430. mavlink_high_latency2_t packet1, packet2;
  7431. memset(&packet1, 0, sizeof(packet1));
  7432. packet1.timestamp = packet_in.timestamp;
  7433. packet1.latitude = packet_in.latitude;
  7434. packet1.longitude = packet_in.longitude;
  7435. packet1.custom_mode = packet_in.custom_mode;
  7436. packet1.altitude = packet_in.altitude;
  7437. packet1.target_altitude = packet_in.target_altitude;
  7438. packet1.target_distance = packet_in.target_distance;
  7439. packet1.wp_num = packet_in.wp_num;
  7440. packet1.failure_flags = packet_in.failure_flags;
  7441. packet1.type = packet_in.type;
  7442. packet1.autopilot = packet_in.autopilot;
  7443. packet1.heading = packet_in.heading;
  7444. packet1.target_heading = packet_in.target_heading;
  7445. packet1.throttle = packet_in.throttle;
  7446. packet1.airspeed = packet_in.airspeed;
  7447. packet1.airspeed_sp = packet_in.airspeed_sp;
  7448. packet1.groundspeed = packet_in.groundspeed;
  7449. packet1.windspeed = packet_in.windspeed;
  7450. packet1.wind_heading = packet_in.wind_heading;
  7451. packet1.eph = packet_in.eph;
  7452. packet1.epv = packet_in.epv;
  7453. packet1.temperature_air = packet_in.temperature_air;
  7454. packet1.climb_rate = packet_in.climb_rate;
  7455. packet1.battery = packet_in.battery;
  7456. packet1.custom0 = packet_in.custom0;
  7457. packet1.custom1 = packet_in.custom1;
  7458. packet1.custom2 = packet_in.custom2;
  7459. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7460. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7461. // cope with extensions
  7462. memset(MAVLINK_MSG_ID_HIGH_LATENCY2_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HIGH_LATENCY2_MIN_LEN);
  7463. }
  7464. #endif
  7465. memset(&packet2, 0, sizeof(packet2));
  7466. mavlink_msg_high_latency2_encode(system_id, component_id, &msg, &packet1);
  7467. mavlink_msg_high_latency2_decode(&msg, &packet2);
  7468. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7469. memset(&packet2, 0, sizeof(packet2));
  7470. mavlink_msg_high_latency2_pack(system_id, component_id, &msg , packet1.timestamp , packet1.type , packet1.autopilot , packet1.custom_mode , packet1.latitude , packet1.longitude , packet1.altitude , packet1.target_altitude , packet1.heading , packet1.target_heading , packet1.target_distance , packet1.throttle , packet1.airspeed , packet1.airspeed_sp , packet1.groundspeed , packet1.windspeed , packet1.wind_heading , packet1.eph , packet1.epv , packet1.temperature_air , packet1.climb_rate , packet1.battery , packet1.wp_num , packet1.failure_flags , packet1.custom0 , packet1.custom1 , packet1.custom2 );
  7471. mavlink_msg_high_latency2_decode(&msg, &packet2);
  7472. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7473. memset(&packet2, 0, sizeof(packet2));
  7474. mavlink_msg_high_latency2_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.type , packet1.autopilot , packet1.custom_mode , packet1.latitude , packet1.longitude , packet1.altitude , packet1.target_altitude , packet1.heading , packet1.target_heading , packet1.target_distance , packet1.throttle , packet1.airspeed , packet1.airspeed_sp , packet1.groundspeed , packet1.windspeed , packet1.wind_heading , packet1.eph , packet1.epv , packet1.temperature_air , packet1.climb_rate , packet1.battery , packet1.wp_num , packet1.failure_flags , packet1.custom0 , packet1.custom1 , packet1.custom2 );
  7475. mavlink_msg_high_latency2_decode(&msg, &packet2);
  7476. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7477. memset(&packet2, 0, sizeof(packet2));
  7478. mavlink_msg_to_send_buffer(buffer, &msg);
  7479. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7480. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7481. }
  7482. mavlink_msg_high_latency2_decode(last_msg, &packet2);
  7483. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7484. memset(&packet2, 0, sizeof(packet2));
  7485. mavlink_msg_high_latency2_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.type , packet1.autopilot , packet1.custom_mode , packet1.latitude , packet1.longitude , packet1.altitude , packet1.target_altitude , packet1.heading , packet1.target_heading , packet1.target_distance , packet1.throttle , packet1.airspeed , packet1.airspeed_sp , packet1.groundspeed , packet1.windspeed , packet1.wind_heading , packet1.eph , packet1.epv , packet1.temperature_air , packet1.climb_rate , packet1.battery , packet1.wp_num , packet1.failure_flags , packet1.custom0 , packet1.custom1 , packet1.custom2 );
  7486. mavlink_msg_high_latency2_decode(last_msg, &packet2);
  7487. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7488. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7489. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HIGH_LATENCY2") != NULL);
  7490. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HIGH_LATENCY2) != NULL);
  7491. #endif
  7492. }
  7493. static void mavlink_test_vibration(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7494. {
  7495. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7496. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7497. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VIBRATION >= 256) {
  7498. return;
  7499. }
  7500. #endif
  7501. mavlink_message_t msg;
  7502. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7503. uint16_t i;
  7504. mavlink_vibration_t packet_in = {
  7505. 93372036854775807ULL,73.0,101.0,129.0,963498504,963498712,963498920
  7506. };
  7507. mavlink_vibration_t packet1, packet2;
  7508. memset(&packet1, 0, sizeof(packet1));
  7509. packet1.time_usec = packet_in.time_usec;
  7510. packet1.vibration_x = packet_in.vibration_x;
  7511. packet1.vibration_y = packet_in.vibration_y;
  7512. packet1.vibration_z = packet_in.vibration_z;
  7513. packet1.clipping_0 = packet_in.clipping_0;
  7514. packet1.clipping_1 = packet_in.clipping_1;
  7515. packet1.clipping_2 = packet_in.clipping_2;
  7516. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7517. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7518. // cope with extensions
  7519. memset(MAVLINK_MSG_ID_VIBRATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VIBRATION_MIN_LEN);
  7520. }
  7521. #endif
  7522. memset(&packet2, 0, sizeof(packet2));
  7523. mavlink_msg_vibration_encode(system_id, component_id, &msg, &packet1);
  7524. mavlink_msg_vibration_decode(&msg, &packet2);
  7525. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7526. memset(&packet2, 0, sizeof(packet2));
  7527. mavlink_msg_vibration_pack(system_id, component_id, &msg , packet1.time_usec , packet1.vibration_x , packet1.vibration_y , packet1.vibration_z , packet1.clipping_0 , packet1.clipping_1 , packet1.clipping_2 );
  7528. mavlink_msg_vibration_decode(&msg, &packet2);
  7529. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7530. memset(&packet2, 0, sizeof(packet2));
  7531. mavlink_msg_vibration_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.vibration_x , packet1.vibration_y , packet1.vibration_z , packet1.clipping_0 , packet1.clipping_1 , packet1.clipping_2 );
  7532. mavlink_msg_vibration_decode(&msg, &packet2);
  7533. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7534. memset(&packet2, 0, sizeof(packet2));
  7535. mavlink_msg_to_send_buffer(buffer, &msg);
  7536. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7537. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7538. }
  7539. mavlink_msg_vibration_decode(last_msg, &packet2);
  7540. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7541. memset(&packet2, 0, sizeof(packet2));
  7542. mavlink_msg_vibration_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.vibration_x , packet1.vibration_y , packet1.vibration_z , packet1.clipping_0 , packet1.clipping_1 , packet1.clipping_2 );
  7543. mavlink_msg_vibration_decode(last_msg, &packet2);
  7544. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7545. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7546. MAVLINK_ASSERT(mavlink_get_message_info_by_name("VIBRATION") != NULL);
  7547. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VIBRATION) != NULL);
  7548. #endif
  7549. }
  7550. static void mavlink_test_home_position(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7551. {
  7552. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7553. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7554. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HOME_POSITION >= 256) {
  7555. return;
  7556. }
  7557. #endif
  7558. mavlink_message_t msg;
  7559. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7560. uint16_t i;
  7561. mavlink_home_position_t packet_in = {
  7562. 963497464,963497672,963497880,101.0,129.0,157.0,{ 185.0, 186.0, 187.0, 188.0 },297.0,325.0,353.0,93372036854779083ULL
  7563. };
  7564. mavlink_home_position_t packet1, packet2;
  7565. memset(&packet1, 0, sizeof(packet1));
  7566. packet1.latitude = packet_in.latitude;
  7567. packet1.longitude = packet_in.longitude;
  7568. packet1.altitude = packet_in.altitude;
  7569. packet1.x = packet_in.x;
  7570. packet1.y = packet_in.y;
  7571. packet1.z = packet_in.z;
  7572. packet1.approach_x = packet_in.approach_x;
  7573. packet1.approach_y = packet_in.approach_y;
  7574. packet1.approach_z = packet_in.approach_z;
  7575. packet1.time_usec = packet_in.time_usec;
  7576. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  7577. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7578. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7579. // cope with extensions
  7580. memset(MAVLINK_MSG_ID_HOME_POSITION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HOME_POSITION_MIN_LEN);
  7581. }
  7582. #endif
  7583. memset(&packet2, 0, sizeof(packet2));
  7584. mavlink_msg_home_position_encode(system_id, component_id, &msg, &packet1);
  7585. mavlink_msg_home_position_decode(&msg, &packet2);
  7586. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7587. memset(&packet2, 0, sizeof(packet2));
  7588. mavlink_msg_home_position_pack(system_id, component_id, &msg , packet1.latitude , packet1.longitude , packet1.altitude , packet1.x , packet1.y , packet1.z , packet1.q , packet1.approach_x , packet1.approach_y , packet1.approach_z , packet1.time_usec );
  7589. mavlink_msg_home_position_decode(&msg, &packet2);
  7590. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7591. memset(&packet2, 0, sizeof(packet2));
  7592. mavlink_msg_home_position_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.latitude , packet1.longitude , packet1.altitude , packet1.x , packet1.y , packet1.z , packet1.q , packet1.approach_x , packet1.approach_y , packet1.approach_z , packet1.time_usec );
  7593. mavlink_msg_home_position_decode(&msg, &packet2);
  7594. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7595. memset(&packet2, 0, sizeof(packet2));
  7596. mavlink_msg_to_send_buffer(buffer, &msg);
  7597. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7598. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7599. }
  7600. mavlink_msg_home_position_decode(last_msg, &packet2);
  7601. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7602. memset(&packet2, 0, sizeof(packet2));
  7603. mavlink_msg_home_position_send(MAVLINK_COMM_1 , packet1.latitude , packet1.longitude , packet1.altitude , packet1.x , packet1.y , packet1.z , packet1.q , packet1.approach_x , packet1.approach_y , packet1.approach_z , packet1.time_usec );
  7604. mavlink_msg_home_position_decode(last_msg, &packet2);
  7605. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7606. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7607. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HOME_POSITION") != NULL);
  7608. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HOME_POSITION) != NULL);
  7609. #endif
  7610. }
  7611. static void mavlink_test_set_home_position(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7612. {
  7613. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7614. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7615. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SET_HOME_POSITION >= 256) {
  7616. return;
  7617. }
  7618. #endif
  7619. mavlink_message_t msg;
  7620. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7621. uint16_t i;
  7622. mavlink_set_home_position_t packet_in = {
  7623. 963497464,963497672,963497880,101.0,129.0,157.0,{ 185.0, 186.0, 187.0, 188.0 },297.0,325.0,353.0,161,93372036854779146ULL
  7624. };
  7625. mavlink_set_home_position_t packet1, packet2;
  7626. memset(&packet1, 0, sizeof(packet1));
  7627. packet1.latitude = packet_in.latitude;
  7628. packet1.longitude = packet_in.longitude;
  7629. packet1.altitude = packet_in.altitude;
  7630. packet1.x = packet_in.x;
  7631. packet1.y = packet_in.y;
  7632. packet1.z = packet_in.z;
  7633. packet1.approach_x = packet_in.approach_x;
  7634. packet1.approach_y = packet_in.approach_y;
  7635. packet1.approach_z = packet_in.approach_z;
  7636. packet1.target_system = packet_in.target_system;
  7637. packet1.time_usec = packet_in.time_usec;
  7638. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  7639. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7640. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7641. // cope with extensions
  7642. memset(MAVLINK_MSG_ID_SET_HOME_POSITION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SET_HOME_POSITION_MIN_LEN);
  7643. }
  7644. #endif
  7645. memset(&packet2, 0, sizeof(packet2));
  7646. mavlink_msg_set_home_position_encode(system_id, component_id, &msg, &packet1);
  7647. mavlink_msg_set_home_position_decode(&msg, &packet2);
  7648. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7649. memset(&packet2, 0, sizeof(packet2));
  7650. mavlink_msg_set_home_position_pack(system_id, component_id, &msg , packet1.target_system , packet1.latitude , packet1.longitude , packet1.altitude , packet1.x , packet1.y , packet1.z , packet1.q , packet1.approach_x , packet1.approach_y , packet1.approach_z , packet1.time_usec );
  7651. mavlink_msg_set_home_position_decode(&msg, &packet2);
  7652. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7653. memset(&packet2, 0, sizeof(packet2));
  7654. mavlink_msg_set_home_position_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.latitude , packet1.longitude , packet1.altitude , packet1.x , packet1.y , packet1.z , packet1.q , packet1.approach_x , packet1.approach_y , packet1.approach_z , packet1.time_usec );
  7655. mavlink_msg_set_home_position_decode(&msg, &packet2);
  7656. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7657. memset(&packet2, 0, sizeof(packet2));
  7658. mavlink_msg_to_send_buffer(buffer, &msg);
  7659. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7660. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7661. }
  7662. mavlink_msg_set_home_position_decode(last_msg, &packet2);
  7663. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7664. memset(&packet2, 0, sizeof(packet2));
  7665. mavlink_msg_set_home_position_send(MAVLINK_COMM_1 , packet1.target_system , packet1.latitude , packet1.longitude , packet1.altitude , packet1.x , packet1.y , packet1.z , packet1.q , packet1.approach_x , packet1.approach_y , packet1.approach_z , packet1.time_usec );
  7666. mavlink_msg_set_home_position_decode(last_msg, &packet2);
  7667. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7668. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7669. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SET_HOME_POSITION") != NULL);
  7670. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SET_HOME_POSITION) != NULL);
  7671. #endif
  7672. }
  7673. static void mavlink_test_message_interval(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7674. {
  7675. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7676. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7677. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MESSAGE_INTERVAL >= 256) {
  7678. return;
  7679. }
  7680. #endif
  7681. mavlink_message_t msg;
  7682. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7683. uint16_t i;
  7684. mavlink_message_interval_t packet_in = {
  7685. 963497464,17443
  7686. };
  7687. mavlink_message_interval_t packet1, packet2;
  7688. memset(&packet1, 0, sizeof(packet1));
  7689. packet1.interval_us = packet_in.interval_us;
  7690. packet1.message_id = packet_in.message_id;
  7691. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7692. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7693. // cope with extensions
  7694. memset(MAVLINK_MSG_ID_MESSAGE_INTERVAL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MESSAGE_INTERVAL_MIN_LEN);
  7695. }
  7696. #endif
  7697. memset(&packet2, 0, sizeof(packet2));
  7698. mavlink_msg_message_interval_encode(system_id, component_id, &msg, &packet1);
  7699. mavlink_msg_message_interval_decode(&msg, &packet2);
  7700. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7701. memset(&packet2, 0, sizeof(packet2));
  7702. mavlink_msg_message_interval_pack(system_id, component_id, &msg , packet1.message_id , packet1.interval_us );
  7703. mavlink_msg_message_interval_decode(&msg, &packet2);
  7704. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7705. memset(&packet2, 0, sizeof(packet2));
  7706. mavlink_msg_message_interval_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.message_id , packet1.interval_us );
  7707. mavlink_msg_message_interval_decode(&msg, &packet2);
  7708. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7709. memset(&packet2, 0, sizeof(packet2));
  7710. mavlink_msg_to_send_buffer(buffer, &msg);
  7711. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7712. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7713. }
  7714. mavlink_msg_message_interval_decode(last_msg, &packet2);
  7715. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7716. memset(&packet2, 0, sizeof(packet2));
  7717. mavlink_msg_message_interval_send(MAVLINK_COMM_1 , packet1.message_id , packet1.interval_us );
  7718. mavlink_msg_message_interval_decode(last_msg, &packet2);
  7719. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7720. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7721. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MESSAGE_INTERVAL") != NULL);
  7722. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MESSAGE_INTERVAL) != NULL);
  7723. #endif
  7724. }
  7725. static void mavlink_test_extended_sys_state(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7726. {
  7727. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7728. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7729. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_EXTENDED_SYS_STATE >= 256) {
  7730. return;
  7731. }
  7732. #endif
  7733. mavlink_message_t msg;
  7734. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7735. uint16_t i;
  7736. mavlink_extended_sys_state_t packet_in = {
  7737. 5,72
  7738. };
  7739. mavlink_extended_sys_state_t packet1, packet2;
  7740. memset(&packet1, 0, sizeof(packet1));
  7741. packet1.vtol_state = packet_in.vtol_state;
  7742. packet1.landed_state = packet_in.landed_state;
  7743. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7744. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7745. // cope with extensions
  7746. memset(MAVLINK_MSG_ID_EXTENDED_SYS_STATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_EXTENDED_SYS_STATE_MIN_LEN);
  7747. }
  7748. #endif
  7749. memset(&packet2, 0, sizeof(packet2));
  7750. mavlink_msg_extended_sys_state_encode(system_id, component_id, &msg, &packet1);
  7751. mavlink_msg_extended_sys_state_decode(&msg, &packet2);
  7752. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7753. memset(&packet2, 0, sizeof(packet2));
  7754. mavlink_msg_extended_sys_state_pack(system_id, component_id, &msg , packet1.vtol_state , packet1.landed_state );
  7755. mavlink_msg_extended_sys_state_decode(&msg, &packet2);
  7756. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7757. memset(&packet2, 0, sizeof(packet2));
  7758. mavlink_msg_extended_sys_state_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.vtol_state , packet1.landed_state );
  7759. mavlink_msg_extended_sys_state_decode(&msg, &packet2);
  7760. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7761. memset(&packet2, 0, sizeof(packet2));
  7762. mavlink_msg_to_send_buffer(buffer, &msg);
  7763. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7764. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7765. }
  7766. mavlink_msg_extended_sys_state_decode(last_msg, &packet2);
  7767. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7768. memset(&packet2, 0, sizeof(packet2));
  7769. mavlink_msg_extended_sys_state_send(MAVLINK_COMM_1 , packet1.vtol_state , packet1.landed_state );
  7770. mavlink_msg_extended_sys_state_decode(last_msg, &packet2);
  7771. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7772. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7773. MAVLINK_ASSERT(mavlink_get_message_info_by_name("EXTENDED_SYS_STATE") != NULL);
  7774. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_EXTENDED_SYS_STATE) != NULL);
  7775. #endif
  7776. }
  7777. static void mavlink_test_adsb_vehicle(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7778. {
  7779. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7780. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7781. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ADSB_VEHICLE >= 256) {
  7782. return;
  7783. }
  7784. #endif
  7785. mavlink_message_t msg;
  7786. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7787. uint16_t i;
  7788. mavlink_adsb_vehicle_t packet_in = {
  7789. 963497464,963497672,963497880,963498088,18067,18171,18275,18379,18483,211,"BCDEFGHI",113,180
  7790. };
  7791. mavlink_adsb_vehicle_t packet1, packet2;
  7792. memset(&packet1, 0, sizeof(packet1));
  7793. packet1.ICAO_address = packet_in.ICAO_address;
  7794. packet1.lat = packet_in.lat;
  7795. packet1.lon = packet_in.lon;
  7796. packet1.altitude = packet_in.altitude;
  7797. packet1.heading = packet_in.heading;
  7798. packet1.hor_velocity = packet_in.hor_velocity;
  7799. packet1.ver_velocity = packet_in.ver_velocity;
  7800. packet1.flags = packet_in.flags;
  7801. packet1.squawk = packet_in.squawk;
  7802. packet1.altitude_type = packet_in.altitude_type;
  7803. packet1.emitter_type = packet_in.emitter_type;
  7804. packet1.tslc = packet_in.tslc;
  7805. mav_array_memcpy(packet1.callsign, packet_in.callsign, sizeof(char)*9);
  7806. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7807. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7808. // cope with extensions
  7809. memset(MAVLINK_MSG_ID_ADSB_VEHICLE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ADSB_VEHICLE_MIN_LEN);
  7810. }
  7811. #endif
  7812. memset(&packet2, 0, sizeof(packet2));
  7813. mavlink_msg_adsb_vehicle_encode(system_id, component_id, &msg, &packet1);
  7814. mavlink_msg_adsb_vehicle_decode(&msg, &packet2);
  7815. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7816. memset(&packet2, 0, sizeof(packet2));
  7817. mavlink_msg_adsb_vehicle_pack(system_id, component_id, &msg , packet1.ICAO_address , packet1.lat , packet1.lon , packet1.altitude_type , packet1.altitude , packet1.heading , packet1.hor_velocity , packet1.ver_velocity , packet1.callsign , packet1.emitter_type , packet1.tslc , packet1.flags , packet1.squawk );
  7818. mavlink_msg_adsb_vehicle_decode(&msg, &packet2);
  7819. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7820. memset(&packet2, 0, sizeof(packet2));
  7821. mavlink_msg_adsb_vehicle_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.ICAO_address , packet1.lat , packet1.lon , packet1.altitude_type , packet1.altitude , packet1.heading , packet1.hor_velocity , packet1.ver_velocity , packet1.callsign , packet1.emitter_type , packet1.tslc , packet1.flags , packet1.squawk );
  7822. mavlink_msg_adsb_vehicle_decode(&msg, &packet2);
  7823. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7824. memset(&packet2, 0, sizeof(packet2));
  7825. mavlink_msg_to_send_buffer(buffer, &msg);
  7826. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7827. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7828. }
  7829. mavlink_msg_adsb_vehicle_decode(last_msg, &packet2);
  7830. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7831. memset(&packet2, 0, sizeof(packet2));
  7832. mavlink_msg_adsb_vehicle_send(MAVLINK_COMM_1 , packet1.ICAO_address , packet1.lat , packet1.lon , packet1.altitude_type , packet1.altitude , packet1.heading , packet1.hor_velocity , packet1.ver_velocity , packet1.callsign , packet1.emitter_type , packet1.tslc , packet1.flags , packet1.squawk );
  7833. mavlink_msg_adsb_vehicle_decode(last_msg, &packet2);
  7834. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7835. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7836. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ADSB_VEHICLE") != NULL);
  7837. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ADSB_VEHICLE) != NULL);
  7838. #endif
  7839. }
  7840. static void mavlink_test_collision(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7841. {
  7842. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7843. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7844. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COLLISION >= 256) {
  7845. return;
  7846. }
  7847. #endif
  7848. mavlink_message_t msg;
  7849. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7850. uint16_t i;
  7851. mavlink_collision_t packet_in = {
  7852. 963497464,45.0,73.0,101.0,53,120,187
  7853. };
  7854. mavlink_collision_t packet1, packet2;
  7855. memset(&packet1, 0, sizeof(packet1));
  7856. packet1.id = packet_in.id;
  7857. packet1.time_to_minimum_delta = packet_in.time_to_minimum_delta;
  7858. packet1.altitude_minimum_delta = packet_in.altitude_minimum_delta;
  7859. packet1.horizontal_minimum_delta = packet_in.horizontal_minimum_delta;
  7860. packet1.src = packet_in.src;
  7861. packet1.action = packet_in.action;
  7862. packet1.threat_level = packet_in.threat_level;
  7863. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7864. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7865. // cope with extensions
  7866. memset(MAVLINK_MSG_ID_COLLISION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COLLISION_MIN_LEN);
  7867. }
  7868. #endif
  7869. memset(&packet2, 0, sizeof(packet2));
  7870. mavlink_msg_collision_encode(system_id, component_id, &msg, &packet1);
  7871. mavlink_msg_collision_decode(&msg, &packet2);
  7872. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7873. memset(&packet2, 0, sizeof(packet2));
  7874. mavlink_msg_collision_pack(system_id, component_id, &msg , packet1.src , packet1.id , packet1.action , packet1.threat_level , packet1.time_to_minimum_delta , packet1.altitude_minimum_delta , packet1.horizontal_minimum_delta );
  7875. mavlink_msg_collision_decode(&msg, &packet2);
  7876. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7877. memset(&packet2, 0, sizeof(packet2));
  7878. mavlink_msg_collision_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.src , packet1.id , packet1.action , packet1.threat_level , packet1.time_to_minimum_delta , packet1.altitude_minimum_delta , packet1.horizontal_minimum_delta );
  7879. mavlink_msg_collision_decode(&msg, &packet2);
  7880. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7881. memset(&packet2, 0, sizeof(packet2));
  7882. mavlink_msg_to_send_buffer(buffer, &msg);
  7883. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7884. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7885. }
  7886. mavlink_msg_collision_decode(last_msg, &packet2);
  7887. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7888. memset(&packet2, 0, sizeof(packet2));
  7889. mavlink_msg_collision_send(MAVLINK_COMM_1 , packet1.src , packet1.id , packet1.action , packet1.threat_level , packet1.time_to_minimum_delta , packet1.altitude_minimum_delta , packet1.horizontal_minimum_delta );
  7890. mavlink_msg_collision_decode(last_msg, &packet2);
  7891. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7892. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7893. MAVLINK_ASSERT(mavlink_get_message_info_by_name("COLLISION") != NULL);
  7894. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COLLISION) != NULL);
  7895. #endif
  7896. }
  7897. static void mavlink_test_v2_extension(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7898. {
  7899. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7900. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7901. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_V2_EXTENSION >= 256) {
  7902. return;
  7903. }
  7904. #endif
  7905. mavlink_message_t msg;
  7906. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7907. uint16_t i;
  7908. mavlink_v2_extension_t packet_in = {
  7909. 17235,139,206,17,{ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 }
  7910. };
  7911. mavlink_v2_extension_t packet1, packet2;
  7912. memset(&packet1, 0, sizeof(packet1));
  7913. packet1.message_type = packet_in.message_type;
  7914. packet1.target_network = packet_in.target_network;
  7915. packet1.target_system = packet_in.target_system;
  7916. packet1.target_component = packet_in.target_component;
  7917. mav_array_memcpy(packet1.payload, packet_in.payload, sizeof(uint8_t)*249);
  7918. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7919. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7920. // cope with extensions
  7921. memset(MAVLINK_MSG_ID_V2_EXTENSION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_V2_EXTENSION_MIN_LEN);
  7922. }
  7923. #endif
  7924. memset(&packet2, 0, sizeof(packet2));
  7925. mavlink_msg_v2_extension_encode(system_id, component_id, &msg, &packet1);
  7926. mavlink_msg_v2_extension_decode(&msg, &packet2);
  7927. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7928. memset(&packet2, 0, sizeof(packet2));
  7929. mavlink_msg_v2_extension_pack(system_id, component_id, &msg , packet1.target_network , packet1.target_system , packet1.target_component , packet1.message_type , packet1.payload );
  7930. mavlink_msg_v2_extension_decode(&msg, &packet2);
  7931. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7932. memset(&packet2, 0, sizeof(packet2));
  7933. mavlink_msg_v2_extension_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_network , packet1.target_system , packet1.target_component , packet1.message_type , packet1.payload );
  7934. mavlink_msg_v2_extension_decode(&msg, &packet2);
  7935. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7936. memset(&packet2, 0, sizeof(packet2));
  7937. mavlink_msg_to_send_buffer(buffer, &msg);
  7938. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7939. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7940. }
  7941. mavlink_msg_v2_extension_decode(last_msg, &packet2);
  7942. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7943. memset(&packet2, 0, sizeof(packet2));
  7944. mavlink_msg_v2_extension_send(MAVLINK_COMM_1 , packet1.target_network , packet1.target_system , packet1.target_component , packet1.message_type , packet1.payload );
  7945. mavlink_msg_v2_extension_decode(last_msg, &packet2);
  7946. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7947. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  7948. MAVLINK_ASSERT(mavlink_get_message_info_by_name("V2_EXTENSION") != NULL);
  7949. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_V2_EXTENSION) != NULL);
  7950. #endif
  7951. }
  7952. static void mavlink_test_memory_vect(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  7953. {
  7954. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7955. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  7956. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MEMORY_VECT >= 256) {
  7957. return;
  7958. }
  7959. #endif
  7960. mavlink_message_t msg;
  7961. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  7962. uint16_t i;
  7963. mavlink_memory_vect_t packet_in = {
  7964. 17235,139,206,{ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }
  7965. };
  7966. mavlink_memory_vect_t packet1, packet2;
  7967. memset(&packet1, 0, sizeof(packet1));
  7968. packet1.address = packet_in.address;
  7969. packet1.ver = packet_in.ver;
  7970. packet1.type = packet_in.type;
  7971. mav_array_memcpy(packet1.value, packet_in.value, sizeof(int8_t)*32);
  7972. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  7973. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  7974. // cope with extensions
  7975. memset(MAVLINK_MSG_ID_MEMORY_VECT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MEMORY_VECT_MIN_LEN);
  7976. }
  7977. #endif
  7978. memset(&packet2, 0, sizeof(packet2));
  7979. mavlink_msg_memory_vect_encode(system_id, component_id, &msg, &packet1);
  7980. mavlink_msg_memory_vect_decode(&msg, &packet2);
  7981. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7982. memset(&packet2, 0, sizeof(packet2));
  7983. mavlink_msg_memory_vect_pack(system_id, component_id, &msg , packet1.address , packet1.ver , packet1.type , packet1.value );
  7984. mavlink_msg_memory_vect_decode(&msg, &packet2);
  7985. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7986. memset(&packet2, 0, sizeof(packet2));
  7987. mavlink_msg_memory_vect_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.address , packet1.ver , packet1.type , packet1.value );
  7988. mavlink_msg_memory_vect_decode(&msg, &packet2);
  7989. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7990. memset(&packet2, 0, sizeof(packet2));
  7991. mavlink_msg_to_send_buffer(buffer, &msg);
  7992. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  7993. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  7994. }
  7995. mavlink_msg_memory_vect_decode(last_msg, &packet2);
  7996. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  7997. memset(&packet2, 0, sizeof(packet2));
  7998. mavlink_msg_memory_vect_send(MAVLINK_COMM_1 , packet1.address , packet1.ver , packet1.type , packet1.value );
  7999. mavlink_msg_memory_vect_decode(last_msg, &packet2);
  8000. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8001. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8002. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MEMORY_VECT") != NULL);
  8003. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MEMORY_VECT) != NULL);
  8004. #endif
  8005. }
  8006. static void mavlink_test_debug_vect(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8007. {
  8008. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8009. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8010. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_DEBUG_VECT >= 256) {
  8011. return;
  8012. }
  8013. #endif
  8014. mavlink_message_t msg;
  8015. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8016. uint16_t i;
  8017. mavlink_debug_vect_t packet_in = {
  8018. 93372036854775807ULL,73.0,101.0,129.0,"UVWXYZABC"
  8019. };
  8020. mavlink_debug_vect_t packet1, packet2;
  8021. memset(&packet1, 0, sizeof(packet1));
  8022. packet1.time_usec = packet_in.time_usec;
  8023. packet1.x = packet_in.x;
  8024. packet1.y = packet_in.y;
  8025. packet1.z = packet_in.z;
  8026. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*10);
  8027. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8028. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8029. // cope with extensions
  8030. memset(MAVLINK_MSG_ID_DEBUG_VECT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_DEBUG_VECT_MIN_LEN);
  8031. }
  8032. #endif
  8033. memset(&packet2, 0, sizeof(packet2));
  8034. mavlink_msg_debug_vect_encode(system_id, component_id, &msg, &packet1);
  8035. mavlink_msg_debug_vect_decode(&msg, &packet2);
  8036. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8037. memset(&packet2, 0, sizeof(packet2));
  8038. mavlink_msg_debug_vect_pack(system_id, component_id, &msg , packet1.name , packet1.time_usec , packet1.x , packet1.y , packet1.z );
  8039. mavlink_msg_debug_vect_decode(&msg, &packet2);
  8040. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8041. memset(&packet2, 0, sizeof(packet2));
  8042. mavlink_msg_debug_vect_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.name , packet1.time_usec , packet1.x , packet1.y , packet1.z );
  8043. mavlink_msg_debug_vect_decode(&msg, &packet2);
  8044. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8045. memset(&packet2, 0, sizeof(packet2));
  8046. mavlink_msg_to_send_buffer(buffer, &msg);
  8047. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8048. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8049. }
  8050. mavlink_msg_debug_vect_decode(last_msg, &packet2);
  8051. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8052. memset(&packet2, 0, sizeof(packet2));
  8053. mavlink_msg_debug_vect_send(MAVLINK_COMM_1 , packet1.name , packet1.time_usec , packet1.x , packet1.y , packet1.z );
  8054. mavlink_msg_debug_vect_decode(last_msg, &packet2);
  8055. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8056. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8057. MAVLINK_ASSERT(mavlink_get_message_info_by_name("DEBUG_VECT") != NULL);
  8058. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_DEBUG_VECT) != NULL);
  8059. #endif
  8060. }
  8061. static void mavlink_test_named_value_float(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8062. {
  8063. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8064. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8065. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_NAMED_VALUE_FLOAT >= 256) {
  8066. return;
  8067. }
  8068. #endif
  8069. mavlink_message_t msg;
  8070. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8071. uint16_t i;
  8072. mavlink_named_value_float_t packet_in = {
  8073. 963497464,45.0,"IJKLMNOPQ"
  8074. };
  8075. mavlink_named_value_float_t packet1, packet2;
  8076. memset(&packet1, 0, sizeof(packet1));
  8077. packet1.time_boot_ms = packet_in.time_boot_ms;
  8078. packet1.value = packet_in.value;
  8079. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*10);
  8080. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8081. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8082. // cope with extensions
  8083. memset(MAVLINK_MSG_ID_NAMED_VALUE_FLOAT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_NAMED_VALUE_FLOAT_MIN_LEN);
  8084. }
  8085. #endif
  8086. memset(&packet2, 0, sizeof(packet2));
  8087. mavlink_msg_named_value_float_encode(system_id, component_id, &msg, &packet1);
  8088. mavlink_msg_named_value_float_decode(&msg, &packet2);
  8089. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8090. memset(&packet2, 0, sizeof(packet2));
  8091. mavlink_msg_named_value_float_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.name , packet1.value );
  8092. mavlink_msg_named_value_float_decode(&msg, &packet2);
  8093. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8094. memset(&packet2, 0, sizeof(packet2));
  8095. mavlink_msg_named_value_float_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.name , packet1.value );
  8096. mavlink_msg_named_value_float_decode(&msg, &packet2);
  8097. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8098. memset(&packet2, 0, sizeof(packet2));
  8099. mavlink_msg_to_send_buffer(buffer, &msg);
  8100. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8101. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8102. }
  8103. mavlink_msg_named_value_float_decode(last_msg, &packet2);
  8104. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8105. memset(&packet2, 0, sizeof(packet2));
  8106. mavlink_msg_named_value_float_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.name , packet1.value );
  8107. mavlink_msg_named_value_float_decode(last_msg, &packet2);
  8108. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8109. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8110. MAVLINK_ASSERT(mavlink_get_message_info_by_name("NAMED_VALUE_FLOAT") != NULL);
  8111. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_NAMED_VALUE_FLOAT) != NULL);
  8112. #endif
  8113. }
  8114. static void mavlink_test_named_value_int(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8115. {
  8116. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8117. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8118. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_NAMED_VALUE_INT >= 256) {
  8119. return;
  8120. }
  8121. #endif
  8122. mavlink_message_t msg;
  8123. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8124. uint16_t i;
  8125. mavlink_named_value_int_t packet_in = {
  8126. 963497464,963497672,"IJKLMNOPQ"
  8127. };
  8128. mavlink_named_value_int_t packet1, packet2;
  8129. memset(&packet1, 0, sizeof(packet1));
  8130. packet1.time_boot_ms = packet_in.time_boot_ms;
  8131. packet1.value = packet_in.value;
  8132. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*10);
  8133. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8134. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8135. // cope with extensions
  8136. memset(MAVLINK_MSG_ID_NAMED_VALUE_INT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_NAMED_VALUE_INT_MIN_LEN);
  8137. }
  8138. #endif
  8139. memset(&packet2, 0, sizeof(packet2));
  8140. mavlink_msg_named_value_int_encode(system_id, component_id, &msg, &packet1);
  8141. mavlink_msg_named_value_int_decode(&msg, &packet2);
  8142. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8143. memset(&packet2, 0, sizeof(packet2));
  8144. mavlink_msg_named_value_int_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.name , packet1.value );
  8145. mavlink_msg_named_value_int_decode(&msg, &packet2);
  8146. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8147. memset(&packet2, 0, sizeof(packet2));
  8148. mavlink_msg_named_value_int_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.name , packet1.value );
  8149. mavlink_msg_named_value_int_decode(&msg, &packet2);
  8150. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8151. memset(&packet2, 0, sizeof(packet2));
  8152. mavlink_msg_to_send_buffer(buffer, &msg);
  8153. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8154. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8155. }
  8156. mavlink_msg_named_value_int_decode(last_msg, &packet2);
  8157. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8158. memset(&packet2, 0, sizeof(packet2));
  8159. mavlink_msg_named_value_int_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.name , packet1.value );
  8160. mavlink_msg_named_value_int_decode(last_msg, &packet2);
  8161. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8162. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8163. MAVLINK_ASSERT(mavlink_get_message_info_by_name("NAMED_VALUE_INT") != NULL);
  8164. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_NAMED_VALUE_INT) != NULL);
  8165. #endif
  8166. }
  8167. static void mavlink_test_statustext(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8168. {
  8169. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8170. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8171. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_STATUSTEXT >= 256) {
  8172. return;
  8173. }
  8174. #endif
  8175. mavlink_message_t msg;
  8176. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8177. uint16_t i;
  8178. mavlink_statustext_t packet_in = {
  8179. 5,"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX",19887,228
  8180. };
  8181. mavlink_statustext_t packet1, packet2;
  8182. memset(&packet1, 0, sizeof(packet1));
  8183. packet1.severity = packet_in.severity;
  8184. packet1.id = packet_in.id;
  8185. packet1.chunk_seq = packet_in.chunk_seq;
  8186. mav_array_memcpy(packet1.text, packet_in.text, sizeof(char)*50);
  8187. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8188. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8189. // cope with extensions
  8190. memset(MAVLINK_MSG_ID_STATUSTEXT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_STATUSTEXT_MIN_LEN);
  8191. }
  8192. #endif
  8193. memset(&packet2, 0, sizeof(packet2));
  8194. mavlink_msg_statustext_encode(system_id, component_id, &msg, &packet1);
  8195. mavlink_msg_statustext_decode(&msg, &packet2);
  8196. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8197. memset(&packet2, 0, sizeof(packet2));
  8198. mavlink_msg_statustext_pack(system_id, component_id, &msg , packet1.severity , packet1.text , packet1.id , packet1.chunk_seq );
  8199. mavlink_msg_statustext_decode(&msg, &packet2);
  8200. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8201. memset(&packet2, 0, sizeof(packet2));
  8202. mavlink_msg_statustext_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.severity , packet1.text , packet1.id , packet1.chunk_seq );
  8203. mavlink_msg_statustext_decode(&msg, &packet2);
  8204. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8205. memset(&packet2, 0, sizeof(packet2));
  8206. mavlink_msg_to_send_buffer(buffer, &msg);
  8207. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8208. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8209. }
  8210. mavlink_msg_statustext_decode(last_msg, &packet2);
  8211. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8212. memset(&packet2, 0, sizeof(packet2));
  8213. mavlink_msg_statustext_send(MAVLINK_COMM_1 , packet1.severity , packet1.text , packet1.id , packet1.chunk_seq );
  8214. mavlink_msg_statustext_decode(last_msg, &packet2);
  8215. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8216. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8217. MAVLINK_ASSERT(mavlink_get_message_info_by_name("STATUSTEXT") != NULL);
  8218. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_STATUSTEXT) != NULL);
  8219. #endif
  8220. }
  8221. static void mavlink_test_debug(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8222. {
  8223. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8224. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8225. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_DEBUG >= 256) {
  8226. return;
  8227. }
  8228. #endif
  8229. mavlink_message_t msg;
  8230. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8231. uint16_t i;
  8232. mavlink_debug_t packet_in = {
  8233. 963497464,45.0,29
  8234. };
  8235. mavlink_debug_t packet1, packet2;
  8236. memset(&packet1, 0, sizeof(packet1));
  8237. packet1.time_boot_ms = packet_in.time_boot_ms;
  8238. packet1.value = packet_in.value;
  8239. packet1.ind = packet_in.ind;
  8240. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8241. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8242. // cope with extensions
  8243. memset(MAVLINK_MSG_ID_DEBUG_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_DEBUG_MIN_LEN);
  8244. }
  8245. #endif
  8246. memset(&packet2, 0, sizeof(packet2));
  8247. mavlink_msg_debug_encode(system_id, component_id, &msg, &packet1);
  8248. mavlink_msg_debug_decode(&msg, &packet2);
  8249. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8250. memset(&packet2, 0, sizeof(packet2));
  8251. mavlink_msg_debug_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.ind , packet1.value );
  8252. mavlink_msg_debug_decode(&msg, &packet2);
  8253. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8254. memset(&packet2, 0, sizeof(packet2));
  8255. mavlink_msg_debug_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.ind , packet1.value );
  8256. mavlink_msg_debug_decode(&msg, &packet2);
  8257. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8258. memset(&packet2, 0, sizeof(packet2));
  8259. mavlink_msg_to_send_buffer(buffer, &msg);
  8260. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8261. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8262. }
  8263. mavlink_msg_debug_decode(last_msg, &packet2);
  8264. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8265. memset(&packet2, 0, sizeof(packet2));
  8266. mavlink_msg_debug_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.ind , packet1.value );
  8267. mavlink_msg_debug_decode(last_msg, &packet2);
  8268. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8269. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8270. MAVLINK_ASSERT(mavlink_get_message_info_by_name("DEBUG") != NULL);
  8271. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_DEBUG) != NULL);
  8272. #endif
  8273. }
  8274. static void mavlink_test_setup_signing(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8275. {
  8276. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8277. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8278. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SETUP_SIGNING >= 256) {
  8279. return;
  8280. }
  8281. #endif
  8282. mavlink_message_t msg;
  8283. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8284. uint16_t i;
  8285. mavlink_setup_signing_t packet_in = {
  8286. 93372036854775807ULL,29,96,{ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194 }
  8287. };
  8288. mavlink_setup_signing_t packet1, packet2;
  8289. memset(&packet1, 0, sizeof(packet1));
  8290. packet1.initial_timestamp = packet_in.initial_timestamp;
  8291. packet1.target_system = packet_in.target_system;
  8292. packet1.target_component = packet_in.target_component;
  8293. mav_array_memcpy(packet1.secret_key, packet_in.secret_key, sizeof(uint8_t)*32);
  8294. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8295. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8296. // cope with extensions
  8297. memset(MAVLINK_MSG_ID_SETUP_SIGNING_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SETUP_SIGNING_MIN_LEN);
  8298. }
  8299. #endif
  8300. memset(&packet2, 0, sizeof(packet2));
  8301. mavlink_msg_setup_signing_encode(system_id, component_id, &msg, &packet1);
  8302. mavlink_msg_setup_signing_decode(&msg, &packet2);
  8303. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8304. memset(&packet2, 0, sizeof(packet2));
  8305. mavlink_msg_setup_signing_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.secret_key , packet1.initial_timestamp );
  8306. mavlink_msg_setup_signing_decode(&msg, &packet2);
  8307. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8308. memset(&packet2, 0, sizeof(packet2));
  8309. mavlink_msg_setup_signing_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.secret_key , packet1.initial_timestamp );
  8310. mavlink_msg_setup_signing_decode(&msg, &packet2);
  8311. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8312. memset(&packet2, 0, sizeof(packet2));
  8313. mavlink_msg_to_send_buffer(buffer, &msg);
  8314. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8315. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8316. }
  8317. mavlink_msg_setup_signing_decode(last_msg, &packet2);
  8318. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8319. memset(&packet2, 0, sizeof(packet2));
  8320. mavlink_msg_setup_signing_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.secret_key , packet1.initial_timestamp );
  8321. mavlink_msg_setup_signing_decode(last_msg, &packet2);
  8322. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8323. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8324. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SETUP_SIGNING") != NULL);
  8325. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SETUP_SIGNING) != NULL);
  8326. #endif
  8327. }
  8328. static void mavlink_test_button_change(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8329. {
  8330. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8331. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8332. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_BUTTON_CHANGE >= 256) {
  8333. return;
  8334. }
  8335. #endif
  8336. mavlink_message_t msg;
  8337. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8338. uint16_t i;
  8339. mavlink_button_change_t packet_in = {
  8340. 963497464,963497672,29
  8341. };
  8342. mavlink_button_change_t packet1, packet2;
  8343. memset(&packet1, 0, sizeof(packet1));
  8344. packet1.time_boot_ms = packet_in.time_boot_ms;
  8345. packet1.last_change_ms = packet_in.last_change_ms;
  8346. packet1.state = packet_in.state;
  8347. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8348. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8349. // cope with extensions
  8350. memset(MAVLINK_MSG_ID_BUTTON_CHANGE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_BUTTON_CHANGE_MIN_LEN);
  8351. }
  8352. #endif
  8353. memset(&packet2, 0, sizeof(packet2));
  8354. mavlink_msg_button_change_encode(system_id, component_id, &msg, &packet1);
  8355. mavlink_msg_button_change_decode(&msg, &packet2);
  8356. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8357. memset(&packet2, 0, sizeof(packet2));
  8358. mavlink_msg_button_change_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.last_change_ms , packet1.state );
  8359. mavlink_msg_button_change_decode(&msg, &packet2);
  8360. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8361. memset(&packet2, 0, sizeof(packet2));
  8362. mavlink_msg_button_change_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.last_change_ms , packet1.state );
  8363. mavlink_msg_button_change_decode(&msg, &packet2);
  8364. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8365. memset(&packet2, 0, sizeof(packet2));
  8366. mavlink_msg_to_send_buffer(buffer, &msg);
  8367. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8368. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8369. }
  8370. mavlink_msg_button_change_decode(last_msg, &packet2);
  8371. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8372. memset(&packet2, 0, sizeof(packet2));
  8373. mavlink_msg_button_change_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.last_change_ms , packet1.state );
  8374. mavlink_msg_button_change_decode(last_msg, &packet2);
  8375. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8376. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8377. MAVLINK_ASSERT(mavlink_get_message_info_by_name("BUTTON_CHANGE") != NULL);
  8378. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_BUTTON_CHANGE) != NULL);
  8379. #endif
  8380. }
  8381. static void mavlink_test_play_tune(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8382. {
  8383. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8384. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8385. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PLAY_TUNE >= 256) {
  8386. return;
  8387. }
  8388. #endif
  8389. mavlink_message_t msg;
  8390. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8391. uint16_t i;
  8392. mavlink_play_tune_t packet_in = {
  8393. 5,72,"CDEFGHIJKLMNOPQRSTUVWXYZABCDE","GHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW"
  8394. };
  8395. mavlink_play_tune_t packet1, packet2;
  8396. memset(&packet1, 0, sizeof(packet1));
  8397. packet1.target_system = packet_in.target_system;
  8398. packet1.target_component = packet_in.target_component;
  8399. mav_array_memcpy(packet1.tune, packet_in.tune, sizeof(char)*30);
  8400. mav_array_memcpy(packet1.tune2, packet_in.tune2, sizeof(char)*200);
  8401. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8402. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8403. // cope with extensions
  8404. memset(MAVLINK_MSG_ID_PLAY_TUNE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PLAY_TUNE_MIN_LEN);
  8405. }
  8406. #endif
  8407. memset(&packet2, 0, sizeof(packet2));
  8408. mavlink_msg_play_tune_encode(system_id, component_id, &msg, &packet1);
  8409. mavlink_msg_play_tune_decode(&msg, &packet2);
  8410. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8411. memset(&packet2, 0, sizeof(packet2));
  8412. mavlink_msg_play_tune_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.tune , packet1.tune2 );
  8413. mavlink_msg_play_tune_decode(&msg, &packet2);
  8414. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8415. memset(&packet2, 0, sizeof(packet2));
  8416. mavlink_msg_play_tune_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.tune , packet1.tune2 );
  8417. mavlink_msg_play_tune_decode(&msg, &packet2);
  8418. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8419. memset(&packet2, 0, sizeof(packet2));
  8420. mavlink_msg_to_send_buffer(buffer, &msg);
  8421. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8422. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8423. }
  8424. mavlink_msg_play_tune_decode(last_msg, &packet2);
  8425. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8426. memset(&packet2, 0, sizeof(packet2));
  8427. mavlink_msg_play_tune_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.tune , packet1.tune2 );
  8428. mavlink_msg_play_tune_decode(last_msg, &packet2);
  8429. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8430. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8431. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PLAY_TUNE") != NULL);
  8432. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PLAY_TUNE) != NULL);
  8433. #endif
  8434. }
  8435. static void mavlink_test_camera_information(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8436. {
  8437. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8438. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8439. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_INFORMATION >= 256) {
  8440. return;
  8441. }
  8442. #endif
  8443. mavlink_message_t msg;
  8444. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8445. uint16_t i;
  8446. mavlink_camera_information_t packet_in = {
  8447. 963497464,963497672,73.0,101.0,129.0,963498504,18483,18587,18691,{ 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 },{ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94 },159,"RSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ",134
  8448. };
  8449. mavlink_camera_information_t packet1, packet2;
  8450. memset(&packet1, 0, sizeof(packet1));
  8451. packet1.time_boot_ms = packet_in.time_boot_ms;
  8452. packet1.firmware_version = packet_in.firmware_version;
  8453. packet1.focal_length = packet_in.focal_length;
  8454. packet1.sensor_size_h = packet_in.sensor_size_h;
  8455. packet1.sensor_size_v = packet_in.sensor_size_v;
  8456. packet1.flags = packet_in.flags;
  8457. packet1.resolution_h = packet_in.resolution_h;
  8458. packet1.resolution_v = packet_in.resolution_v;
  8459. packet1.cam_definition_version = packet_in.cam_definition_version;
  8460. packet1.lens_id = packet_in.lens_id;
  8461. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  8462. mav_array_memcpy(packet1.vendor_name, packet_in.vendor_name, sizeof(uint8_t)*32);
  8463. mav_array_memcpy(packet1.model_name, packet_in.model_name, sizeof(uint8_t)*32);
  8464. mav_array_memcpy(packet1.cam_definition_uri, packet_in.cam_definition_uri, sizeof(char)*140);
  8465. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8466. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8467. // cope with extensions
  8468. memset(MAVLINK_MSG_ID_CAMERA_INFORMATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_INFORMATION_MIN_LEN);
  8469. }
  8470. #endif
  8471. memset(&packet2, 0, sizeof(packet2));
  8472. mavlink_msg_camera_information_encode(system_id, component_id, &msg, &packet1);
  8473. mavlink_msg_camera_information_decode(&msg, &packet2);
  8474. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8475. memset(&packet2, 0, sizeof(packet2));
  8476. mavlink_msg_camera_information_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.vendor_name , packet1.model_name , packet1.firmware_version , packet1.focal_length , packet1.sensor_size_h , packet1.sensor_size_v , packet1.resolution_h , packet1.resolution_v , packet1.lens_id , packet1.flags , packet1.cam_definition_version , packet1.cam_definition_uri , packet1.gimbal_device_id );
  8477. mavlink_msg_camera_information_decode(&msg, &packet2);
  8478. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8479. memset(&packet2, 0, sizeof(packet2));
  8480. mavlink_msg_camera_information_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.vendor_name , packet1.model_name , packet1.firmware_version , packet1.focal_length , packet1.sensor_size_h , packet1.sensor_size_v , packet1.resolution_h , packet1.resolution_v , packet1.lens_id , packet1.flags , packet1.cam_definition_version , packet1.cam_definition_uri , packet1.gimbal_device_id );
  8481. mavlink_msg_camera_information_decode(&msg, &packet2);
  8482. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8483. memset(&packet2, 0, sizeof(packet2));
  8484. mavlink_msg_to_send_buffer(buffer, &msg);
  8485. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8486. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8487. }
  8488. mavlink_msg_camera_information_decode(last_msg, &packet2);
  8489. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8490. memset(&packet2, 0, sizeof(packet2));
  8491. mavlink_msg_camera_information_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.vendor_name , packet1.model_name , packet1.firmware_version , packet1.focal_length , packet1.sensor_size_h , packet1.sensor_size_v , packet1.resolution_h , packet1.resolution_v , packet1.lens_id , packet1.flags , packet1.cam_definition_version , packet1.cam_definition_uri , packet1.gimbal_device_id );
  8492. mavlink_msg_camera_information_decode(last_msg, &packet2);
  8493. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8494. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8495. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_INFORMATION") != NULL);
  8496. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_INFORMATION) != NULL);
  8497. #endif
  8498. }
  8499. static void mavlink_test_camera_settings(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8500. {
  8501. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8502. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8503. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_SETTINGS >= 256) {
  8504. return;
  8505. }
  8506. #endif
  8507. mavlink_message_t msg;
  8508. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8509. uint16_t i;
  8510. mavlink_camera_settings_t packet_in = {
  8511. 963497464,17,52.0,80.0
  8512. };
  8513. mavlink_camera_settings_t packet1, packet2;
  8514. memset(&packet1, 0, sizeof(packet1));
  8515. packet1.time_boot_ms = packet_in.time_boot_ms;
  8516. packet1.mode_id = packet_in.mode_id;
  8517. packet1.zoomLevel = packet_in.zoomLevel;
  8518. packet1.focusLevel = packet_in.focusLevel;
  8519. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8520. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8521. // cope with extensions
  8522. memset(MAVLINK_MSG_ID_CAMERA_SETTINGS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_SETTINGS_MIN_LEN);
  8523. }
  8524. #endif
  8525. memset(&packet2, 0, sizeof(packet2));
  8526. mavlink_msg_camera_settings_encode(system_id, component_id, &msg, &packet1);
  8527. mavlink_msg_camera_settings_decode(&msg, &packet2);
  8528. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8529. memset(&packet2, 0, sizeof(packet2));
  8530. mavlink_msg_camera_settings_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.mode_id , packet1.zoomLevel , packet1.focusLevel );
  8531. mavlink_msg_camera_settings_decode(&msg, &packet2);
  8532. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8533. memset(&packet2, 0, sizeof(packet2));
  8534. mavlink_msg_camera_settings_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.mode_id , packet1.zoomLevel , packet1.focusLevel );
  8535. mavlink_msg_camera_settings_decode(&msg, &packet2);
  8536. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8537. memset(&packet2, 0, sizeof(packet2));
  8538. mavlink_msg_to_send_buffer(buffer, &msg);
  8539. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8540. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8541. }
  8542. mavlink_msg_camera_settings_decode(last_msg, &packet2);
  8543. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8544. memset(&packet2, 0, sizeof(packet2));
  8545. mavlink_msg_camera_settings_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.mode_id , packet1.zoomLevel , packet1.focusLevel );
  8546. mavlink_msg_camera_settings_decode(last_msg, &packet2);
  8547. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8548. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8549. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_SETTINGS") != NULL);
  8550. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_SETTINGS) != NULL);
  8551. #endif
  8552. }
  8553. static void mavlink_test_storage_information(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8554. {
  8555. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8556. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8557. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_STORAGE_INFORMATION >= 256) {
  8558. return;
  8559. }
  8560. #endif
  8561. mavlink_message_t msg;
  8562. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8563. uint16_t i;
  8564. mavlink_storage_information_t packet_in = {
  8565. 963497464,45.0,73.0,101.0,129.0,157.0,77,144,211,22,"CDEFGHIJKLMNOPQRSTUVWXYZABCDEFG",185
  8566. };
  8567. mavlink_storage_information_t packet1, packet2;
  8568. memset(&packet1, 0, sizeof(packet1));
  8569. packet1.time_boot_ms = packet_in.time_boot_ms;
  8570. packet1.total_capacity = packet_in.total_capacity;
  8571. packet1.used_capacity = packet_in.used_capacity;
  8572. packet1.available_capacity = packet_in.available_capacity;
  8573. packet1.read_speed = packet_in.read_speed;
  8574. packet1.write_speed = packet_in.write_speed;
  8575. packet1.storage_id = packet_in.storage_id;
  8576. packet1.storage_count = packet_in.storage_count;
  8577. packet1.status = packet_in.status;
  8578. packet1.type = packet_in.type;
  8579. packet1.storage_usage = packet_in.storage_usage;
  8580. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*32);
  8581. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8582. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8583. // cope with extensions
  8584. memset(MAVLINK_MSG_ID_STORAGE_INFORMATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_STORAGE_INFORMATION_MIN_LEN);
  8585. }
  8586. #endif
  8587. memset(&packet2, 0, sizeof(packet2));
  8588. mavlink_msg_storage_information_encode(system_id, component_id, &msg, &packet1);
  8589. mavlink_msg_storage_information_decode(&msg, &packet2);
  8590. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8591. memset(&packet2, 0, sizeof(packet2));
  8592. mavlink_msg_storage_information_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.storage_id , packet1.storage_count , packet1.status , packet1.total_capacity , packet1.used_capacity , packet1.available_capacity , packet1.read_speed , packet1.write_speed , packet1.type , packet1.name , packet1.storage_usage );
  8593. mavlink_msg_storage_information_decode(&msg, &packet2);
  8594. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8595. memset(&packet2, 0, sizeof(packet2));
  8596. mavlink_msg_storage_information_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.storage_id , packet1.storage_count , packet1.status , packet1.total_capacity , packet1.used_capacity , packet1.available_capacity , packet1.read_speed , packet1.write_speed , packet1.type , packet1.name , packet1.storage_usage );
  8597. mavlink_msg_storage_information_decode(&msg, &packet2);
  8598. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8599. memset(&packet2, 0, sizeof(packet2));
  8600. mavlink_msg_to_send_buffer(buffer, &msg);
  8601. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8602. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8603. }
  8604. mavlink_msg_storage_information_decode(last_msg, &packet2);
  8605. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8606. memset(&packet2, 0, sizeof(packet2));
  8607. mavlink_msg_storage_information_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.storage_id , packet1.storage_count , packet1.status , packet1.total_capacity , packet1.used_capacity , packet1.available_capacity , packet1.read_speed , packet1.write_speed , packet1.type , packet1.name , packet1.storage_usage );
  8608. mavlink_msg_storage_information_decode(last_msg, &packet2);
  8609. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8610. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8611. MAVLINK_ASSERT(mavlink_get_message_info_by_name("STORAGE_INFORMATION") != NULL);
  8612. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_STORAGE_INFORMATION) != NULL);
  8613. #endif
  8614. }
  8615. static void mavlink_test_camera_capture_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8616. {
  8617. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8618. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8619. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_CAPTURE_STATUS >= 256) {
  8620. return;
  8621. }
  8622. #endif
  8623. mavlink_message_t msg;
  8624. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8625. uint16_t i;
  8626. mavlink_camera_capture_status_t packet_in = {
  8627. 963497464,45.0,963497880,101.0,53,120,963498400
  8628. };
  8629. mavlink_camera_capture_status_t packet1, packet2;
  8630. memset(&packet1, 0, sizeof(packet1));
  8631. packet1.time_boot_ms = packet_in.time_boot_ms;
  8632. packet1.image_interval = packet_in.image_interval;
  8633. packet1.recording_time_ms = packet_in.recording_time_ms;
  8634. packet1.available_capacity = packet_in.available_capacity;
  8635. packet1.image_status = packet_in.image_status;
  8636. packet1.video_status = packet_in.video_status;
  8637. packet1.image_count = packet_in.image_count;
  8638. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8639. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8640. // cope with extensions
  8641. memset(MAVLINK_MSG_ID_CAMERA_CAPTURE_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_CAPTURE_STATUS_MIN_LEN);
  8642. }
  8643. #endif
  8644. memset(&packet2, 0, sizeof(packet2));
  8645. mavlink_msg_camera_capture_status_encode(system_id, component_id, &msg, &packet1);
  8646. mavlink_msg_camera_capture_status_decode(&msg, &packet2);
  8647. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8648. memset(&packet2, 0, sizeof(packet2));
  8649. mavlink_msg_camera_capture_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.image_status , packet1.video_status , packet1.image_interval , packet1.recording_time_ms , packet1.available_capacity , packet1.image_count );
  8650. mavlink_msg_camera_capture_status_decode(&msg, &packet2);
  8651. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8652. memset(&packet2, 0, sizeof(packet2));
  8653. mavlink_msg_camera_capture_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.image_status , packet1.video_status , packet1.image_interval , packet1.recording_time_ms , packet1.available_capacity , packet1.image_count );
  8654. mavlink_msg_camera_capture_status_decode(&msg, &packet2);
  8655. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8656. memset(&packet2, 0, sizeof(packet2));
  8657. mavlink_msg_to_send_buffer(buffer, &msg);
  8658. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8659. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8660. }
  8661. mavlink_msg_camera_capture_status_decode(last_msg, &packet2);
  8662. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8663. memset(&packet2, 0, sizeof(packet2));
  8664. mavlink_msg_camera_capture_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.image_status , packet1.video_status , packet1.image_interval , packet1.recording_time_ms , packet1.available_capacity , packet1.image_count );
  8665. mavlink_msg_camera_capture_status_decode(last_msg, &packet2);
  8666. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8667. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8668. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_CAPTURE_STATUS") != NULL);
  8669. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_CAPTURE_STATUS) != NULL);
  8670. #endif
  8671. }
  8672. static void mavlink_test_camera_image_captured(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8673. {
  8674. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8675. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8676. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_IMAGE_CAPTURED >= 256) {
  8677. return;
  8678. }
  8679. #endif
  8680. mavlink_message_t msg;
  8681. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8682. uint16_t i;
  8683. mavlink_camera_image_captured_t packet_in = {
  8684. 93372036854775807ULL,963497880,963498088,963498296,963498504,963498712,{ 213.0, 214.0, 215.0, 216.0 },963499752,149,216,"YZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST"
  8685. };
  8686. mavlink_camera_image_captured_t packet1, packet2;
  8687. memset(&packet1, 0, sizeof(packet1));
  8688. packet1.time_utc = packet_in.time_utc;
  8689. packet1.time_boot_ms = packet_in.time_boot_ms;
  8690. packet1.lat = packet_in.lat;
  8691. packet1.lon = packet_in.lon;
  8692. packet1.alt = packet_in.alt;
  8693. packet1.relative_alt = packet_in.relative_alt;
  8694. packet1.image_index = packet_in.image_index;
  8695. packet1.camera_id = packet_in.camera_id;
  8696. packet1.capture_result = packet_in.capture_result;
  8697. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  8698. mav_array_memcpy(packet1.file_url, packet_in.file_url, sizeof(char)*205);
  8699. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8700. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8701. // cope with extensions
  8702. memset(MAVLINK_MSG_ID_CAMERA_IMAGE_CAPTURED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_IMAGE_CAPTURED_MIN_LEN);
  8703. }
  8704. #endif
  8705. memset(&packet2, 0, sizeof(packet2));
  8706. mavlink_msg_camera_image_captured_encode(system_id, component_id, &msg, &packet1);
  8707. mavlink_msg_camera_image_captured_decode(&msg, &packet2);
  8708. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8709. memset(&packet2, 0, sizeof(packet2));
  8710. mavlink_msg_camera_image_captured_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.time_utc , packet1.camera_id , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.q , packet1.image_index , packet1.capture_result , packet1.file_url );
  8711. mavlink_msg_camera_image_captured_decode(&msg, &packet2);
  8712. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8713. memset(&packet2, 0, sizeof(packet2));
  8714. mavlink_msg_camera_image_captured_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.time_utc , packet1.camera_id , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.q , packet1.image_index , packet1.capture_result , packet1.file_url );
  8715. mavlink_msg_camera_image_captured_decode(&msg, &packet2);
  8716. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8717. memset(&packet2, 0, sizeof(packet2));
  8718. mavlink_msg_to_send_buffer(buffer, &msg);
  8719. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8720. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8721. }
  8722. mavlink_msg_camera_image_captured_decode(last_msg, &packet2);
  8723. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8724. memset(&packet2, 0, sizeof(packet2));
  8725. mavlink_msg_camera_image_captured_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.time_utc , packet1.camera_id , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.q , packet1.image_index , packet1.capture_result , packet1.file_url );
  8726. mavlink_msg_camera_image_captured_decode(last_msg, &packet2);
  8727. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8728. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8729. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_IMAGE_CAPTURED") != NULL);
  8730. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_IMAGE_CAPTURED) != NULL);
  8731. #endif
  8732. }
  8733. static void mavlink_test_flight_information(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8734. {
  8735. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8736. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8737. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_FLIGHT_INFORMATION >= 256) {
  8738. return;
  8739. }
  8740. #endif
  8741. mavlink_message_t msg;
  8742. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8743. uint16_t i;
  8744. mavlink_flight_information_t packet_in = {
  8745. 93372036854775807ULL,93372036854776311ULL,93372036854776815ULL,963498712,963498920
  8746. };
  8747. mavlink_flight_information_t packet1, packet2;
  8748. memset(&packet1, 0, sizeof(packet1));
  8749. packet1.arming_time_utc = packet_in.arming_time_utc;
  8750. packet1.takeoff_time_utc = packet_in.takeoff_time_utc;
  8751. packet1.flight_uuid = packet_in.flight_uuid;
  8752. packet1.time_boot_ms = packet_in.time_boot_ms;
  8753. packet1.landing_time = packet_in.landing_time;
  8754. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8755. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8756. // cope with extensions
  8757. memset(MAVLINK_MSG_ID_FLIGHT_INFORMATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_FLIGHT_INFORMATION_MIN_LEN);
  8758. }
  8759. #endif
  8760. memset(&packet2, 0, sizeof(packet2));
  8761. mavlink_msg_flight_information_encode(system_id, component_id, &msg, &packet1);
  8762. mavlink_msg_flight_information_decode(&msg, &packet2);
  8763. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8764. memset(&packet2, 0, sizeof(packet2));
  8765. mavlink_msg_flight_information_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.arming_time_utc , packet1.takeoff_time_utc , packet1.flight_uuid , packet1.landing_time );
  8766. mavlink_msg_flight_information_decode(&msg, &packet2);
  8767. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8768. memset(&packet2, 0, sizeof(packet2));
  8769. mavlink_msg_flight_information_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.arming_time_utc , packet1.takeoff_time_utc , packet1.flight_uuid , packet1.landing_time );
  8770. mavlink_msg_flight_information_decode(&msg, &packet2);
  8771. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8772. memset(&packet2, 0, sizeof(packet2));
  8773. mavlink_msg_to_send_buffer(buffer, &msg);
  8774. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8775. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8776. }
  8777. mavlink_msg_flight_information_decode(last_msg, &packet2);
  8778. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8779. memset(&packet2, 0, sizeof(packet2));
  8780. mavlink_msg_flight_information_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.arming_time_utc , packet1.takeoff_time_utc , packet1.flight_uuid , packet1.landing_time );
  8781. mavlink_msg_flight_information_decode(last_msg, &packet2);
  8782. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8783. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8784. MAVLINK_ASSERT(mavlink_get_message_info_by_name("FLIGHT_INFORMATION") != NULL);
  8785. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_FLIGHT_INFORMATION) != NULL);
  8786. #endif
  8787. }
  8788. static void mavlink_test_mount_orientation(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8789. {
  8790. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8791. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8792. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_MOUNT_ORIENTATION >= 256) {
  8793. return;
  8794. }
  8795. #endif
  8796. mavlink_message_t msg;
  8797. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8798. uint16_t i;
  8799. mavlink_mount_orientation_t packet_in = {
  8800. 963497464,45.0,73.0,101.0,129.0
  8801. };
  8802. mavlink_mount_orientation_t packet1, packet2;
  8803. memset(&packet1, 0, sizeof(packet1));
  8804. packet1.time_boot_ms = packet_in.time_boot_ms;
  8805. packet1.roll = packet_in.roll;
  8806. packet1.pitch = packet_in.pitch;
  8807. packet1.yaw = packet_in.yaw;
  8808. packet1.yaw_absolute = packet_in.yaw_absolute;
  8809. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8810. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8811. // cope with extensions
  8812. memset(MAVLINK_MSG_ID_MOUNT_ORIENTATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_MOUNT_ORIENTATION_MIN_LEN);
  8813. }
  8814. #endif
  8815. memset(&packet2, 0, sizeof(packet2));
  8816. mavlink_msg_mount_orientation_encode(system_id, component_id, &msg, &packet1);
  8817. mavlink_msg_mount_orientation_decode(&msg, &packet2);
  8818. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8819. memset(&packet2, 0, sizeof(packet2));
  8820. mavlink_msg_mount_orientation_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.yaw_absolute );
  8821. mavlink_msg_mount_orientation_decode(&msg, &packet2);
  8822. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8823. memset(&packet2, 0, sizeof(packet2));
  8824. mavlink_msg_mount_orientation_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.yaw_absolute );
  8825. mavlink_msg_mount_orientation_decode(&msg, &packet2);
  8826. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8827. memset(&packet2, 0, sizeof(packet2));
  8828. mavlink_msg_to_send_buffer(buffer, &msg);
  8829. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8830. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8831. }
  8832. mavlink_msg_mount_orientation_decode(last_msg, &packet2);
  8833. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8834. memset(&packet2, 0, sizeof(packet2));
  8835. mavlink_msg_mount_orientation_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.roll , packet1.pitch , packet1.yaw , packet1.yaw_absolute );
  8836. mavlink_msg_mount_orientation_decode(last_msg, &packet2);
  8837. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8838. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8839. MAVLINK_ASSERT(mavlink_get_message_info_by_name("MOUNT_ORIENTATION") != NULL);
  8840. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_MOUNT_ORIENTATION) != NULL);
  8841. #endif
  8842. }
  8843. static void mavlink_test_logging_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8844. {
  8845. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8846. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8847. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOGGING_DATA >= 256) {
  8848. return;
  8849. }
  8850. #endif
  8851. mavlink_message_t msg;
  8852. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8853. uint16_t i;
  8854. mavlink_logging_data_t packet_in = {
  8855. 17235,139,206,17,84,{ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 }
  8856. };
  8857. mavlink_logging_data_t packet1, packet2;
  8858. memset(&packet1, 0, sizeof(packet1));
  8859. packet1.sequence = packet_in.sequence;
  8860. packet1.target_system = packet_in.target_system;
  8861. packet1.target_component = packet_in.target_component;
  8862. packet1.length = packet_in.length;
  8863. packet1.first_message_offset = packet_in.first_message_offset;
  8864. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*249);
  8865. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8866. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8867. // cope with extensions
  8868. memset(MAVLINK_MSG_ID_LOGGING_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOGGING_DATA_MIN_LEN);
  8869. }
  8870. #endif
  8871. memset(&packet2, 0, sizeof(packet2));
  8872. mavlink_msg_logging_data_encode(system_id, component_id, &msg, &packet1);
  8873. mavlink_msg_logging_data_decode(&msg, &packet2);
  8874. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8875. memset(&packet2, 0, sizeof(packet2));
  8876. mavlink_msg_logging_data_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.sequence , packet1.length , packet1.first_message_offset , packet1.data );
  8877. mavlink_msg_logging_data_decode(&msg, &packet2);
  8878. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8879. memset(&packet2, 0, sizeof(packet2));
  8880. mavlink_msg_logging_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.sequence , packet1.length , packet1.first_message_offset , packet1.data );
  8881. mavlink_msg_logging_data_decode(&msg, &packet2);
  8882. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8883. memset(&packet2, 0, sizeof(packet2));
  8884. mavlink_msg_to_send_buffer(buffer, &msg);
  8885. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8886. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8887. }
  8888. mavlink_msg_logging_data_decode(last_msg, &packet2);
  8889. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8890. memset(&packet2, 0, sizeof(packet2));
  8891. mavlink_msg_logging_data_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.sequence , packet1.length , packet1.first_message_offset , packet1.data );
  8892. mavlink_msg_logging_data_decode(last_msg, &packet2);
  8893. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8894. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8895. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOGGING_DATA") != NULL);
  8896. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOGGING_DATA) != NULL);
  8897. #endif
  8898. }
  8899. static void mavlink_test_logging_data_acked(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8900. {
  8901. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8902. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8903. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOGGING_DATA_ACKED >= 256) {
  8904. return;
  8905. }
  8906. #endif
  8907. mavlink_message_t msg;
  8908. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8909. uint16_t i;
  8910. mavlink_logging_data_acked_t packet_in = {
  8911. 17235,139,206,17,84,{ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143 }
  8912. };
  8913. mavlink_logging_data_acked_t packet1, packet2;
  8914. memset(&packet1, 0, sizeof(packet1));
  8915. packet1.sequence = packet_in.sequence;
  8916. packet1.target_system = packet_in.target_system;
  8917. packet1.target_component = packet_in.target_component;
  8918. packet1.length = packet_in.length;
  8919. packet1.first_message_offset = packet_in.first_message_offset;
  8920. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*249);
  8921. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8922. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8923. // cope with extensions
  8924. memset(MAVLINK_MSG_ID_LOGGING_DATA_ACKED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOGGING_DATA_ACKED_MIN_LEN);
  8925. }
  8926. #endif
  8927. memset(&packet2, 0, sizeof(packet2));
  8928. mavlink_msg_logging_data_acked_encode(system_id, component_id, &msg, &packet1);
  8929. mavlink_msg_logging_data_acked_decode(&msg, &packet2);
  8930. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8931. memset(&packet2, 0, sizeof(packet2));
  8932. mavlink_msg_logging_data_acked_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.sequence , packet1.length , packet1.first_message_offset , packet1.data );
  8933. mavlink_msg_logging_data_acked_decode(&msg, &packet2);
  8934. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8935. memset(&packet2, 0, sizeof(packet2));
  8936. mavlink_msg_logging_data_acked_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.sequence , packet1.length , packet1.first_message_offset , packet1.data );
  8937. mavlink_msg_logging_data_acked_decode(&msg, &packet2);
  8938. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8939. memset(&packet2, 0, sizeof(packet2));
  8940. mavlink_msg_to_send_buffer(buffer, &msg);
  8941. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8942. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8943. }
  8944. mavlink_msg_logging_data_acked_decode(last_msg, &packet2);
  8945. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8946. memset(&packet2, 0, sizeof(packet2));
  8947. mavlink_msg_logging_data_acked_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.sequence , packet1.length , packet1.first_message_offset , packet1.data );
  8948. mavlink_msg_logging_data_acked_decode(last_msg, &packet2);
  8949. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8950. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  8951. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOGGING_DATA_ACKED") != NULL);
  8952. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOGGING_DATA_ACKED) != NULL);
  8953. #endif
  8954. }
  8955. static void mavlink_test_logging_ack(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  8956. {
  8957. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8958. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  8959. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_LOGGING_ACK >= 256) {
  8960. return;
  8961. }
  8962. #endif
  8963. mavlink_message_t msg;
  8964. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  8965. uint16_t i;
  8966. mavlink_logging_ack_t packet_in = {
  8967. 17235,139,206
  8968. };
  8969. mavlink_logging_ack_t packet1, packet2;
  8970. memset(&packet1, 0, sizeof(packet1));
  8971. packet1.sequence = packet_in.sequence;
  8972. packet1.target_system = packet_in.target_system;
  8973. packet1.target_component = packet_in.target_component;
  8974. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  8975. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  8976. // cope with extensions
  8977. memset(MAVLINK_MSG_ID_LOGGING_ACK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_LOGGING_ACK_MIN_LEN);
  8978. }
  8979. #endif
  8980. memset(&packet2, 0, sizeof(packet2));
  8981. mavlink_msg_logging_ack_encode(system_id, component_id, &msg, &packet1);
  8982. mavlink_msg_logging_ack_decode(&msg, &packet2);
  8983. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8984. memset(&packet2, 0, sizeof(packet2));
  8985. mavlink_msg_logging_ack_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.sequence );
  8986. mavlink_msg_logging_ack_decode(&msg, &packet2);
  8987. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8988. memset(&packet2, 0, sizeof(packet2));
  8989. mavlink_msg_logging_ack_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.sequence );
  8990. mavlink_msg_logging_ack_decode(&msg, &packet2);
  8991. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8992. memset(&packet2, 0, sizeof(packet2));
  8993. mavlink_msg_to_send_buffer(buffer, &msg);
  8994. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  8995. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  8996. }
  8997. mavlink_msg_logging_ack_decode(last_msg, &packet2);
  8998. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  8999. memset(&packet2, 0, sizeof(packet2));
  9000. mavlink_msg_logging_ack_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.sequence );
  9001. mavlink_msg_logging_ack_decode(last_msg, &packet2);
  9002. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9003. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9004. MAVLINK_ASSERT(mavlink_get_message_info_by_name("LOGGING_ACK") != NULL);
  9005. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_LOGGING_ACK) != NULL);
  9006. #endif
  9007. }
  9008. static void mavlink_test_video_stream_information(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9009. {
  9010. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9011. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9012. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VIDEO_STREAM_INFORMATION >= 256) {
  9013. return;
  9014. }
  9015. #endif
  9016. mavlink_message_t msg;
  9017. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9018. uint16_t i;
  9019. mavlink_video_stream_information_t packet_in = {
  9020. 17.0,963497672,17651,17755,17859,17963,18067,187,254,65,"VWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ","BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD"
  9021. };
  9022. mavlink_video_stream_information_t packet1, packet2;
  9023. memset(&packet1, 0, sizeof(packet1));
  9024. packet1.framerate = packet_in.framerate;
  9025. packet1.bitrate = packet_in.bitrate;
  9026. packet1.flags = packet_in.flags;
  9027. packet1.resolution_h = packet_in.resolution_h;
  9028. packet1.resolution_v = packet_in.resolution_v;
  9029. packet1.rotation = packet_in.rotation;
  9030. packet1.hfov = packet_in.hfov;
  9031. packet1.stream_id = packet_in.stream_id;
  9032. packet1.count = packet_in.count;
  9033. packet1.type = packet_in.type;
  9034. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*32);
  9035. mav_array_memcpy(packet1.uri, packet_in.uri, sizeof(char)*160);
  9036. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9037. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9038. // cope with extensions
  9039. memset(MAVLINK_MSG_ID_VIDEO_STREAM_INFORMATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VIDEO_STREAM_INFORMATION_MIN_LEN);
  9040. }
  9041. #endif
  9042. memset(&packet2, 0, sizeof(packet2));
  9043. mavlink_msg_video_stream_information_encode(system_id, component_id, &msg, &packet1);
  9044. mavlink_msg_video_stream_information_decode(&msg, &packet2);
  9045. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9046. memset(&packet2, 0, sizeof(packet2));
  9047. mavlink_msg_video_stream_information_pack(system_id, component_id, &msg , packet1.stream_id , packet1.count , packet1.type , packet1.flags , packet1.framerate , packet1.resolution_h , packet1.resolution_v , packet1.bitrate , packet1.rotation , packet1.hfov , packet1.name , packet1.uri );
  9048. mavlink_msg_video_stream_information_decode(&msg, &packet2);
  9049. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9050. memset(&packet2, 0, sizeof(packet2));
  9051. mavlink_msg_video_stream_information_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.stream_id , packet1.count , packet1.type , packet1.flags , packet1.framerate , packet1.resolution_h , packet1.resolution_v , packet1.bitrate , packet1.rotation , packet1.hfov , packet1.name , packet1.uri );
  9052. mavlink_msg_video_stream_information_decode(&msg, &packet2);
  9053. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9054. memset(&packet2, 0, sizeof(packet2));
  9055. mavlink_msg_to_send_buffer(buffer, &msg);
  9056. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9057. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9058. }
  9059. mavlink_msg_video_stream_information_decode(last_msg, &packet2);
  9060. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9061. memset(&packet2, 0, sizeof(packet2));
  9062. mavlink_msg_video_stream_information_send(MAVLINK_COMM_1 , packet1.stream_id , packet1.count , packet1.type , packet1.flags , packet1.framerate , packet1.resolution_h , packet1.resolution_v , packet1.bitrate , packet1.rotation , packet1.hfov , packet1.name , packet1.uri );
  9063. mavlink_msg_video_stream_information_decode(last_msg, &packet2);
  9064. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9065. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9066. MAVLINK_ASSERT(mavlink_get_message_info_by_name("VIDEO_STREAM_INFORMATION") != NULL);
  9067. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VIDEO_STREAM_INFORMATION) != NULL);
  9068. #endif
  9069. }
  9070. static void mavlink_test_video_stream_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9071. {
  9072. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9073. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9074. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VIDEO_STREAM_STATUS >= 256) {
  9075. return;
  9076. }
  9077. #endif
  9078. mavlink_message_t msg;
  9079. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9080. uint16_t i;
  9081. mavlink_video_stream_status_t packet_in = {
  9082. 17.0,963497672,17651,17755,17859,17963,18067,187
  9083. };
  9084. mavlink_video_stream_status_t packet1, packet2;
  9085. memset(&packet1, 0, sizeof(packet1));
  9086. packet1.framerate = packet_in.framerate;
  9087. packet1.bitrate = packet_in.bitrate;
  9088. packet1.flags = packet_in.flags;
  9089. packet1.resolution_h = packet_in.resolution_h;
  9090. packet1.resolution_v = packet_in.resolution_v;
  9091. packet1.rotation = packet_in.rotation;
  9092. packet1.hfov = packet_in.hfov;
  9093. packet1.stream_id = packet_in.stream_id;
  9094. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9095. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9096. // cope with extensions
  9097. memset(MAVLINK_MSG_ID_VIDEO_STREAM_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VIDEO_STREAM_STATUS_MIN_LEN);
  9098. }
  9099. #endif
  9100. memset(&packet2, 0, sizeof(packet2));
  9101. mavlink_msg_video_stream_status_encode(system_id, component_id, &msg, &packet1);
  9102. mavlink_msg_video_stream_status_decode(&msg, &packet2);
  9103. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9104. memset(&packet2, 0, sizeof(packet2));
  9105. mavlink_msg_video_stream_status_pack(system_id, component_id, &msg , packet1.stream_id , packet1.flags , packet1.framerate , packet1.resolution_h , packet1.resolution_v , packet1.bitrate , packet1.rotation , packet1.hfov );
  9106. mavlink_msg_video_stream_status_decode(&msg, &packet2);
  9107. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9108. memset(&packet2, 0, sizeof(packet2));
  9109. mavlink_msg_video_stream_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.stream_id , packet1.flags , packet1.framerate , packet1.resolution_h , packet1.resolution_v , packet1.bitrate , packet1.rotation , packet1.hfov );
  9110. mavlink_msg_video_stream_status_decode(&msg, &packet2);
  9111. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9112. memset(&packet2, 0, sizeof(packet2));
  9113. mavlink_msg_to_send_buffer(buffer, &msg);
  9114. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9115. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9116. }
  9117. mavlink_msg_video_stream_status_decode(last_msg, &packet2);
  9118. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9119. memset(&packet2, 0, sizeof(packet2));
  9120. mavlink_msg_video_stream_status_send(MAVLINK_COMM_1 , packet1.stream_id , packet1.flags , packet1.framerate , packet1.resolution_h , packet1.resolution_v , packet1.bitrate , packet1.rotation , packet1.hfov );
  9121. mavlink_msg_video_stream_status_decode(last_msg, &packet2);
  9122. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9123. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9124. MAVLINK_ASSERT(mavlink_get_message_info_by_name("VIDEO_STREAM_STATUS") != NULL);
  9125. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VIDEO_STREAM_STATUS) != NULL);
  9126. #endif
  9127. }
  9128. static void mavlink_test_camera_fov_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9129. {
  9130. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9131. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9132. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_FOV_STATUS >= 256) {
  9133. return;
  9134. }
  9135. #endif
  9136. mavlink_message_t msg;
  9137. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9138. uint16_t i;
  9139. mavlink_camera_fov_status_t packet_in = {
  9140. 963497464,963497672,963497880,963498088,963498296,963498504,963498712,{ 213.0, 214.0, 215.0, 216.0 },325.0,353.0
  9141. };
  9142. mavlink_camera_fov_status_t packet1, packet2;
  9143. memset(&packet1, 0, sizeof(packet1));
  9144. packet1.time_boot_ms = packet_in.time_boot_ms;
  9145. packet1.lat_camera = packet_in.lat_camera;
  9146. packet1.lon_camera = packet_in.lon_camera;
  9147. packet1.alt_camera = packet_in.alt_camera;
  9148. packet1.lat_image = packet_in.lat_image;
  9149. packet1.lon_image = packet_in.lon_image;
  9150. packet1.alt_image = packet_in.alt_image;
  9151. packet1.hfov = packet_in.hfov;
  9152. packet1.vfov = packet_in.vfov;
  9153. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  9154. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9155. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9156. // cope with extensions
  9157. memset(MAVLINK_MSG_ID_CAMERA_FOV_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_FOV_STATUS_MIN_LEN);
  9158. }
  9159. #endif
  9160. memset(&packet2, 0, sizeof(packet2));
  9161. mavlink_msg_camera_fov_status_encode(system_id, component_id, &msg, &packet1);
  9162. mavlink_msg_camera_fov_status_decode(&msg, &packet2);
  9163. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9164. memset(&packet2, 0, sizeof(packet2));
  9165. mavlink_msg_camera_fov_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.lat_camera , packet1.lon_camera , packet1.alt_camera , packet1.lat_image , packet1.lon_image , packet1.alt_image , packet1.q , packet1.hfov , packet1.vfov );
  9166. mavlink_msg_camera_fov_status_decode(&msg, &packet2);
  9167. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9168. memset(&packet2, 0, sizeof(packet2));
  9169. mavlink_msg_camera_fov_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.lat_camera , packet1.lon_camera , packet1.alt_camera , packet1.lat_image , packet1.lon_image , packet1.alt_image , packet1.q , packet1.hfov , packet1.vfov );
  9170. mavlink_msg_camera_fov_status_decode(&msg, &packet2);
  9171. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9172. memset(&packet2, 0, sizeof(packet2));
  9173. mavlink_msg_to_send_buffer(buffer, &msg);
  9174. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9175. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9176. }
  9177. mavlink_msg_camera_fov_status_decode(last_msg, &packet2);
  9178. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9179. memset(&packet2, 0, sizeof(packet2));
  9180. mavlink_msg_camera_fov_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.lat_camera , packet1.lon_camera , packet1.alt_camera , packet1.lat_image , packet1.lon_image , packet1.alt_image , packet1.q , packet1.hfov , packet1.vfov );
  9181. mavlink_msg_camera_fov_status_decode(last_msg, &packet2);
  9182. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9183. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9184. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_FOV_STATUS") != NULL);
  9185. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_FOV_STATUS) != NULL);
  9186. #endif
  9187. }
  9188. static void mavlink_test_camera_tracking_image_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9189. {
  9190. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9191. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9192. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_TRACKING_IMAGE_STATUS >= 256) {
  9193. return;
  9194. }
  9195. #endif
  9196. mavlink_message_t msg;
  9197. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9198. uint16_t i;
  9199. mavlink_camera_tracking_image_status_t packet_in = {
  9200. 17.0,45.0,73.0,101.0,129.0,157.0,185.0,89,156,223
  9201. };
  9202. mavlink_camera_tracking_image_status_t packet1, packet2;
  9203. memset(&packet1, 0, sizeof(packet1));
  9204. packet1.point_x = packet_in.point_x;
  9205. packet1.point_y = packet_in.point_y;
  9206. packet1.radius = packet_in.radius;
  9207. packet1.rec_top_x = packet_in.rec_top_x;
  9208. packet1.rec_top_y = packet_in.rec_top_y;
  9209. packet1.rec_bottom_x = packet_in.rec_bottom_x;
  9210. packet1.rec_bottom_y = packet_in.rec_bottom_y;
  9211. packet1.tracking_status = packet_in.tracking_status;
  9212. packet1.tracking_mode = packet_in.tracking_mode;
  9213. packet1.target_data = packet_in.target_data;
  9214. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9215. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9216. // cope with extensions
  9217. memset(MAVLINK_MSG_ID_CAMERA_TRACKING_IMAGE_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_TRACKING_IMAGE_STATUS_MIN_LEN);
  9218. }
  9219. #endif
  9220. memset(&packet2, 0, sizeof(packet2));
  9221. mavlink_msg_camera_tracking_image_status_encode(system_id, component_id, &msg, &packet1);
  9222. mavlink_msg_camera_tracking_image_status_decode(&msg, &packet2);
  9223. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9224. memset(&packet2, 0, sizeof(packet2));
  9225. mavlink_msg_camera_tracking_image_status_pack(system_id, component_id, &msg , packet1.tracking_status , packet1.tracking_mode , packet1.target_data , packet1.point_x , packet1.point_y , packet1.radius , packet1.rec_top_x , packet1.rec_top_y , packet1.rec_bottom_x , packet1.rec_bottom_y );
  9226. mavlink_msg_camera_tracking_image_status_decode(&msg, &packet2);
  9227. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9228. memset(&packet2, 0, sizeof(packet2));
  9229. mavlink_msg_camera_tracking_image_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.tracking_status , packet1.tracking_mode , packet1.target_data , packet1.point_x , packet1.point_y , packet1.radius , packet1.rec_top_x , packet1.rec_top_y , packet1.rec_bottom_x , packet1.rec_bottom_y );
  9230. mavlink_msg_camera_tracking_image_status_decode(&msg, &packet2);
  9231. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9232. memset(&packet2, 0, sizeof(packet2));
  9233. mavlink_msg_to_send_buffer(buffer, &msg);
  9234. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9235. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9236. }
  9237. mavlink_msg_camera_tracking_image_status_decode(last_msg, &packet2);
  9238. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9239. memset(&packet2, 0, sizeof(packet2));
  9240. mavlink_msg_camera_tracking_image_status_send(MAVLINK_COMM_1 , packet1.tracking_status , packet1.tracking_mode , packet1.target_data , packet1.point_x , packet1.point_y , packet1.radius , packet1.rec_top_x , packet1.rec_top_y , packet1.rec_bottom_x , packet1.rec_bottom_y );
  9241. mavlink_msg_camera_tracking_image_status_decode(last_msg, &packet2);
  9242. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9243. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9244. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_TRACKING_IMAGE_STATUS") != NULL);
  9245. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_TRACKING_IMAGE_STATUS) != NULL);
  9246. #endif
  9247. }
  9248. static void mavlink_test_camera_tracking_geo_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9249. {
  9250. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9251. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9252. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAMERA_TRACKING_GEO_STATUS >= 256) {
  9253. return;
  9254. }
  9255. #endif
  9256. mavlink_message_t msg;
  9257. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9258. uint16_t i;
  9259. mavlink_camera_tracking_geo_status_t packet_in = {
  9260. 963497464,963497672,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,149
  9261. };
  9262. mavlink_camera_tracking_geo_status_t packet1, packet2;
  9263. memset(&packet1, 0, sizeof(packet1));
  9264. packet1.lat = packet_in.lat;
  9265. packet1.lon = packet_in.lon;
  9266. packet1.alt = packet_in.alt;
  9267. packet1.h_acc = packet_in.h_acc;
  9268. packet1.v_acc = packet_in.v_acc;
  9269. packet1.vel_n = packet_in.vel_n;
  9270. packet1.vel_e = packet_in.vel_e;
  9271. packet1.vel_d = packet_in.vel_d;
  9272. packet1.vel_acc = packet_in.vel_acc;
  9273. packet1.dist = packet_in.dist;
  9274. packet1.hdg = packet_in.hdg;
  9275. packet1.hdg_acc = packet_in.hdg_acc;
  9276. packet1.tracking_status = packet_in.tracking_status;
  9277. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9278. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9279. // cope with extensions
  9280. memset(MAVLINK_MSG_ID_CAMERA_TRACKING_GEO_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAMERA_TRACKING_GEO_STATUS_MIN_LEN);
  9281. }
  9282. #endif
  9283. memset(&packet2, 0, sizeof(packet2));
  9284. mavlink_msg_camera_tracking_geo_status_encode(system_id, component_id, &msg, &packet1);
  9285. mavlink_msg_camera_tracking_geo_status_decode(&msg, &packet2);
  9286. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9287. memset(&packet2, 0, sizeof(packet2));
  9288. mavlink_msg_camera_tracking_geo_status_pack(system_id, component_id, &msg , packet1.tracking_status , packet1.lat , packet1.lon , packet1.alt , packet1.h_acc , packet1.v_acc , packet1.vel_n , packet1.vel_e , packet1.vel_d , packet1.vel_acc , packet1.dist , packet1.hdg , packet1.hdg_acc );
  9289. mavlink_msg_camera_tracking_geo_status_decode(&msg, &packet2);
  9290. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9291. memset(&packet2, 0, sizeof(packet2));
  9292. mavlink_msg_camera_tracking_geo_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.tracking_status , packet1.lat , packet1.lon , packet1.alt , packet1.h_acc , packet1.v_acc , packet1.vel_n , packet1.vel_e , packet1.vel_d , packet1.vel_acc , packet1.dist , packet1.hdg , packet1.hdg_acc );
  9293. mavlink_msg_camera_tracking_geo_status_decode(&msg, &packet2);
  9294. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9295. memset(&packet2, 0, sizeof(packet2));
  9296. mavlink_msg_to_send_buffer(buffer, &msg);
  9297. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9298. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9299. }
  9300. mavlink_msg_camera_tracking_geo_status_decode(last_msg, &packet2);
  9301. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9302. memset(&packet2, 0, sizeof(packet2));
  9303. mavlink_msg_camera_tracking_geo_status_send(MAVLINK_COMM_1 , packet1.tracking_status , packet1.lat , packet1.lon , packet1.alt , packet1.h_acc , packet1.v_acc , packet1.vel_n , packet1.vel_e , packet1.vel_d , packet1.vel_acc , packet1.dist , packet1.hdg , packet1.hdg_acc );
  9304. mavlink_msg_camera_tracking_geo_status_decode(last_msg, &packet2);
  9305. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9306. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9307. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAMERA_TRACKING_GEO_STATUS") != NULL);
  9308. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAMERA_TRACKING_GEO_STATUS) != NULL);
  9309. #endif
  9310. }
  9311. static void mavlink_test_gimbal_manager_information(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9312. {
  9313. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9314. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9315. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_MANAGER_INFORMATION >= 256) {
  9316. return;
  9317. }
  9318. #endif
  9319. mavlink_message_t msg;
  9320. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9321. uint16_t i;
  9322. mavlink_gimbal_manager_information_t packet_in = {
  9323. 963497464,963497672,73.0,101.0,129.0,157.0,185.0,213.0,101
  9324. };
  9325. mavlink_gimbal_manager_information_t packet1, packet2;
  9326. memset(&packet1, 0, sizeof(packet1));
  9327. packet1.time_boot_ms = packet_in.time_boot_ms;
  9328. packet1.cap_flags = packet_in.cap_flags;
  9329. packet1.roll_min = packet_in.roll_min;
  9330. packet1.roll_max = packet_in.roll_max;
  9331. packet1.pitch_min = packet_in.pitch_min;
  9332. packet1.pitch_max = packet_in.pitch_max;
  9333. packet1.yaw_min = packet_in.yaw_min;
  9334. packet1.yaw_max = packet_in.yaw_max;
  9335. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  9336. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9337. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9338. // cope with extensions
  9339. memset(MAVLINK_MSG_ID_GIMBAL_MANAGER_INFORMATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_MANAGER_INFORMATION_MIN_LEN);
  9340. }
  9341. #endif
  9342. memset(&packet2, 0, sizeof(packet2));
  9343. mavlink_msg_gimbal_manager_information_encode(system_id, component_id, &msg, &packet1);
  9344. mavlink_msg_gimbal_manager_information_decode(&msg, &packet2);
  9345. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9346. memset(&packet2, 0, sizeof(packet2));
  9347. mavlink_msg_gimbal_manager_information_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.cap_flags , packet1.gimbal_device_id , packet1.roll_min , packet1.roll_max , packet1.pitch_min , packet1.pitch_max , packet1.yaw_min , packet1.yaw_max );
  9348. mavlink_msg_gimbal_manager_information_decode(&msg, &packet2);
  9349. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9350. memset(&packet2, 0, sizeof(packet2));
  9351. mavlink_msg_gimbal_manager_information_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.cap_flags , packet1.gimbal_device_id , packet1.roll_min , packet1.roll_max , packet1.pitch_min , packet1.pitch_max , packet1.yaw_min , packet1.yaw_max );
  9352. mavlink_msg_gimbal_manager_information_decode(&msg, &packet2);
  9353. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9354. memset(&packet2, 0, sizeof(packet2));
  9355. mavlink_msg_to_send_buffer(buffer, &msg);
  9356. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9357. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9358. }
  9359. mavlink_msg_gimbal_manager_information_decode(last_msg, &packet2);
  9360. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9361. memset(&packet2, 0, sizeof(packet2));
  9362. mavlink_msg_gimbal_manager_information_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.cap_flags , packet1.gimbal_device_id , packet1.roll_min , packet1.roll_max , packet1.pitch_min , packet1.pitch_max , packet1.yaw_min , packet1.yaw_max );
  9363. mavlink_msg_gimbal_manager_information_decode(last_msg, &packet2);
  9364. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9365. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9366. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_MANAGER_INFORMATION") != NULL);
  9367. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_MANAGER_INFORMATION) != NULL);
  9368. #endif
  9369. }
  9370. static void mavlink_test_gimbal_manager_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9371. {
  9372. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9373. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9374. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_MANAGER_STATUS >= 256) {
  9375. return;
  9376. }
  9377. #endif
  9378. mavlink_message_t msg;
  9379. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9380. uint16_t i;
  9381. mavlink_gimbal_manager_status_t packet_in = {
  9382. 963497464,963497672,29,96,163,230,41
  9383. };
  9384. mavlink_gimbal_manager_status_t packet1, packet2;
  9385. memset(&packet1, 0, sizeof(packet1));
  9386. packet1.time_boot_ms = packet_in.time_boot_ms;
  9387. packet1.flags = packet_in.flags;
  9388. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  9389. packet1.primary_control_sysid = packet_in.primary_control_sysid;
  9390. packet1.primary_control_compid = packet_in.primary_control_compid;
  9391. packet1.secondary_control_sysid = packet_in.secondary_control_sysid;
  9392. packet1.secondary_control_compid = packet_in.secondary_control_compid;
  9393. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9394. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9395. // cope with extensions
  9396. memset(MAVLINK_MSG_ID_GIMBAL_MANAGER_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_MANAGER_STATUS_MIN_LEN);
  9397. }
  9398. #endif
  9399. memset(&packet2, 0, sizeof(packet2));
  9400. mavlink_msg_gimbal_manager_status_encode(system_id, component_id, &msg, &packet1);
  9401. mavlink_msg_gimbal_manager_status_decode(&msg, &packet2);
  9402. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9403. memset(&packet2, 0, sizeof(packet2));
  9404. mavlink_msg_gimbal_manager_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.flags , packet1.gimbal_device_id , packet1.primary_control_sysid , packet1.primary_control_compid , packet1.secondary_control_sysid , packet1.secondary_control_compid );
  9405. mavlink_msg_gimbal_manager_status_decode(&msg, &packet2);
  9406. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9407. memset(&packet2, 0, sizeof(packet2));
  9408. mavlink_msg_gimbal_manager_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.flags , packet1.gimbal_device_id , packet1.primary_control_sysid , packet1.primary_control_compid , packet1.secondary_control_sysid , packet1.secondary_control_compid );
  9409. mavlink_msg_gimbal_manager_status_decode(&msg, &packet2);
  9410. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9411. memset(&packet2, 0, sizeof(packet2));
  9412. mavlink_msg_to_send_buffer(buffer, &msg);
  9413. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9414. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9415. }
  9416. mavlink_msg_gimbal_manager_status_decode(last_msg, &packet2);
  9417. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9418. memset(&packet2, 0, sizeof(packet2));
  9419. mavlink_msg_gimbal_manager_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.flags , packet1.gimbal_device_id , packet1.primary_control_sysid , packet1.primary_control_compid , packet1.secondary_control_sysid , packet1.secondary_control_compid );
  9420. mavlink_msg_gimbal_manager_status_decode(last_msg, &packet2);
  9421. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9422. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9423. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_MANAGER_STATUS") != NULL);
  9424. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_MANAGER_STATUS) != NULL);
  9425. #endif
  9426. }
  9427. static void mavlink_test_gimbal_manager_set_attitude(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9428. {
  9429. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9430. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9431. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_ATTITUDE >= 256) {
  9432. return;
  9433. }
  9434. #endif
  9435. mavlink_message_t msg;
  9436. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9437. uint16_t i;
  9438. mavlink_gimbal_manager_set_attitude_t packet_in = {
  9439. 963497464,{ 45.0, 46.0, 47.0, 48.0 },157.0,185.0,213.0,101,168,235
  9440. };
  9441. mavlink_gimbal_manager_set_attitude_t packet1, packet2;
  9442. memset(&packet1, 0, sizeof(packet1));
  9443. packet1.flags = packet_in.flags;
  9444. packet1.angular_velocity_x = packet_in.angular_velocity_x;
  9445. packet1.angular_velocity_y = packet_in.angular_velocity_y;
  9446. packet1.angular_velocity_z = packet_in.angular_velocity_z;
  9447. packet1.target_system = packet_in.target_system;
  9448. packet1.target_component = packet_in.target_component;
  9449. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  9450. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  9451. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9452. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9453. // cope with extensions
  9454. memset(MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_ATTITUDE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_ATTITUDE_MIN_LEN);
  9455. }
  9456. #endif
  9457. memset(&packet2, 0, sizeof(packet2));
  9458. mavlink_msg_gimbal_manager_set_attitude_encode(system_id, component_id, &msg, &packet1);
  9459. mavlink_msg_gimbal_manager_set_attitude_decode(&msg, &packet2);
  9460. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9461. memset(&packet2, 0, sizeof(packet2));
  9462. mavlink_msg_gimbal_manager_set_attitude_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z );
  9463. mavlink_msg_gimbal_manager_set_attitude_decode(&msg, &packet2);
  9464. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9465. memset(&packet2, 0, sizeof(packet2));
  9466. mavlink_msg_gimbal_manager_set_attitude_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z );
  9467. mavlink_msg_gimbal_manager_set_attitude_decode(&msg, &packet2);
  9468. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9469. memset(&packet2, 0, sizeof(packet2));
  9470. mavlink_msg_to_send_buffer(buffer, &msg);
  9471. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9472. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9473. }
  9474. mavlink_msg_gimbal_manager_set_attitude_decode(last_msg, &packet2);
  9475. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9476. memset(&packet2, 0, sizeof(packet2));
  9477. mavlink_msg_gimbal_manager_set_attitude_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z );
  9478. mavlink_msg_gimbal_manager_set_attitude_decode(last_msg, &packet2);
  9479. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9480. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9481. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_MANAGER_SET_ATTITUDE") != NULL);
  9482. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_ATTITUDE) != NULL);
  9483. #endif
  9484. }
  9485. static void mavlink_test_gimbal_device_information(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9486. {
  9487. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9488. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9489. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_DEVICE_INFORMATION >= 256) {
  9490. return;
  9491. }
  9492. #endif
  9493. mavlink_message_t msg;
  9494. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9495. uint16_t i;
  9496. mavlink_gimbal_device_information_t packet_in = {
  9497. 93372036854775807ULL,963497880,963498088,963498296,157.0,185.0,213.0,241.0,269.0,297.0,19523,19627,"WXYZABCDEFGHIJKLMNOPQRSTUVWXYZA","CDEFGHIJKLMNOPQRSTUVWXYZABCDEFG","IJKLMNOPQRSTUVWXYZABCDEFGHIJKLM",181
  9498. };
  9499. mavlink_gimbal_device_information_t packet1, packet2;
  9500. memset(&packet1, 0, sizeof(packet1));
  9501. packet1.uid = packet_in.uid;
  9502. packet1.time_boot_ms = packet_in.time_boot_ms;
  9503. packet1.firmware_version = packet_in.firmware_version;
  9504. packet1.hardware_version = packet_in.hardware_version;
  9505. packet1.roll_min = packet_in.roll_min;
  9506. packet1.roll_max = packet_in.roll_max;
  9507. packet1.pitch_min = packet_in.pitch_min;
  9508. packet1.pitch_max = packet_in.pitch_max;
  9509. packet1.yaw_min = packet_in.yaw_min;
  9510. packet1.yaw_max = packet_in.yaw_max;
  9511. packet1.cap_flags = packet_in.cap_flags;
  9512. packet1.custom_cap_flags = packet_in.custom_cap_flags;
  9513. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  9514. mav_array_memcpy(packet1.vendor_name, packet_in.vendor_name, sizeof(char)*32);
  9515. mav_array_memcpy(packet1.model_name, packet_in.model_name, sizeof(char)*32);
  9516. mav_array_memcpy(packet1.custom_name, packet_in.custom_name, sizeof(char)*32);
  9517. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9518. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9519. // cope with extensions
  9520. memset(MAVLINK_MSG_ID_GIMBAL_DEVICE_INFORMATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_DEVICE_INFORMATION_MIN_LEN);
  9521. }
  9522. #endif
  9523. memset(&packet2, 0, sizeof(packet2));
  9524. mavlink_msg_gimbal_device_information_encode(system_id, component_id, &msg, &packet1);
  9525. mavlink_msg_gimbal_device_information_decode(&msg, &packet2);
  9526. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9527. memset(&packet2, 0, sizeof(packet2));
  9528. mavlink_msg_gimbal_device_information_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.vendor_name , packet1.model_name , packet1.custom_name , packet1.firmware_version , packet1.hardware_version , packet1.uid , packet1.cap_flags , packet1.custom_cap_flags , packet1.roll_min , packet1.roll_max , packet1.pitch_min , packet1.pitch_max , packet1.yaw_min , packet1.yaw_max , packet1.gimbal_device_id );
  9529. mavlink_msg_gimbal_device_information_decode(&msg, &packet2);
  9530. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9531. memset(&packet2, 0, sizeof(packet2));
  9532. mavlink_msg_gimbal_device_information_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.vendor_name , packet1.model_name , packet1.custom_name , packet1.firmware_version , packet1.hardware_version , packet1.uid , packet1.cap_flags , packet1.custom_cap_flags , packet1.roll_min , packet1.roll_max , packet1.pitch_min , packet1.pitch_max , packet1.yaw_min , packet1.yaw_max , packet1.gimbal_device_id );
  9533. mavlink_msg_gimbal_device_information_decode(&msg, &packet2);
  9534. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9535. memset(&packet2, 0, sizeof(packet2));
  9536. mavlink_msg_to_send_buffer(buffer, &msg);
  9537. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9538. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9539. }
  9540. mavlink_msg_gimbal_device_information_decode(last_msg, &packet2);
  9541. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9542. memset(&packet2, 0, sizeof(packet2));
  9543. mavlink_msg_gimbal_device_information_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.vendor_name , packet1.model_name , packet1.custom_name , packet1.firmware_version , packet1.hardware_version , packet1.uid , packet1.cap_flags , packet1.custom_cap_flags , packet1.roll_min , packet1.roll_max , packet1.pitch_min , packet1.pitch_max , packet1.yaw_min , packet1.yaw_max , packet1.gimbal_device_id );
  9544. mavlink_msg_gimbal_device_information_decode(last_msg, &packet2);
  9545. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9546. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9547. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_DEVICE_INFORMATION") != NULL);
  9548. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_DEVICE_INFORMATION) != NULL);
  9549. #endif
  9550. }
  9551. static void mavlink_test_gimbal_device_set_attitude(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9552. {
  9553. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9554. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9555. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_DEVICE_SET_ATTITUDE >= 256) {
  9556. return;
  9557. }
  9558. #endif
  9559. mavlink_message_t msg;
  9560. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9561. uint16_t i;
  9562. mavlink_gimbal_device_set_attitude_t packet_in = {
  9563. { 17.0, 18.0, 19.0, 20.0 },129.0,157.0,185.0,18691,223,34
  9564. };
  9565. mavlink_gimbal_device_set_attitude_t packet1, packet2;
  9566. memset(&packet1, 0, sizeof(packet1));
  9567. packet1.angular_velocity_x = packet_in.angular_velocity_x;
  9568. packet1.angular_velocity_y = packet_in.angular_velocity_y;
  9569. packet1.angular_velocity_z = packet_in.angular_velocity_z;
  9570. packet1.flags = packet_in.flags;
  9571. packet1.target_system = packet_in.target_system;
  9572. packet1.target_component = packet_in.target_component;
  9573. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  9574. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9575. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9576. // cope with extensions
  9577. memset(MAVLINK_MSG_ID_GIMBAL_DEVICE_SET_ATTITUDE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_DEVICE_SET_ATTITUDE_MIN_LEN);
  9578. }
  9579. #endif
  9580. memset(&packet2, 0, sizeof(packet2));
  9581. mavlink_msg_gimbal_device_set_attitude_encode(system_id, component_id, &msg, &packet1);
  9582. mavlink_msg_gimbal_device_set_attitude_decode(&msg, &packet2);
  9583. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9584. memset(&packet2, 0, sizeof(packet2));
  9585. mavlink_msg_gimbal_device_set_attitude_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z );
  9586. mavlink_msg_gimbal_device_set_attitude_decode(&msg, &packet2);
  9587. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9588. memset(&packet2, 0, sizeof(packet2));
  9589. mavlink_msg_gimbal_device_set_attitude_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z );
  9590. mavlink_msg_gimbal_device_set_attitude_decode(&msg, &packet2);
  9591. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9592. memset(&packet2, 0, sizeof(packet2));
  9593. mavlink_msg_to_send_buffer(buffer, &msg);
  9594. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9595. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9596. }
  9597. mavlink_msg_gimbal_device_set_attitude_decode(last_msg, &packet2);
  9598. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9599. memset(&packet2, 0, sizeof(packet2));
  9600. mavlink_msg_gimbal_device_set_attitude_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.flags , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z );
  9601. mavlink_msg_gimbal_device_set_attitude_decode(last_msg, &packet2);
  9602. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9603. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9604. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_DEVICE_SET_ATTITUDE") != NULL);
  9605. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_DEVICE_SET_ATTITUDE) != NULL);
  9606. #endif
  9607. }
  9608. static void mavlink_test_gimbal_device_attitude_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9609. {
  9610. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9611. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9612. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_DEVICE_ATTITUDE_STATUS >= 256) {
  9613. return;
  9614. }
  9615. #endif
  9616. mavlink_message_t msg;
  9617. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9618. uint16_t i;
  9619. mavlink_gimbal_device_attitude_status_t packet_in = {
  9620. 963497464,{ 45.0, 46.0, 47.0, 48.0 },157.0,185.0,213.0,963499128,19107,247,58,297.0,325.0,149
  9621. };
  9622. mavlink_gimbal_device_attitude_status_t packet1, packet2;
  9623. memset(&packet1, 0, sizeof(packet1));
  9624. packet1.time_boot_ms = packet_in.time_boot_ms;
  9625. packet1.angular_velocity_x = packet_in.angular_velocity_x;
  9626. packet1.angular_velocity_y = packet_in.angular_velocity_y;
  9627. packet1.angular_velocity_z = packet_in.angular_velocity_z;
  9628. packet1.failure_flags = packet_in.failure_flags;
  9629. packet1.flags = packet_in.flags;
  9630. packet1.target_system = packet_in.target_system;
  9631. packet1.target_component = packet_in.target_component;
  9632. packet1.delta_yaw = packet_in.delta_yaw;
  9633. packet1.delta_yaw_velocity = packet_in.delta_yaw_velocity;
  9634. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  9635. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  9636. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9637. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9638. // cope with extensions
  9639. memset(MAVLINK_MSG_ID_GIMBAL_DEVICE_ATTITUDE_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_DEVICE_ATTITUDE_STATUS_MIN_LEN);
  9640. }
  9641. #endif
  9642. memset(&packet2, 0, sizeof(packet2));
  9643. mavlink_msg_gimbal_device_attitude_status_encode(system_id, component_id, &msg, &packet1);
  9644. mavlink_msg_gimbal_device_attitude_status_decode(&msg, &packet2);
  9645. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9646. memset(&packet2, 0, sizeof(packet2));
  9647. mavlink_msg_gimbal_device_attitude_status_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.time_boot_ms , packet1.flags , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z , packet1.failure_flags , packet1.delta_yaw , packet1.delta_yaw_velocity , packet1.gimbal_device_id );
  9648. mavlink_msg_gimbal_device_attitude_status_decode(&msg, &packet2);
  9649. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9650. memset(&packet2, 0, sizeof(packet2));
  9651. mavlink_msg_gimbal_device_attitude_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.time_boot_ms , packet1.flags , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z , packet1.failure_flags , packet1.delta_yaw , packet1.delta_yaw_velocity , packet1.gimbal_device_id );
  9652. mavlink_msg_gimbal_device_attitude_status_decode(&msg, &packet2);
  9653. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9654. memset(&packet2, 0, sizeof(packet2));
  9655. mavlink_msg_to_send_buffer(buffer, &msg);
  9656. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9657. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9658. }
  9659. mavlink_msg_gimbal_device_attitude_status_decode(last_msg, &packet2);
  9660. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9661. memset(&packet2, 0, sizeof(packet2));
  9662. mavlink_msg_gimbal_device_attitude_status_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.time_boot_ms , packet1.flags , packet1.q , packet1.angular_velocity_x , packet1.angular_velocity_y , packet1.angular_velocity_z , packet1.failure_flags , packet1.delta_yaw , packet1.delta_yaw_velocity , packet1.gimbal_device_id );
  9663. mavlink_msg_gimbal_device_attitude_status_decode(last_msg, &packet2);
  9664. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9665. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9666. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_DEVICE_ATTITUDE_STATUS") != NULL);
  9667. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_DEVICE_ATTITUDE_STATUS) != NULL);
  9668. #endif
  9669. }
  9670. static void mavlink_test_autopilot_state_for_gimbal_device(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9671. {
  9672. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9673. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9674. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_AUTOPILOT_STATE_FOR_GIMBAL_DEVICE >= 256) {
  9675. return;
  9676. }
  9677. #endif
  9678. mavlink_message_t msg;
  9679. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9680. uint16_t i;
  9681. mavlink_autopilot_state_for_gimbal_device_t packet_in = {
  9682. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0 },963498712,213.0,241.0,269.0,963499544,325.0,19731,27,94,161,388.0
  9683. };
  9684. mavlink_autopilot_state_for_gimbal_device_t packet1, packet2;
  9685. memset(&packet1, 0, sizeof(packet1));
  9686. packet1.time_boot_us = packet_in.time_boot_us;
  9687. packet1.q_estimated_delay_us = packet_in.q_estimated_delay_us;
  9688. packet1.vx = packet_in.vx;
  9689. packet1.vy = packet_in.vy;
  9690. packet1.vz = packet_in.vz;
  9691. packet1.v_estimated_delay_us = packet_in.v_estimated_delay_us;
  9692. packet1.feed_forward_angular_velocity_z = packet_in.feed_forward_angular_velocity_z;
  9693. packet1.estimator_status = packet_in.estimator_status;
  9694. packet1.target_system = packet_in.target_system;
  9695. packet1.target_component = packet_in.target_component;
  9696. packet1.landed_state = packet_in.landed_state;
  9697. packet1.angular_velocity_z = packet_in.angular_velocity_z;
  9698. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  9699. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9700. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9701. // cope with extensions
  9702. memset(MAVLINK_MSG_ID_AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_MIN_LEN);
  9703. }
  9704. #endif
  9705. memset(&packet2, 0, sizeof(packet2));
  9706. mavlink_msg_autopilot_state_for_gimbal_device_encode(system_id, component_id, &msg, &packet1);
  9707. mavlink_msg_autopilot_state_for_gimbal_device_decode(&msg, &packet2);
  9708. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9709. memset(&packet2, 0, sizeof(packet2));
  9710. mavlink_msg_autopilot_state_for_gimbal_device_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.time_boot_us , packet1.q , packet1.q_estimated_delay_us , packet1.vx , packet1.vy , packet1.vz , packet1.v_estimated_delay_us , packet1.feed_forward_angular_velocity_z , packet1.estimator_status , packet1.landed_state , packet1.angular_velocity_z );
  9711. mavlink_msg_autopilot_state_for_gimbal_device_decode(&msg, &packet2);
  9712. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9713. memset(&packet2, 0, sizeof(packet2));
  9714. mavlink_msg_autopilot_state_for_gimbal_device_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.time_boot_us , packet1.q , packet1.q_estimated_delay_us , packet1.vx , packet1.vy , packet1.vz , packet1.v_estimated_delay_us , packet1.feed_forward_angular_velocity_z , packet1.estimator_status , packet1.landed_state , packet1.angular_velocity_z );
  9715. mavlink_msg_autopilot_state_for_gimbal_device_decode(&msg, &packet2);
  9716. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9717. memset(&packet2, 0, sizeof(packet2));
  9718. mavlink_msg_to_send_buffer(buffer, &msg);
  9719. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9720. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9721. }
  9722. mavlink_msg_autopilot_state_for_gimbal_device_decode(last_msg, &packet2);
  9723. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9724. memset(&packet2, 0, sizeof(packet2));
  9725. mavlink_msg_autopilot_state_for_gimbal_device_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.time_boot_us , packet1.q , packet1.q_estimated_delay_us , packet1.vx , packet1.vy , packet1.vz , packet1.v_estimated_delay_us , packet1.feed_forward_angular_velocity_z , packet1.estimator_status , packet1.landed_state , packet1.angular_velocity_z );
  9726. mavlink_msg_autopilot_state_for_gimbal_device_decode(last_msg, &packet2);
  9727. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9728. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9729. MAVLINK_ASSERT(mavlink_get_message_info_by_name("AUTOPILOT_STATE_FOR_GIMBAL_DEVICE") != NULL);
  9730. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_AUTOPILOT_STATE_FOR_GIMBAL_DEVICE) != NULL);
  9731. #endif
  9732. }
  9733. static void mavlink_test_gimbal_manager_set_pitchyaw(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9734. {
  9735. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9736. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9737. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_PITCHYAW >= 256) {
  9738. return;
  9739. }
  9740. #endif
  9741. mavlink_message_t msg;
  9742. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9743. uint16_t i;
  9744. mavlink_gimbal_manager_set_pitchyaw_t packet_in = {
  9745. 963497464,45.0,73.0,101.0,129.0,65,132,199
  9746. };
  9747. mavlink_gimbal_manager_set_pitchyaw_t packet1, packet2;
  9748. memset(&packet1, 0, sizeof(packet1));
  9749. packet1.flags = packet_in.flags;
  9750. packet1.pitch = packet_in.pitch;
  9751. packet1.yaw = packet_in.yaw;
  9752. packet1.pitch_rate = packet_in.pitch_rate;
  9753. packet1.yaw_rate = packet_in.yaw_rate;
  9754. packet1.target_system = packet_in.target_system;
  9755. packet1.target_component = packet_in.target_component;
  9756. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  9757. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9758. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9759. // cope with extensions
  9760. memset(MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_PITCHYAW_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_PITCHYAW_MIN_LEN);
  9761. }
  9762. #endif
  9763. memset(&packet2, 0, sizeof(packet2));
  9764. mavlink_msg_gimbal_manager_set_pitchyaw_encode(system_id, component_id, &msg, &packet1);
  9765. mavlink_msg_gimbal_manager_set_pitchyaw_decode(&msg, &packet2);
  9766. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9767. memset(&packet2, 0, sizeof(packet2));
  9768. mavlink_msg_gimbal_manager_set_pitchyaw_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.pitch , packet1.yaw , packet1.pitch_rate , packet1.yaw_rate );
  9769. mavlink_msg_gimbal_manager_set_pitchyaw_decode(&msg, &packet2);
  9770. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9771. memset(&packet2, 0, sizeof(packet2));
  9772. mavlink_msg_gimbal_manager_set_pitchyaw_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.pitch , packet1.yaw , packet1.pitch_rate , packet1.yaw_rate );
  9773. mavlink_msg_gimbal_manager_set_pitchyaw_decode(&msg, &packet2);
  9774. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9775. memset(&packet2, 0, sizeof(packet2));
  9776. mavlink_msg_to_send_buffer(buffer, &msg);
  9777. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9778. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9779. }
  9780. mavlink_msg_gimbal_manager_set_pitchyaw_decode(last_msg, &packet2);
  9781. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9782. memset(&packet2, 0, sizeof(packet2));
  9783. mavlink_msg_gimbal_manager_set_pitchyaw_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.pitch , packet1.yaw , packet1.pitch_rate , packet1.yaw_rate );
  9784. mavlink_msg_gimbal_manager_set_pitchyaw_decode(last_msg, &packet2);
  9785. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9786. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9787. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_MANAGER_SET_PITCHYAW") != NULL);
  9788. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_PITCHYAW) != NULL);
  9789. #endif
  9790. }
  9791. static void mavlink_test_gimbal_manager_set_manual_control(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9792. {
  9793. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9794. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9795. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_MANUAL_CONTROL >= 256) {
  9796. return;
  9797. }
  9798. #endif
  9799. mavlink_message_t msg;
  9800. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9801. uint16_t i;
  9802. mavlink_gimbal_manager_set_manual_control_t packet_in = {
  9803. 963497464,45.0,73.0,101.0,129.0,65,132,199
  9804. };
  9805. mavlink_gimbal_manager_set_manual_control_t packet1, packet2;
  9806. memset(&packet1, 0, sizeof(packet1));
  9807. packet1.flags = packet_in.flags;
  9808. packet1.pitch = packet_in.pitch;
  9809. packet1.yaw = packet_in.yaw;
  9810. packet1.pitch_rate = packet_in.pitch_rate;
  9811. packet1.yaw_rate = packet_in.yaw_rate;
  9812. packet1.target_system = packet_in.target_system;
  9813. packet1.target_component = packet_in.target_component;
  9814. packet1.gimbal_device_id = packet_in.gimbal_device_id;
  9815. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9816. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9817. // cope with extensions
  9818. memset(MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_MANUAL_CONTROL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_MANUAL_CONTROL_MIN_LEN);
  9819. }
  9820. #endif
  9821. memset(&packet2, 0, sizeof(packet2));
  9822. mavlink_msg_gimbal_manager_set_manual_control_encode(system_id, component_id, &msg, &packet1);
  9823. mavlink_msg_gimbal_manager_set_manual_control_decode(&msg, &packet2);
  9824. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9825. memset(&packet2, 0, sizeof(packet2));
  9826. mavlink_msg_gimbal_manager_set_manual_control_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.pitch , packet1.yaw , packet1.pitch_rate , packet1.yaw_rate );
  9827. mavlink_msg_gimbal_manager_set_manual_control_decode(&msg, &packet2);
  9828. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9829. memset(&packet2, 0, sizeof(packet2));
  9830. mavlink_msg_gimbal_manager_set_manual_control_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.pitch , packet1.yaw , packet1.pitch_rate , packet1.yaw_rate );
  9831. mavlink_msg_gimbal_manager_set_manual_control_decode(&msg, &packet2);
  9832. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9833. memset(&packet2, 0, sizeof(packet2));
  9834. mavlink_msg_to_send_buffer(buffer, &msg);
  9835. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9836. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9837. }
  9838. mavlink_msg_gimbal_manager_set_manual_control_decode(last_msg, &packet2);
  9839. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9840. memset(&packet2, 0, sizeof(packet2));
  9841. mavlink_msg_gimbal_manager_set_manual_control_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.flags , packet1.gimbal_device_id , packet1.pitch , packet1.yaw , packet1.pitch_rate , packet1.yaw_rate );
  9842. mavlink_msg_gimbal_manager_set_manual_control_decode(last_msg, &packet2);
  9843. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9844. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9845. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GIMBAL_MANAGER_SET_MANUAL_CONTROL") != NULL);
  9846. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GIMBAL_MANAGER_SET_MANUAL_CONTROL) != NULL);
  9847. #endif
  9848. }
  9849. static void mavlink_test_esc_info(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9850. {
  9851. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9852. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9853. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ESC_INFO >= 256) {
  9854. return;
  9855. }
  9856. #endif
  9857. mavlink_message_t msg;
  9858. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9859. uint16_t i;
  9860. mavlink_esc_info_t packet_in = {
  9861. 93372036854775807ULL,{ 963497880, 963497881, 963497882, 963497883 },18483,{ 18587, 18588, 18589, 18590 },{ 19003, 19004, 19005, 19006 },3,70,137,204
  9862. };
  9863. mavlink_esc_info_t packet1, packet2;
  9864. memset(&packet1, 0, sizeof(packet1));
  9865. packet1.time_usec = packet_in.time_usec;
  9866. packet1.counter = packet_in.counter;
  9867. packet1.index = packet_in.index;
  9868. packet1.count = packet_in.count;
  9869. packet1.connection_type = packet_in.connection_type;
  9870. packet1.info = packet_in.info;
  9871. mav_array_memcpy(packet1.error_count, packet_in.error_count, sizeof(uint32_t)*4);
  9872. mav_array_memcpy(packet1.failure_flags, packet_in.failure_flags, sizeof(uint16_t)*4);
  9873. mav_array_memcpy(packet1.temperature, packet_in.temperature, sizeof(int16_t)*4);
  9874. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9875. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9876. // cope with extensions
  9877. memset(MAVLINK_MSG_ID_ESC_INFO_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ESC_INFO_MIN_LEN);
  9878. }
  9879. #endif
  9880. memset(&packet2, 0, sizeof(packet2));
  9881. mavlink_msg_esc_info_encode(system_id, component_id, &msg, &packet1);
  9882. mavlink_msg_esc_info_decode(&msg, &packet2);
  9883. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9884. memset(&packet2, 0, sizeof(packet2));
  9885. mavlink_msg_esc_info_pack(system_id, component_id, &msg , packet1.index , packet1.time_usec , packet1.counter , packet1.count , packet1.connection_type , packet1.info , packet1.failure_flags , packet1.error_count , packet1.temperature );
  9886. mavlink_msg_esc_info_decode(&msg, &packet2);
  9887. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9888. memset(&packet2, 0, sizeof(packet2));
  9889. mavlink_msg_esc_info_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.index , packet1.time_usec , packet1.counter , packet1.count , packet1.connection_type , packet1.info , packet1.failure_flags , packet1.error_count , packet1.temperature );
  9890. mavlink_msg_esc_info_decode(&msg, &packet2);
  9891. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9892. memset(&packet2, 0, sizeof(packet2));
  9893. mavlink_msg_to_send_buffer(buffer, &msg);
  9894. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9895. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9896. }
  9897. mavlink_msg_esc_info_decode(last_msg, &packet2);
  9898. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9899. memset(&packet2, 0, sizeof(packet2));
  9900. mavlink_msg_esc_info_send(MAVLINK_COMM_1 , packet1.index , packet1.time_usec , packet1.counter , packet1.count , packet1.connection_type , packet1.info , packet1.failure_flags , packet1.error_count , packet1.temperature );
  9901. mavlink_msg_esc_info_decode(last_msg, &packet2);
  9902. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9903. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9904. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ESC_INFO") != NULL);
  9905. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ESC_INFO) != NULL);
  9906. #endif
  9907. }
  9908. static void mavlink_test_esc_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9909. {
  9910. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9911. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9912. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ESC_STATUS >= 256) {
  9913. return;
  9914. }
  9915. #endif
  9916. mavlink_message_t msg;
  9917. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9918. uint16_t i;
  9919. mavlink_esc_status_t packet_in = {
  9920. 93372036854775807ULL,{ 963497880, 963497881, 963497882, 963497883 },{ 185.0, 186.0, 187.0, 188.0 },{ 297.0, 298.0, 299.0, 300.0 },173
  9921. };
  9922. mavlink_esc_status_t packet1, packet2;
  9923. memset(&packet1, 0, sizeof(packet1));
  9924. packet1.time_usec = packet_in.time_usec;
  9925. packet1.index = packet_in.index;
  9926. mav_array_memcpy(packet1.rpm, packet_in.rpm, sizeof(int32_t)*4);
  9927. mav_array_memcpy(packet1.voltage, packet_in.voltage, sizeof(float)*4);
  9928. mav_array_memcpy(packet1.current, packet_in.current, sizeof(float)*4);
  9929. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9930. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9931. // cope with extensions
  9932. memset(MAVLINK_MSG_ID_ESC_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ESC_STATUS_MIN_LEN);
  9933. }
  9934. #endif
  9935. memset(&packet2, 0, sizeof(packet2));
  9936. mavlink_msg_esc_status_encode(system_id, component_id, &msg, &packet1);
  9937. mavlink_msg_esc_status_decode(&msg, &packet2);
  9938. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9939. memset(&packet2, 0, sizeof(packet2));
  9940. mavlink_msg_esc_status_pack(system_id, component_id, &msg , packet1.index , packet1.time_usec , packet1.rpm , packet1.voltage , packet1.current );
  9941. mavlink_msg_esc_status_decode(&msg, &packet2);
  9942. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9943. memset(&packet2, 0, sizeof(packet2));
  9944. mavlink_msg_esc_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.index , packet1.time_usec , packet1.rpm , packet1.voltage , packet1.current );
  9945. mavlink_msg_esc_status_decode(&msg, &packet2);
  9946. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9947. memset(&packet2, 0, sizeof(packet2));
  9948. mavlink_msg_to_send_buffer(buffer, &msg);
  9949. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  9950. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  9951. }
  9952. mavlink_msg_esc_status_decode(last_msg, &packet2);
  9953. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9954. memset(&packet2, 0, sizeof(packet2));
  9955. mavlink_msg_esc_status_send(MAVLINK_COMM_1 , packet1.index , packet1.time_usec , packet1.rpm , packet1.voltage , packet1.current );
  9956. mavlink_msg_esc_status_decode(last_msg, &packet2);
  9957. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9958. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  9959. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ESC_STATUS") != NULL);
  9960. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ESC_STATUS) != NULL);
  9961. #endif
  9962. }
  9963. static void mavlink_test_wifi_config_ap(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  9964. {
  9965. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9966. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  9967. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_WIFI_CONFIG_AP >= 256) {
  9968. return;
  9969. }
  9970. #endif
  9971. mavlink_message_t msg;
  9972. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  9973. uint16_t i;
  9974. mavlink_wifi_config_ap_t packet_in = {
  9975. "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDE","GHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ",37,104
  9976. };
  9977. mavlink_wifi_config_ap_t packet1, packet2;
  9978. memset(&packet1, 0, sizeof(packet1));
  9979. packet1.mode = packet_in.mode;
  9980. packet1.response = packet_in.response;
  9981. mav_array_memcpy(packet1.ssid, packet_in.ssid, sizeof(char)*32);
  9982. mav_array_memcpy(packet1.password, packet_in.password, sizeof(char)*64);
  9983. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  9984. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  9985. // cope with extensions
  9986. memset(MAVLINK_MSG_ID_WIFI_CONFIG_AP_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_WIFI_CONFIG_AP_MIN_LEN);
  9987. }
  9988. #endif
  9989. memset(&packet2, 0, sizeof(packet2));
  9990. mavlink_msg_wifi_config_ap_encode(system_id, component_id, &msg, &packet1);
  9991. mavlink_msg_wifi_config_ap_decode(&msg, &packet2);
  9992. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9993. memset(&packet2, 0, sizeof(packet2));
  9994. mavlink_msg_wifi_config_ap_pack(system_id, component_id, &msg , packet1.ssid , packet1.password , packet1.mode , packet1.response );
  9995. mavlink_msg_wifi_config_ap_decode(&msg, &packet2);
  9996. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  9997. memset(&packet2, 0, sizeof(packet2));
  9998. mavlink_msg_wifi_config_ap_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.ssid , packet1.password , packet1.mode , packet1.response );
  9999. mavlink_msg_wifi_config_ap_decode(&msg, &packet2);
  10000. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10001. memset(&packet2, 0, sizeof(packet2));
  10002. mavlink_msg_to_send_buffer(buffer, &msg);
  10003. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10004. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10005. }
  10006. mavlink_msg_wifi_config_ap_decode(last_msg, &packet2);
  10007. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10008. memset(&packet2, 0, sizeof(packet2));
  10009. mavlink_msg_wifi_config_ap_send(MAVLINK_COMM_1 , packet1.ssid , packet1.password , packet1.mode , packet1.response );
  10010. mavlink_msg_wifi_config_ap_decode(last_msg, &packet2);
  10011. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10012. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10013. MAVLINK_ASSERT(mavlink_get_message_info_by_name("WIFI_CONFIG_AP") != NULL);
  10014. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_WIFI_CONFIG_AP) != NULL);
  10015. #endif
  10016. }
  10017. static void mavlink_test_ais_vessel(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10018. {
  10019. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10020. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10021. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_AIS_VESSEL >= 256) {
  10022. return;
  10023. }
  10024. #endif
  10025. mavlink_message_t msg;
  10026. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10027. uint16_t i;
  10028. mavlink_ais_vessel_t packet_in = {
  10029. 963497464,963497672,963497880,17859,17963,18067,18171,18275,18379,18483,211,22,89,156,223,"FGHIJK","MNOPQRSTUVWXYZABCDE"
  10030. };
  10031. mavlink_ais_vessel_t packet1, packet2;
  10032. memset(&packet1, 0, sizeof(packet1));
  10033. packet1.MMSI = packet_in.MMSI;
  10034. packet1.lat = packet_in.lat;
  10035. packet1.lon = packet_in.lon;
  10036. packet1.COG = packet_in.COG;
  10037. packet1.heading = packet_in.heading;
  10038. packet1.velocity = packet_in.velocity;
  10039. packet1.dimension_bow = packet_in.dimension_bow;
  10040. packet1.dimension_stern = packet_in.dimension_stern;
  10041. packet1.tslc = packet_in.tslc;
  10042. packet1.flags = packet_in.flags;
  10043. packet1.turn_rate = packet_in.turn_rate;
  10044. packet1.navigational_status = packet_in.navigational_status;
  10045. packet1.type = packet_in.type;
  10046. packet1.dimension_port = packet_in.dimension_port;
  10047. packet1.dimension_starboard = packet_in.dimension_starboard;
  10048. mav_array_memcpy(packet1.callsign, packet_in.callsign, sizeof(char)*7);
  10049. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*20);
  10050. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10051. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10052. // cope with extensions
  10053. memset(MAVLINK_MSG_ID_AIS_VESSEL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_AIS_VESSEL_MIN_LEN);
  10054. }
  10055. #endif
  10056. memset(&packet2, 0, sizeof(packet2));
  10057. mavlink_msg_ais_vessel_encode(system_id, component_id, &msg, &packet1);
  10058. mavlink_msg_ais_vessel_decode(&msg, &packet2);
  10059. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10060. memset(&packet2, 0, sizeof(packet2));
  10061. mavlink_msg_ais_vessel_pack(system_id, component_id, &msg , packet1.MMSI , packet1.lat , packet1.lon , packet1.COG , packet1.heading , packet1.velocity , packet1.turn_rate , packet1.navigational_status , packet1.type , packet1.dimension_bow , packet1.dimension_stern , packet1.dimension_port , packet1.dimension_starboard , packet1.callsign , packet1.name , packet1.tslc , packet1.flags );
  10062. mavlink_msg_ais_vessel_decode(&msg, &packet2);
  10063. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10064. memset(&packet2, 0, sizeof(packet2));
  10065. mavlink_msg_ais_vessel_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.MMSI , packet1.lat , packet1.lon , packet1.COG , packet1.heading , packet1.velocity , packet1.turn_rate , packet1.navigational_status , packet1.type , packet1.dimension_bow , packet1.dimension_stern , packet1.dimension_port , packet1.dimension_starboard , packet1.callsign , packet1.name , packet1.tslc , packet1.flags );
  10066. mavlink_msg_ais_vessel_decode(&msg, &packet2);
  10067. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10068. memset(&packet2, 0, sizeof(packet2));
  10069. mavlink_msg_to_send_buffer(buffer, &msg);
  10070. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10071. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10072. }
  10073. mavlink_msg_ais_vessel_decode(last_msg, &packet2);
  10074. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10075. memset(&packet2, 0, sizeof(packet2));
  10076. mavlink_msg_ais_vessel_send(MAVLINK_COMM_1 , packet1.MMSI , packet1.lat , packet1.lon , packet1.COG , packet1.heading , packet1.velocity , packet1.turn_rate , packet1.navigational_status , packet1.type , packet1.dimension_bow , packet1.dimension_stern , packet1.dimension_port , packet1.dimension_starboard , packet1.callsign , packet1.name , packet1.tslc , packet1.flags );
  10077. mavlink_msg_ais_vessel_decode(last_msg, &packet2);
  10078. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10079. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10080. MAVLINK_ASSERT(mavlink_get_message_info_by_name("AIS_VESSEL") != NULL);
  10081. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_AIS_VESSEL) != NULL);
  10082. #endif
  10083. }
  10084. static void mavlink_test_uavcan_node_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10085. {
  10086. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10087. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10088. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_UAVCAN_NODE_STATUS >= 256) {
  10089. return;
  10090. }
  10091. #endif
  10092. mavlink_message_t msg;
  10093. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10094. uint16_t i;
  10095. mavlink_uavcan_node_status_t packet_in = {
  10096. 93372036854775807ULL,963497880,17859,175,242,53
  10097. };
  10098. mavlink_uavcan_node_status_t packet1, packet2;
  10099. memset(&packet1, 0, sizeof(packet1));
  10100. packet1.time_usec = packet_in.time_usec;
  10101. packet1.uptime_sec = packet_in.uptime_sec;
  10102. packet1.vendor_specific_status_code = packet_in.vendor_specific_status_code;
  10103. packet1.health = packet_in.health;
  10104. packet1.mode = packet_in.mode;
  10105. packet1.sub_mode = packet_in.sub_mode;
  10106. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10107. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10108. // cope with extensions
  10109. memset(MAVLINK_MSG_ID_UAVCAN_NODE_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_UAVCAN_NODE_STATUS_MIN_LEN);
  10110. }
  10111. #endif
  10112. memset(&packet2, 0, sizeof(packet2));
  10113. mavlink_msg_uavcan_node_status_encode(system_id, component_id, &msg, &packet1);
  10114. mavlink_msg_uavcan_node_status_decode(&msg, &packet2);
  10115. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10116. memset(&packet2, 0, sizeof(packet2));
  10117. mavlink_msg_uavcan_node_status_pack(system_id, component_id, &msg , packet1.time_usec , packet1.uptime_sec , packet1.health , packet1.mode , packet1.sub_mode , packet1.vendor_specific_status_code );
  10118. mavlink_msg_uavcan_node_status_decode(&msg, &packet2);
  10119. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10120. memset(&packet2, 0, sizeof(packet2));
  10121. mavlink_msg_uavcan_node_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.uptime_sec , packet1.health , packet1.mode , packet1.sub_mode , packet1.vendor_specific_status_code );
  10122. mavlink_msg_uavcan_node_status_decode(&msg, &packet2);
  10123. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10124. memset(&packet2, 0, sizeof(packet2));
  10125. mavlink_msg_to_send_buffer(buffer, &msg);
  10126. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10127. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10128. }
  10129. mavlink_msg_uavcan_node_status_decode(last_msg, &packet2);
  10130. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10131. memset(&packet2, 0, sizeof(packet2));
  10132. mavlink_msg_uavcan_node_status_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.uptime_sec , packet1.health , packet1.mode , packet1.sub_mode , packet1.vendor_specific_status_code );
  10133. mavlink_msg_uavcan_node_status_decode(last_msg, &packet2);
  10134. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10135. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10136. MAVLINK_ASSERT(mavlink_get_message_info_by_name("UAVCAN_NODE_STATUS") != NULL);
  10137. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_UAVCAN_NODE_STATUS) != NULL);
  10138. #endif
  10139. }
  10140. static void mavlink_test_uavcan_node_info(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10141. {
  10142. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10143. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10144. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_UAVCAN_NODE_INFO >= 256) {
  10145. return;
  10146. }
  10147. #endif
  10148. mavlink_message_t msg;
  10149. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10150. uint16_t i;
  10151. mavlink_uavcan_node_info_t packet_in = {
  10152. 93372036854775807ULL,963497880,963498088,"QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ",37,104,{ 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186 },219,30
  10153. };
  10154. mavlink_uavcan_node_info_t packet1, packet2;
  10155. memset(&packet1, 0, sizeof(packet1));
  10156. packet1.time_usec = packet_in.time_usec;
  10157. packet1.uptime_sec = packet_in.uptime_sec;
  10158. packet1.sw_vcs_commit = packet_in.sw_vcs_commit;
  10159. packet1.hw_version_major = packet_in.hw_version_major;
  10160. packet1.hw_version_minor = packet_in.hw_version_minor;
  10161. packet1.sw_version_major = packet_in.sw_version_major;
  10162. packet1.sw_version_minor = packet_in.sw_version_minor;
  10163. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*80);
  10164. mav_array_memcpy(packet1.hw_unique_id, packet_in.hw_unique_id, sizeof(uint8_t)*16);
  10165. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10166. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10167. // cope with extensions
  10168. memset(MAVLINK_MSG_ID_UAVCAN_NODE_INFO_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_UAVCAN_NODE_INFO_MIN_LEN);
  10169. }
  10170. #endif
  10171. memset(&packet2, 0, sizeof(packet2));
  10172. mavlink_msg_uavcan_node_info_encode(system_id, component_id, &msg, &packet1);
  10173. mavlink_msg_uavcan_node_info_decode(&msg, &packet2);
  10174. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10175. memset(&packet2, 0, sizeof(packet2));
  10176. mavlink_msg_uavcan_node_info_pack(system_id, component_id, &msg , packet1.time_usec , packet1.uptime_sec , packet1.name , packet1.hw_version_major , packet1.hw_version_minor , packet1.hw_unique_id , packet1.sw_version_major , packet1.sw_version_minor , packet1.sw_vcs_commit );
  10177. mavlink_msg_uavcan_node_info_decode(&msg, &packet2);
  10178. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10179. memset(&packet2, 0, sizeof(packet2));
  10180. mavlink_msg_uavcan_node_info_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.uptime_sec , packet1.name , packet1.hw_version_major , packet1.hw_version_minor , packet1.hw_unique_id , packet1.sw_version_major , packet1.sw_version_minor , packet1.sw_vcs_commit );
  10181. mavlink_msg_uavcan_node_info_decode(&msg, &packet2);
  10182. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10183. memset(&packet2, 0, sizeof(packet2));
  10184. mavlink_msg_to_send_buffer(buffer, &msg);
  10185. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10186. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10187. }
  10188. mavlink_msg_uavcan_node_info_decode(last_msg, &packet2);
  10189. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10190. memset(&packet2, 0, sizeof(packet2));
  10191. mavlink_msg_uavcan_node_info_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.uptime_sec , packet1.name , packet1.hw_version_major , packet1.hw_version_minor , packet1.hw_unique_id , packet1.sw_version_major , packet1.sw_version_minor , packet1.sw_vcs_commit );
  10192. mavlink_msg_uavcan_node_info_decode(last_msg, &packet2);
  10193. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10194. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10195. MAVLINK_ASSERT(mavlink_get_message_info_by_name("UAVCAN_NODE_INFO") != NULL);
  10196. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_UAVCAN_NODE_INFO) != NULL);
  10197. #endif
  10198. }
  10199. static void mavlink_test_param_ext_request_read(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10200. {
  10201. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10202. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10203. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_EXT_REQUEST_READ >= 256) {
  10204. return;
  10205. }
  10206. #endif
  10207. mavlink_message_t msg;
  10208. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10209. uint16_t i;
  10210. mavlink_param_ext_request_read_t packet_in = {
  10211. 17235,139,206,"EFGHIJKLMNOPQRS"
  10212. };
  10213. mavlink_param_ext_request_read_t packet1, packet2;
  10214. memset(&packet1, 0, sizeof(packet1));
  10215. packet1.param_index = packet_in.param_index;
  10216. packet1.target_system = packet_in.target_system;
  10217. packet1.target_component = packet_in.target_component;
  10218. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  10219. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10220. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10221. // cope with extensions
  10222. memset(MAVLINK_MSG_ID_PARAM_EXT_REQUEST_READ_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_EXT_REQUEST_READ_MIN_LEN);
  10223. }
  10224. #endif
  10225. memset(&packet2, 0, sizeof(packet2));
  10226. mavlink_msg_param_ext_request_read_encode(system_id, component_id, &msg, &packet1);
  10227. mavlink_msg_param_ext_request_read_decode(&msg, &packet2);
  10228. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10229. memset(&packet2, 0, sizeof(packet2));
  10230. mavlink_msg_param_ext_request_read_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index );
  10231. mavlink_msg_param_ext_request_read_decode(&msg, &packet2);
  10232. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10233. memset(&packet2, 0, sizeof(packet2));
  10234. mavlink_msg_param_ext_request_read_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index );
  10235. mavlink_msg_param_ext_request_read_decode(&msg, &packet2);
  10236. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10237. memset(&packet2, 0, sizeof(packet2));
  10238. mavlink_msg_to_send_buffer(buffer, &msg);
  10239. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10240. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10241. }
  10242. mavlink_msg_param_ext_request_read_decode(last_msg, &packet2);
  10243. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10244. memset(&packet2, 0, sizeof(packet2));
  10245. mavlink_msg_param_ext_request_read_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_index );
  10246. mavlink_msg_param_ext_request_read_decode(last_msg, &packet2);
  10247. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10248. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10249. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_EXT_REQUEST_READ") != NULL);
  10250. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_EXT_REQUEST_READ) != NULL);
  10251. #endif
  10252. }
  10253. static void mavlink_test_param_ext_request_list(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10254. {
  10255. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10256. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10257. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_EXT_REQUEST_LIST >= 256) {
  10258. return;
  10259. }
  10260. #endif
  10261. mavlink_message_t msg;
  10262. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10263. uint16_t i;
  10264. mavlink_param_ext_request_list_t packet_in = {
  10265. 5,72
  10266. };
  10267. mavlink_param_ext_request_list_t packet1, packet2;
  10268. memset(&packet1, 0, sizeof(packet1));
  10269. packet1.target_system = packet_in.target_system;
  10270. packet1.target_component = packet_in.target_component;
  10271. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10272. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10273. // cope with extensions
  10274. memset(MAVLINK_MSG_ID_PARAM_EXT_REQUEST_LIST_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_EXT_REQUEST_LIST_MIN_LEN);
  10275. }
  10276. #endif
  10277. memset(&packet2, 0, sizeof(packet2));
  10278. mavlink_msg_param_ext_request_list_encode(system_id, component_id, &msg, &packet1);
  10279. mavlink_msg_param_ext_request_list_decode(&msg, &packet2);
  10280. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10281. memset(&packet2, 0, sizeof(packet2));
  10282. mavlink_msg_param_ext_request_list_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component );
  10283. mavlink_msg_param_ext_request_list_decode(&msg, &packet2);
  10284. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10285. memset(&packet2, 0, sizeof(packet2));
  10286. mavlink_msg_param_ext_request_list_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component );
  10287. mavlink_msg_param_ext_request_list_decode(&msg, &packet2);
  10288. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10289. memset(&packet2, 0, sizeof(packet2));
  10290. mavlink_msg_to_send_buffer(buffer, &msg);
  10291. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10292. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10293. }
  10294. mavlink_msg_param_ext_request_list_decode(last_msg, &packet2);
  10295. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10296. memset(&packet2, 0, sizeof(packet2));
  10297. mavlink_msg_param_ext_request_list_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component );
  10298. mavlink_msg_param_ext_request_list_decode(last_msg, &packet2);
  10299. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10300. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10301. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_EXT_REQUEST_LIST") != NULL);
  10302. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_EXT_REQUEST_LIST) != NULL);
  10303. #endif
  10304. }
  10305. static void mavlink_test_param_ext_value(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10306. {
  10307. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10308. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10309. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_EXT_VALUE >= 256) {
  10310. return;
  10311. }
  10312. #endif
  10313. mavlink_message_t msg;
  10314. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10315. uint16_t i;
  10316. mavlink_param_ext_value_t packet_in = {
  10317. 17235,17339,"EFGHIJKLMNOPQRS","UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ",193
  10318. };
  10319. mavlink_param_ext_value_t packet1, packet2;
  10320. memset(&packet1, 0, sizeof(packet1));
  10321. packet1.param_count = packet_in.param_count;
  10322. packet1.param_index = packet_in.param_index;
  10323. packet1.param_type = packet_in.param_type;
  10324. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  10325. mav_array_memcpy(packet1.param_value, packet_in.param_value, sizeof(char)*128);
  10326. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10327. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10328. // cope with extensions
  10329. memset(MAVLINK_MSG_ID_PARAM_EXT_VALUE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_EXT_VALUE_MIN_LEN);
  10330. }
  10331. #endif
  10332. memset(&packet2, 0, sizeof(packet2));
  10333. mavlink_msg_param_ext_value_encode(system_id, component_id, &msg, &packet1);
  10334. mavlink_msg_param_ext_value_decode(&msg, &packet2);
  10335. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10336. memset(&packet2, 0, sizeof(packet2));
  10337. mavlink_msg_param_ext_value_pack(system_id, component_id, &msg , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_count , packet1.param_index );
  10338. mavlink_msg_param_ext_value_decode(&msg, &packet2);
  10339. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10340. memset(&packet2, 0, sizeof(packet2));
  10341. mavlink_msg_param_ext_value_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_count , packet1.param_index );
  10342. mavlink_msg_param_ext_value_decode(&msg, &packet2);
  10343. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10344. memset(&packet2, 0, sizeof(packet2));
  10345. mavlink_msg_to_send_buffer(buffer, &msg);
  10346. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10347. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10348. }
  10349. mavlink_msg_param_ext_value_decode(last_msg, &packet2);
  10350. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10351. memset(&packet2, 0, sizeof(packet2));
  10352. mavlink_msg_param_ext_value_send(MAVLINK_COMM_1 , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_count , packet1.param_index );
  10353. mavlink_msg_param_ext_value_decode(last_msg, &packet2);
  10354. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10355. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10356. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_EXT_VALUE") != NULL);
  10357. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_EXT_VALUE) != NULL);
  10358. #endif
  10359. }
  10360. static void mavlink_test_param_ext_set(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10361. {
  10362. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10363. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10364. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_EXT_SET >= 256) {
  10365. return;
  10366. }
  10367. #endif
  10368. mavlink_message_t msg;
  10369. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10370. uint16_t i;
  10371. mavlink_param_ext_set_t packet_in = {
  10372. 5,72,"CDEFGHIJKLMNOPQ","STUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO",59
  10373. };
  10374. mavlink_param_ext_set_t packet1, packet2;
  10375. memset(&packet1, 0, sizeof(packet1));
  10376. packet1.target_system = packet_in.target_system;
  10377. packet1.target_component = packet_in.target_component;
  10378. packet1.param_type = packet_in.param_type;
  10379. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  10380. mav_array_memcpy(packet1.param_value, packet_in.param_value, sizeof(char)*128);
  10381. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10382. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10383. // cope with extensions
  10384. memset(MAVLINK_MSG_ID_PARAM_EXT_SET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_EXT_SET_MIN_LEN);
  10385. }
  10386. #endif
  10387. memset(&packet2, 0, sizeof(packet2));
  10388. mavlink_msg_param_ext_set_encode(system_id, component_id, &msg, &packet1);
  10389. mavlink_msg_param_ext_set_decode(&msg, &packet2);
  10390. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10391. memset(&packet2, 0, sizeof(packet2));
  10392. mavlink_msg_param_ext_set_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_value , packet1.param_type );
  10393. mavlink_msg_param_ext_set_decode(&msg, &packet2);
  10394. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10395. memset(&packet2, 0, sizeof(packet2));
  10396. mavlink_msg_param_ext_set_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_value , packet1.param_type );
  10397. mavlink_msg_param_ext_set_decode(&msg, &packet2);
  10398. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10399. memset(&packet2, 0, sizeof(packet2));
  10400. mavlink_msg_to_send_buffer(buffer, &msg);
  10401. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10402. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10403. }
  10404. mavlink_msg_param_ext_set_decode(last_msg, &packet2);
  10405. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10406. memset(&packet2, 0, sizeof(packet2));
  10407. mavlink_msg_param_ext_set_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.param_id , packet1.param_value , packet1.param_type );
  10408. mavlink_msg_param_ext_set_decode(last_msg, &packet2);
  10409. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10410. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10411. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_EXT_SET") != NULL);
  10412. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_EXT_SET) != NULL);
  10413. #endif
  10414. }
  10415. static void mavlink_test_param_ext_ack(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10416. {
  10417. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10418. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10419. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PARAM_EXT_ACK >= 256) {
  10420. return;
  10421. }
  10422. #endif
  10423. mavlink_message_t msg;
  10424. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10425. uint16_t i;
  10426. mavlink_param_ext_ack_t packet_in = {
  10427. "ABCDEFGHIJKLMNO","QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM",181,248
  10428. };
  10429. mavlink_param_ext_ack_t packet1, packet2;
  10430. memset(&packet1, 0, sizeof(packet1));
  10431. packet1.param_type = packet_in.param_type;
  10432. packet1.param_result = packet_in.param_result;
  10433. mav_array_memcpy(packet1.param_id, packet_in.param_id, sizeof(char)*16);
  10434. mav_array_memcpy(packet1.param_value, packet_in.param_value, sizeof(char)*128);
  10435. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10436. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10437. // cope with extensions
  10438. memset(MAVLINK_MSG_ID_PARAM_EXT_ACK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PARAM_EXT_ACK_MIN_LEN);
  10439. }
  10440. #endif
  10441. memset(&packet2, 0, sizeof(packet2));
  10442. mavlink_msg_param_ext_ack_encode(system_id, component_id, &msg, &packet1);
  10443. mavlink_msg_param_ext_ack_decode(&msg, &packet2);
  10444. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10445. memset(&packet2, 0, sizeof(packet2));
  10446. mavlink_msg_param_ext_ack_pack(system_id, component_id, &msg , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_result );
  10447. mavlink_msg_param_ext_ack_decode(&msg, &packet2);
  10448. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10449. memset(&packet2, 0, sizeof(packet2));
  10450. mavlink_msg_param_ext_ack_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_result );
  10451. mavlink_msg_param_ext_ack_decode(&msg, &packet2);
  10452. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10453. memset(&packet2, 0, sizeof(packet2));
  10454. mavlink_msg_to_send_buffer(buffer, &msg);
  10455. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10456. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10457. }
  10458. mavlink_msg_param_ext_ack_decode(last_msg, &packet2);
  10459. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10460. memset(&packet2, 0, sizeof(packet2));
  10461. mavlink_msg_param_ext_ack_send(MAVLINK_COMM_1 , packet1.param_id , packet1.param_value , packet1.param_type , packet1.param_result );
  10462. mavlink_msg_param_ext_ack_decode(last_msg, &packet2);
  10463. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10464. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10465. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PARAM_EXT_ACK") != NULL);
  10466. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PARAM_EXT_ACK) != NULL);
  10467. #endif
  10468. }
  10469. static void mavlink_test_obstacle_distance(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10470. {
  10471. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10472. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10473. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OBSTACLE_DISTANCE >= 256) {
  10474. return;
  10475. }
  10476. #endif
  10477. mavlink_message_t msg;
  10478. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10479. uint16_t i;
  10480. mavlink_obstacle_distance_t packet_in = {
  10481. 93372036854775807ULL,{ 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720, 17721, 17722 },25139,25243,217,28,1123.0,1151.0,119
  10482. };
  10483. mavlink_obstacle_distance_t packet1, packet2;
  10484. memset(&packet1, 0, sizeof(packet1));
  10485. packet1.time_usec = packet_in.time_usec;
  10486. packet1.min_distance = packet_in.min_distance;
  10487. packet1.max_distance = packet_in.max_distance;
  10488. packet1.sensor_type = packet_in.sensor_type;
  10489. packet1.increment = packet_in.increment;
  10490. packet1.increment_f = packet_in.increment_f;
  10491. packet1.angle_offset = packet_in.angle_offset;
  10492. packet1.frame = packet_in.frame;
  10493. mav_array_memcpy(packet1.distances, packet_in.distances, sizeof(uint16_t)*72);
  10494. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10495. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10496. // cope with extensions
  10497. memset(MAVLINK_MSG_ID_OBSTACLE_DISTANCE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OBSTACLE_DISTANCE_MIN_LEN);
  10498. }
  10499. #endif
  10500. memset(&packet2, 0, sizeof(packet2));
  10501. mavlink_msg_obstacle_distance_encode(system_id, component_id, &msg, &packet1);
  10502. mavlink_msg_obstacle_distance_decode(&msg, &packet2);
  10503. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10504. memset(&packet2, 0, sizeof(packet2));
  10505. mavlink_msg_obstacle_distance_pack(system_id, component_id, &msg , packet1.time_usec , packet1.sensor_type , packet1.distances , packet1.increment , packet1.min_distance , packet1.max_distance , packet1.increment_f , packet1.angle_offset , packet1.frame );
  10506. mavlink_msg_obstacle_distance_decode(&msg, &packet2);
  10507. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10508. memset(&packet2, 0, sizeof(packet2));
  10509. mavlink_msg_obstacle_distance_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.sensor_type , packet1.distances , packet1.increment , packet1.min_distance , packet1.max_distance , packet1.increment_f , packet1.angle_offset , packet1.frame );
  10510. mavlink_msg_obstacle_distance_decode(&msg, &packet2);
  10511. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10512. memset(&packet2, 0, sizeof(packet2));
  10513. mavlink_msg_to_send_buffer(buffer, &msg);
  10514. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10515. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10516. }
  10517. mavlink_msg_obstacle_distance_decode(last_msg, &packet2);
  10518. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10519. memset(&packet2, 0, sizeof(packet2));
  10520. mavlink_msg_obstacle_distance_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.sensor_type , packet1.distances , packet1.increment , packet1.min_distance , packet1.max_distance , packet1.increment_f , packet1.angle_offset , packet1.frame );
  10521. mavlink_msg_obstacle_distance_decode(last_msg, &packet2);
  10522. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10523. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10524. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OBSTACLE_DISTANCE") != NULL);
  10525. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OBSTACLE_DISTANCE) != NULL);
  10526. #endif
  10527. }
  10528. static void mavlink_test_odometry(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10529. {
  10530. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10531. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10532. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ODOMETRY >= 256) {
  10533. return;
  10534. }
  10535. #endif
  10536. mavlink_message_t msg;
  10537. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10538. uint16_t i;
  10539. mavlink_odometry_t packet_in = {
  10540. 93372036854775807ULL,73.0,101.0,129.0,{ 157.0, 158.0, 159.0, 160.0 },269.0,297.0,325.0,353.0,381.0,409.0,{ 437.0, 438.0, 439.0, 440.0, 441.0, 442.0, 443.0, 444.0, 445.0, 446.0, 447.0, 448.0, 449.0, 450.0, 451.0, 452.0, 453.0, 454.0, 455.0, 456.0, 457.0 },{ 1025.0, 1026.0, 1027.0, 1028.0, 1029.0, 1030.0, 1031.0, 1032.0, 1033.0, 1034.0, 1035.0, 1036.0, 1037.0, 1038.0, 1039.0, 1040.0, 1041.0, 1042.0, 1043.0, 1044.0, 1045.0 },177,244,55,122,189
  10541. };
  10542. mavlink_odometry_t packet1, packet2;
  10543. memset(&packet1, 0, sizeof(packet1));
  10544. packet1.time_usec = packet_in.time_usec;
  10545. packet1.x = packet_in.x;
  10546. packet1.y = packet_in.y;
  10547. packet1.z = packet_in.z;
  10548. packet1.vx = packet_in.vx;
  10549. packet1.vy = packet_in.vy;
  10550. packet1.vz = packet_in.vz;
  10551. packet1.rollspeed = packet_in.rollspeed;
  10552. packet1.pitchspeed = packet_in.pitchspeed;
  10553. packet1.yawspeed = packet_in.yawspeed;
  10554. packet1.frame_id = packet_in.frame_id;
  10555. packet1.child_frame_id = packet_in.child_frame_id;
  10556. packet1.reset_counter = packet_in.reset_counter;
  10557. packet1.estimator_type = packet_in.estimator_type;
  10558. packet1.quality = packet_in.quality;
  10559. mav_array_memcpy(packet1.q, packet_in.q, sizeof(float)*4);
  10560. mav_array_memcpy(packet1.pose_covariance, packet_in.pose_covariance, sizeof(float)*21);
  10561. mav_array_memcpy(packet1.velocity_covariance, packet_in.velocity_covariance, sizeof(float)*21);
  10562. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10563. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10564. // cope with extensions
  10565. memset(MAVLINK_MSG_ID_ODOMETRY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ODOMETRY_MIN_LEN);
  10566. }
  10567. #endif
  10568. memset(&packet2, 0, sizeof(packet2));
  10569. mavlink_msg_odometry_encode(system_id, component_id, &msg, &packet1);
  10570. mavlink_msg_odometry_decode(&msg, &packet2);
  10571. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10572. memset(&packet2, 0, sizeof(packet2));
  10573. mavlink_msg_odometry_pack(system_id, component_id, &msg , packet1.time_usec , packet1.frame_id , packet1.child_frame_id , packet1.x , packet1.y , packet1.z , packet1.q , packet1.vx , packet1.vy , packet1.vz , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.pose_covariance , packet1.velocity_covariance , packet1.reset_counter , packet1.estimator_type , packet1.quality );
  10574. mavlink_msg_odometry_decode(&msg, &packet2);
  10575. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10576. memset(&packet2, 0, sizeof(packet2));
  10577. mavlink_msg_odometry_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.frame_id , packet1.child_frame_id , packet1.x , packet1.y , packet1.z , packet1.q , packet1.vx , packet1.vy , packet1.vz , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.pose_covariance , packet1.velocity_covariance , packet1.reset_counter , packet1.estimator_type , packet1.quality );
  10578. mavlink_msg_odometry_decode(&msg, &packet2);
  10579. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10580. memset(&packet2, 0, sizeof(packet2));
  10581. mavlink_msg_to_send_buffer(buffer, &msg);
  10582. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10583. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10584. }
  10585. mavlink_msg_odometry_decode(last_msg, &packet2);
  10586. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10587. memset(&packet2, 0, sizeof(packet2));
  10588. mavlink_msg_odometry_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.frame_id , packet1.child_frame_id , packet1.x , packet1.y , packet1.z , packet1.q , packet1.vx , packet1.vy , packet1.vz , packet1.rollspeed , packet1.pitchspeed , packet1.yawspeed , packet1.pose_covariance , packet1.velocity_covariance , packet1.reset_counter , packet1.estimator_type , packet1.quality );
  10589. mavlink_msg_odometry_decode(last_msg, &packet2);
  10590. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10591. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10592. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ODOMETRY") != NULL);
  10593. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ODOMETRY) != NULL);
  10594. #endif
  10595. }
  10596. static void mavlink_test_trajectory_representation_waypoints(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10597. {
  10598. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10599. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10600. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_WAYPOINTS >= 256) {
  10601. return;
  10602. }
  10603. #endif
  10604. mavlink_message_t msg;
  10605. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10606. uint16_t i;
  10607. mavlink_trajectory_representation_waypoints_t packet_in = {
  10608. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0, 77.0 },{ 213.0, 214.0, 215.0, 216.0, 217.0 },{ 353.0, 354.0, 355.0, 356.0, 357.0 },{ 493.0, 494.0, 495.0, 496.0, 497.0 },{ 633.0, 634.0, 635.0, 636.0, 637.0 },{ 773.0, 774.0, 775.0, 776.0, 777.0 },{ 913.0, 914.0, 915.0, 916.0, 917.0 },{ 1053.0, 1054.0, 1055.0, 1056.0, 1057.0 },{ 1193.0, 1194.0, 1195.0, 1196.0, 1197.0 },{ 1333.0, 1334.0, 1335.0, 1336.0, 1337.0 },{ 1473.0, 1474.0, 1475.0, 1476.0, 1477.0 },{ 29091, 29092, 29093, 29094, 29095 },79
  10609. };
  10610. mavlink_trajectory_representation_waypoints_t packet1, packet2;
  10611. memset(&packet1, 0, sizeof(packet1));
  10612. packet1.time_usec = packet_in.time_usec;
  10613. packet1.valid_points = packet_in.valid_points;
  10614. mav_array_memcpy(packet1.pos_x, packet_in.pos_x, sizeof(float)*5);
  10615. mav_array_memcpy(packet1.pos_y, packet_in.pos_y, sizeof(float)*5);
  10616. mav_array_memcpy(packet1.pos_z, packet_in.pos_z, sizeof(float)*5);
  10617. mav_array_memcpy(packet1.vel_x, packet_in.vel_x, sizeof(float)*5);
  10618. mav_array_memcpy(packet1.vel_y, packet_in.vel_y, sizeof(float)*5);
  10619. mav_array_memcpy(packet1.vel_z, packet_in.vel_z, sizeof(float)*5);
  10620. mav_array_memcpy(packet1.acc_x, packet_in.acc_x, sizeof(float)*5);
  10621. mav_array_memcpy(packet1.acc_y, packet_in.acc_y, sizeof(float)*5);
  10622. mav_array_memcpy(packet1.acc_z, packet_in.acc_z, sizeof(float)*5);
  10623. mav_array_memcpy(packet1.pos_yaw, packet_in.pos_yaw, sizeof(float)*5);
  10624. mav_array_memcpy(packet1.vel_yaw, packet_in.vel_yaw, sizeof(float)*5);
  10625. mav_array_memcpy(packet1.command, packet_in.command, sizeof(uint16_t)*5);
  10626. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10627. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10628. // cope with extensions
  10629. memset(MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_WAYPOINTS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_WAYPOINTS_MIN_LEN);
  10630. }
  10631. #endif
  10632. memset(&packet2, 0, sizeof(packet2));
  10633. mavlink_msg_trajectory_representation_waypoints_encode(system_id, component_id, &msg, &packet1);
  10634. mavlink_msg_trajectory_representation_waypoints_decode(&msg, &packet2);
  10635. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10636. memset(&packet2, 0, sizeof(packet2));
  10637. mavlink_msg_trajectory_representation_waypoints_pack(system_id, component_id, &msg , packet1.time_usec , packet1.valid_points , packet1.pos_x , packet1.pos_y , packet1.pos_z , packet1.vel_x , packet1.vel_y , packet1.vel_z , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.pos_yaw , packet1.vel_yaw , packet1.command );
  10638. mavlink_msg_trajectory_representation_waypoints_decode(&msg, &packet2);
  10639. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10640. memset(&packet2, 0, sizeof(packet2));
  10641. mavlink_msg_trajectory_representation_waypoints_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.valid_points , packet1.pos_x , packet1.pos_y , packet1.pos_z , packet1.vel_x , packet1.vel_y , packet1.vel_z , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.pos_yaw , packet1.vel_yaw , packet1.command );
  10642. mavlink_msg_trajectory_representation_waypoints_decode(&msg, &packet2);
  10643. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10644. memset(&packet2, 0, sizeof(packet2));
  10645. mavlink_msg_to_send_buffer(buffer, &msg);
  10646. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10647. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10648. }
  10649. mavlink_msg_trajectory_representation_waypoints_decode(last_msg, &packet2);
  10650. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10651. memset(&packet2, 0, sizeof(packet2));
  10652. mavlink_msg_trajectory_representation_waypoints_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.valid_points , packet1.pos_x , packet1.pos_y , packet1.pos_z , packet1.vel_x , packet1.vel_y , packet1.vel_z , packet1.acc_x , packet1.acc_y , packet1.acc_z , packet1.pos_yaw , packet1.vel_yaw , packet1.command );
  10653. mavlink_msg_trajectory_representation_waypoints_decode(last_msg, &packet2);
  10654. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10655. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10656. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TRAJECTORY_REPRESENTATION_WAYPOINTS") != NULL);
  10657. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_WAYPOINTS) != NULL);
  10658. #endif
  10659. }
  10660. static void mavlink_test_trajectory_representation_bezier(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10661. {
  10662. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10663. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10664. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER >= 256) {
  10665. return;
  10666. }
  10667. #endif
  10668. mavlink_message_t msg;
  10669. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10670. uint16_t i;
  10671. mavlink_trajectory_representation_bezier_t packet_in = {
  10672. 93372036854775807ULL,{ 73.0, 74.0, 75.0, 76.0, 77.0 },{ 213.0, 214.0, 215.0, 216.0, 217.0 },{ 353.0, 354.0, 355.0, 356.0, 357.0 },{ 493.0, 494.0, 495.0, 496.0, 497.0 },{ 633.0, 634.0, 635.0, 636.0, 637.0 },73
  10673. };
  10674. mavlink_trajectory_representation_bezier_t packet1, packet2;
  10675. memset(&packet1, 0, sizeof(packet1));
  10676. packet1.time_usec = packet_in.time_usec;
  10677. packet1.valid_points = packet_in.valid_points;
  10678. mav_array_memcpy(packet1.pos_x, packet_in.pos_x, sizeof(float)*5);
  10679. mav_array_memcpy(packet1.pos_y, packet_in.pos_y, sizeof(float)*5);
  10680. mav_array_memcpy(packet1.pos_z, packet_in.pos_z, sizeof(float)*5);
  10681. mav_array_memcpy(packet1.delta, packet_in.delta, sizeof(float)*5);
  10682. mav_array_memcpy(packet1.pos_yaw, packet_in.pos_yaw, sizeof(float)*5);
  10683. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10684. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10685. // cope with extensions
  10686. memset(MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN);
  10687. }
  10688. #endif
  10689. memset(&packet2, 0, sizeof(packet2));
  10690. mavlink_msg_trajectory_representation_bezier_encode(system_id, component_id, &msg, &packet1);
  10691. mavlink_msg_trajectory_representation_bezier_decode(&msg, &packet2);
  10692. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10693. memset(&packet2, 0, sizeof(packet2));
  10694. mavlink_msg_trajectory_representation_bezier_pack(system_id, component_id, &msg , packet1.time_usec , packet1.valid_points , packet1.pos_x , packet1.pos_y , packet1.pos_z , packet1.delta , packet1.pos_yaw );
  10695. mavlink_msg_trajectory_representation_bezier_decode(&msg, &packet2);
  10696. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10697. memset(&packet2, 0, sizeof(packet2));
  10698. mavlink_msg_trajectory_representation_bezier_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.valid_points , packet1.pos_x , packet1.pos_y , packet1.pos_z , packet1.delta , packet1.pos_yaw );
  10699. mavlink_msg_trajectory_representation_bezier_decode(&msg, &packet2);
  10700. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10701. memset(&packet2, 0, sizeof(packet2));
  10702. mavlink_msg_to_send_buffer(buffer, &msg);
  10703. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10704. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10705. }
  10706. mavlink_msg_trajectory_representation_bezier_decode(last_msg, &packet2);
  10707. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10708. memset(&packet2, 0, sizeof(packet2));
  10709. mavlink_msg_trajectory_representation_bezier_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.valid_points , packet1.pos_x , packet1.pos_y , packet1.pos_z , packet1.delta , packet1.pos_yaw );
  10710. mavlink_msg_trajectory_representation_bezier_decode(last_msg, &packet2);
  10711. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10712. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10713. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TRAJECTORY_REPRESENTATION_BEZIER") != NULL);
  10714. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER) != NULL);
  10715. #endif
  10716. }
  10717. static void mavlink_test_cellular_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10718. {
  10719. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10720. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10721. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CELLULAR_STATUS >= 256) {
  10722. return;
  10723. }
  10724. #endif
  10725. mavlink_message_t msg;
  10726. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10727. uint16_t i;
  10728. mavlink_cellular_status_t packet_in = {
  10729. 17235,17339,17443,151,218,29,96
  10730. };
  10731. mavlink_cellular_status_t packet1, packet2;
  10732. memset(&packet1, 0, sizeof(packet1));
  10733. packet1.mcc = packet_in.mcc;
  10734. packet1.mnc = packet_in.mnc;
  10735. packet1.lac = packet_in.lac;
  10736. packet1.status = packet_in.status;
  10737. packet1.failure_reason = packet_in.failure_reason;
  10738. packet1.type = packet_in.type;
  10739. packet1.quality = packet_in.quality;
  10740. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10741. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10742. // cope with extensions
  10743. memset(MAVLINK_MSG_ID_CELLULAR_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CELLULAR_STATUS_MIN_LEN);
  10744. }
  10745. #endif
  10746. memset(&packet2, 0, sizeof(packet2));
  10747. mavlink_msg_cellular_status_encode(system_id, component_id, &msg, &packet1);
  10748. mavlink_msg_cellular_status_decode(&msg, &packet2);
  10749. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10750. memset(&packet2, 0, sizeof(packet2));
  10751. mavlink_msg_cellular_status_pack(system_id, component_id, &msg , packet1.status , packet1.failure_reason , packet1.type , packet1.quality , packet1.mcc , packet1.mnc , packet1.lac );
  10752. mavlink_msg_cellular_status_decode(&msg, &packet2);
  10753. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10754. memset(&packet2, 0, sizeof(packet2));
  10755. mavlink_msg_cellular_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.status , packet1.failure_reason , packet1.type , packet1.quality , packet1.mcc , packet1.mnc , packet1.lac );
  10756. mavlink_msg_cellular_status_decode(&msg, &packet2);
  10757. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10758. memset(&packet2, 0, sizeof(packet2));
  10759. mavlink_msg_to_send_buffer(buffer, &msg);
  10760. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10761. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10762. }
  10763. mavlink_msg_cellular_status_decode(last_msg, &packet2);
  10764. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10765. memset(&packet2, 0, sizeof(packet2));
  10766. mavlink_msg_cellular_status_send(MAVLINK_COMM_1 , packet1.status , packet1.failure_reason , packet1.type , packet1.quality , packet1.mcc , packet1.mnc , packet1.lac );
  10767. mavlink_msg_cellular_status_decode(last_msg, &packet2);
  10768. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10769. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10770. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CELLULAR_STATUS") != NULL);
  10771. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CELLULAR_STATUS) != NULL);
  10772. #endif
  10773. }
  10774. static void mavlink_test_isbd_link_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10775. {
  10776. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10777. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10778. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ISBD_LINK_STATUS >= 256) {
  10779. return;
  10780. }
  10781. #endif
  10782. mavlink_message_t msg;
  10783. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10784. uint16_t i;
  10785. mavlink_isbd_link_status_t packet_in = {
  10786. 93372036854775807ULL,93372036854776311ULL,18067,18171,65,132,199,10
  10787. };
  10788. mavlink_isbd_link_status_t packet1, packet2;
  10789. memset(&packet1, 0, sizeof(packet1));
  10790. packet1.timestamp = packet_in.timestamp;
  10791. packet1.last_heartbeat = packet_in.last_heartbeat;
  10792. packet1.failed_sessions = packet_in.failed_sessions;
  10793. packet1.successful_sessions = packet_in.successful_sessions;
  10794. packet1.signal_quality = packet_in.signal_quality;
  10795. packet1.ring_pending = packet_in.ring_pending;
  10796. packet1.tx_session_pending = packet_in.tx_session_pending;
  10797. packet1.rx_session_pending = packet_in.rx_session_pending;
  10798. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10799. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10800. // cope with extensions
  10801. memset(MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN);
  10802. }
  10803. #endif
  10804. memset(&packet2, 0, sizeof(packet2));
  10805. mavlink_msg_isbd_link_status_encode(system_id, component_id, &msg, &packet1);
  10806. mavlink_msg_isbd_link_status_decode(&msg, &packet2);
  10807. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10808. memset(&packet2, 0, sizeof(packet2));
  10809. mavlink_msg_isbd_link_status_pack(system_id, component_id, &msg , packet1.timestamp , packet1.last_heartbeat , packet1.failed_sessions , packet1.successful_sessions , packet1.signal_quality , packet1.ring_pending , packet1.tx_session_pending , packet1.rx_session_pending );
  10810. mavlink_msg_isbd_link_status_decode(&msg, &packet2);
  10811. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10812. memset(&packet2, 0, sizeof(packet2));
  10813. mavlink_msg_isbd_link_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.last_heartbeat , packet1.failed_sessions , packet1.successful_sessions , packet1.signal_quality , packet1.ring_pending , packet1.tx_session_pending , packet1.rx_session_pending );
  10814. mavlink_msg_isbd_link_status_decode(&msg, &packet2);
  10815. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10816. memset(&packet2, 0, sizeof(packet2));
  10817. mavlink_msg_to_send_buffer(buffer, &msg);
  10818. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10819. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10820. }
  10821. mavlink_msg_isbd_link_status_decode(last_msg, &packet2);
  10822. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10823. memset(&packet2, 0, sizeof(packet2));
  10824. mavlink_msg_isbd_link_status_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.last_heartbeat , packet1.failed_sessions , packet1.successful_sessions , packet1.signal_quality , packet1.ring_pending , packet1.tx_session_pending , packet1.rx_session_pending );
  10825. mavlink_msg_isbd_link_status_decode(last_msg, &packet2);
  10826. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10827. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10828. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ISBD_LINK_STATUS") != NULL);
  10829. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ISBD_LINK_STATUS) != NULL);
  10830. #endif
  10831. }
  10832. static void mavlink_test_cellular_config(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10833. {
  10834. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10835. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10836. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CELLULAR_CONFIG >= 256) {
  10837. return;
  10838. }
  10839. #endif
  10840. mavlink_message_t msg;
  10841. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10842. uint16_t i;
  10843. mavlink_cellular_config_t packet_in = {
  10844. 5,72,"CDEFGHIJKLMNOPQ","STUVWXYZABCDEFG","IJKLMNOPQRSTUVWXYZABCDEFGHIJKLM","OPQRSTUVWXYZABC",123,190
  10845. };
  10846. mavlink_cellular_config_t packet1, packet2;
  10847. memset(&packet1, 0, sizeof(packet1));
  10848. packet1.enable_lte = packet_in.enable_lte;
  10849. packet1.enable_pin = packet_in.enable_pin;
  10850. packet1.roaming = packet_in.roaming;
  10851. packet1.response = packet_in.response;
  10852. mav_array_memcpy(packet1.pin, packet_in.pin, sizeof(char)*16);
  10853. mav_array_memcpy(packet1.new_pin, packet_in.new_pin, sizeof(char)*16);
  10854. mav_array_memcpy(packet1.apn, packet_in.apn, sizeof(char)*32);
  10855. mav_array_memcpy(packet1.puk, packet_in.puk, sizeof(char)*16);
  10856. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10857. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10858. // cope with extensions
  10859. memset(MAVLINK_MSG_ID_CELLULAR_CONFIG_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CELLULAR_CONFIG_MIN_LEN);
  10860. }
  10861. #endif
  10862. memset(&packet2, 0, sizeof(packet2));
  10863. mavlink_msg_cellular_config_encode(system_id, component_id, &msg, &packet1);
  10864. mavlink_msg_cellular_config_decode(&msg, &packet2);
  10865. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10866. memset(&packet2, 0, sizeof(packet2));
  10867. mavlink_msg_cellular_config_pack(system_id, component_id, &msg , packet1.enable_lte , packet1.enable_pin , packet1.pin , packet1.new_pin , packet1.apn , packet1.puk , packet1.roaming , packet1.response );
  10868. mavlink_msg_cellular_config_decode(&msg, &packet2);
  10869. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10870. memset(&packet2, 0, sizeof(packet2));
  10871. mavlink_msg_cellular_config_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.enable_lte , packet1.enable_pin , packet1.pin , packet1.new_pin , packet1.apn , packet1.puk , packet1.roaming , packet1.response );
  10872. mavlink_msg_cellular_config_decode(&msg, &packet2);
  10873. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10874. memset(&packet2, 0, sizeof(packet2));
  10875. mavlink_msg_to_send_buffer(buffer, &msg);
  10876. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10877. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10878. }
  10879. mavlink_msg_cellular_config_decode(last_msg, &packet2);
  10880. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10881. memset(&packet2, 0, sizeof(packet2));
  10882. mavlink_msg_cellular_config_send(MAVLINK_COMM_1 , packet1.enable_lte , packet1.enable_pin , packet1.pin , packet1.new_pin , packet1.apn , packet1.puk , packet1.roaming , packet1.response );
  10883. mavlink_msg_cellular_config_decode(last_msg, &packet2);
  10884. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10885. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10886. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CELLULAR_CONFIG") != NULL);
  10887. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CELLULAR_CONFIG) != NULL);
  10888. #endif
  10889. }
  10890. static void mavlink_test_raw_rpm(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10891. {
  10892. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10893. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10894. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RAW_RPM >= 256) {
  10895. return;
  10896. }
  10897. #endif
  10898. mavlink_message_t msg;
  10899. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10900. uint16_t i;
  10901. mavlink_raw_rpm_t packet_in = {
  10902. 17.0,17
  10903. };
  10904. mavlink_raw_rpm_t packet1, packet2;
  10905. memset(&packet1, 0, sizeof(packet1));
  10906. packet1.frequency = packet_in.frequency;
  10907. packet1.index = packet_in.index;
  10908. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10909. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10910. // cope with extensions
  10911. memset(MAVLINK_MSG_ID_RAW_RPM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RAW_RPM_MIN_LEN);
  10912. }
  10913. #endif
  10914. memset(&packet2, 0, sizeof(packet2));
  10915. mavlink_msg_raw_rpm_encode(system_id, component_id, &msg, &packet1);
  10916. mavlink_msg_raw_rpm_decode(&msg, &packet2);
  10917. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10918. memset(&packet2, 0, sizeof(packet2));
  10919. mavlink_msg_raw_rpm_pack(system_id, component_id, &msg , packet1.index , packet1.frequency );
  10920. mavlink_msg_raw_rpm_decode(&msg, &packet2);
  10921. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10922. memset(&packet2, 0, sizeof(packet2));
  10923. mavlink_msg_raw_rpm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.index , packet1.frequency );
  10924. mavlink_msg_raw_rpm_decode(&msg, &packet2);
  10925. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10926. memset(&packet2, 0, sizeof(packet2));
  10927. mavlink_msg_to_send_buffer(buffer, &msg);
  10928. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10929. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10930. }
  10931. mavlink_msg_raw_rpm_decode(last_msg, &packet2);
  10932. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10933. memset(&packet2, 0, sizeof(packet2));
  10934. mavlink_msg_raw_rpm_send(MAVLINK_COMM_1 , packet1.index , packet1.frequency );
  10935. mavlink_msg_raw_rpm_decode(last_msg, &packet2);
  10936. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10937. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  10938. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RAW_RPM") != NULL);
  10939. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RAW_RPM) != NULL);
  10940. #endif
  10941. }
  10942. static void mavlink_test_utm_global_position(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  10943. {
  10944. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10945. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  10946. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_UTM_GLOBAL_POSITION >= 256) {
  10947. return;
  10948. }
  10949. #endif
  10950. mavlink_message_t msg;
  10951. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  10952. uint16_t i;
  10953. mavlink_utm_global_position_t packet_in = {
  10954. 93372036854775807ULL,963497880,963498088,963498296,963498504,963498712,963498920,963499128,19107,19211,19315,19419,19523,19627,19731,{ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },209,20
  10955. };
  10956. mavlink_utm_global_position_t packet1, packet2;
  10957. memset(&packet1, 0, sizeof(packet1));
  10958. packet1.time = packet_in.time;
  10959. packet1.lat = packet_in.lat;
  10960. packet1.lon = packet_in.lon;
  10961. packet1.alt = packet_in.alt;
  10962. packet1.relative_alt = packet_in.relative_alt;
  10963. packet1.next_lat = packet_in.next_lat;
  10964. packet1.next_lon = packet_in.next_lon;
  10965. packet1.next_alt = packet_in.next_alt;
  10966. packet1.vx = packet_in.vx;
  10967. packet1.vy = packet_in.vy;
  10968. packet1.vz = packet_in.vz;
  10969. packet1.h_acc = packet_in.h_acc;
  10970. packet1.v_acc = packet_in.v_acc;
  10971. packet1.vel_acc = packet_in.vel_acc;
  10972. packet1.update_rate = packet_in.update_rate;
  10973. packet1.flight_state = packet_in.flight_state;
  10974. packet1.flags = packet_in.flags;
  10975. mav_array_memcpy(packet1.uas_id, packet_in.uas_id, sizeof(uint8_t)*18);
  10976. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  10977. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  10978. // cope with extensions
  10979. memset(MAVLINK_MSG_ID_UTM_GLOBAL_POSITION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_UTM_GLOBAL_POSITION_MIN_LEN);
  10980. }
  10981. #endif
  10982. memset(&packet2, 0, sizeof(packet2));
  10983. mavlink_msg_utm_global_position_encode(system_id, component_id, &msg, &packet1);
  10984. mavlink_msg_utm_global_position_decode(&msg, &packet2);
  10985. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10986. memset(&packet2, 0, sizeof(packet2));
  10987. mavlink_msg_utm_global_position_pack(system_id, component_id, &msg , packet1.time , packet1.uas_id , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.next_lat , packet1.next_lon , packet1.next_alt , packet1.update_rate , packet1.flight_state , packet1.flags );
  10988. mavlink_msg_utm_global_position_decode(&msg, &packet2);
  10989. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10990. memset(&packet2, 0, sizeof(packet2));
  10991. mavlink_msg_utm_global_position_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time , packet1.uas_id , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.next_lat , packet1.next_lon , packet1.next_alt , packet1.update_rate , packet1.flight_state , packet1.flags );
  10992. mavlink_msg_utm_global_position_decode(&msg, &packet2);
  10993. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  10994. memset(&packet2, 0, sizeof(packet2));
  10995. mavlink_msg_to_send_buffer(buffer, &msg);
  10996. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  10997. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  10998. }
  10999. mavlink_msg_utm_global_position_decode(last_msg, &packet2);
  11000. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11001. memset(&packet2, 0, sizeof(packet2));
  11002. mavlink_msg_utm_global_position_send(MAVLINK_COMM_1 , packet1.time , packet1.uas_id , packet1.lat , packet1.lon , packet1.alt , packet1.relative_alt , packet1.vx , packet1.vy , packet1.vz , packet1.h_acc , packet1.v_acc , packet1.vel_acc , packet1.next_lat , packet1.next_lon , packet1.next_alt , packet1.update_rate , packet1.flight_state , packet1.flags );
  11003. mavlink_msg_utm_global_position_decode(last_msg, &packet2);
  11004. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11005. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11006. MAVLINK_ASSERT(mavlink_get_message_info_by_name("UTM_GLOBAL_POSITION") != NULL);
  11007. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_UTM_GLOBAL_POSITION) != NULL);
  11008. #endif
  11009. }
  11010. static void mavlink_test_debug_float_array(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11011. {
  11012. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11013. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11014. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_DEBUG_FLOAT_ARRAY >= 256) {
  11015. return;
  11016. }
  11017. #endif
  11018. mavlink_message_t msg;
  11019. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11020. uint16_t i;
  11021. mavlink_debug_float_array_t packet_in = {
  11022. 93372036854775807ULL,17651,"KLMNOPQRS",{ 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0 }
  11023. };
  11024. mavlink_debug_float_array_t packet1, packet2;
  11025. memset(&packet1, 0, sizeof(packet1));
  11026. packet1.time_usec = packet_in.time_usec;
  11027. packet1.array_id = packet_in.array_id;
  11028. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*10);
  11029. mav_array_memcpy(packet1.data, packet_in.data, sizeof(float)*58);
  11030. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11031. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11032. // cope with extensions
  11033. memset(MAVLINK_MSG_ID_DEBUG_FLOAT_ARRAY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_DEBUG_FLOAT_ARRAY_MIN_LEN);
  11034. }
  11035. #endif
  11036. memset(&packet2, 0, sizeof(packet2));
  11037. mavlink_msg_debug_float_array_encode(system_id, component_id, &msg, &packet1);
  11038. mavlink_msg_debug_float_array_decode(&msg, &packet2);
  11039. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11040. memset(&packet2, 0, sizeof(packet2));
  11041. mavlink_msg_debug_float_array_pack(system_id, component_id, &msg , packet1.time_usec , packet1.name , packet1.array_id , packet1.data );
  11042. mavlink_msg_debug_float_array_decode(&msg, &packet2);
  11043. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11044. memset(&packet2, 0, sizeof(packet2));
  11045. mavlink_msg_debug_float_array_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.name , packet1.array_id , packet1.data );
  11046. mavlink_msg_debug_float_array_decode(&msg, &packet2);
  11047. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11048. memset(&packet2, 0, sizeof(packet2));
  11049. mavlink_msg_to_send_buffer(buffer, &msg);
  11050. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11051. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11052. }
  11053. mavlink_msg_debug_float_array_decode(last_msg, &packet2);
  11054. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11055. memset(&packet2, 0, sizeof(packet2));
  11056. mavlink_msg_debug_float_array_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.name , packet1.array_id , packet1.data );
  11057. mavlink_msg_debug_float_array_decode(last_msg, &packet2);
  11058. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11059. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11060. MAVLINK_ASSERT(mavlink_get_message_info_by_name("DEBUG_FLOAT_ARRAY") != NULL);
  11061. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_DEBUG_FLOAT_ARRAY) != NULL);
  11062. #endif
  11063. }
  11064. static void mavlink_test_orbit_execution_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11065. {
  11066. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11067. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11068. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ORBIT_EXECUTION_STATUS >= 256) {
  11069. return;
  11070. }
  11071. #endif
  11072. mavlink_message_t msg;
  11073. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11074. uint16_t i;
  11075. mavlink_orbit_execution_status_t packet_in = {
  11076. 93372036854775807ULL,73.0,963498088,963498296,157.0,77
  11077. };
  11078. mavlink_orbit_execution_status_t packet1, packet2;
  11079. memset(&packet1, 0, sizeof(packet1));
  11080. packet1.time_usec = packet_in.time_usec;
  11081. packet1.radius = packet_in.radius;
  11082. packet1.x = packet_in.x;
  11083. packet1.y = packet_in.y;
  11084. packet1.z = packet_in.z;
  11085. packet1.frame = packet_in.frame;
  11086. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11087. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11088. // cope with extensions
  11089. memset(MAVLINK_MSG_ID_ORBIT_EXECUTION_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ORBIT_EXECUTION_STATUS_MIN_LEN);
  11090. }
  11091. #endif
  11092. memset(&packet2, 0, sizeof(packet2));
  11093. mavlink_msg_orbit_execution_status_encode(system_id, component_id, &msg, &packet1);
  11094. mavlink_msg_orbit_execution_status_decode(&msg, &packet2);
  11095. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11096. memset(&packet2, 0, sizeof(packet2));
  11097. mavlink_msg_orbit_execution_status_pack(system_id, component_id, &msg , packet1.time_usec , packet1.radius , packet1.frame , packet1.x , packet1.y , packet1.z );
  11098. mavlink_msg_orbit_execution_status_decode(&msg, &packet2);
  11099. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11100. memset(&packet2, 0, sizeof(packet2));
  11101. mavlink_msg_orbit_execution_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.radius , packet1.frame , packet1.x , packet1.y , packet1.z );
  11102. mavlink_msg_orbit_execution_status_decode(&msg, &packet2);
  11103. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11104. memset(&packet2, 0, sizeof(packet2));
  11105. mavlink_msg_to_send_buffer(buffer, &msg);
  11106. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11107. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11108. }
  11109. mavlink_msg_orbit_execution_status_decode(last_msg, &packet2);
  11110. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11111. memset(&packet2, 0, sizeof(packet2));
  11112. mavlink_msg_orbit_execution_status_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.radius , packet1.frame , packet1.x , packet1.y , packet1.z );
  11113. mavlink_msg_orbit_execution_status_decode(last_msg, &packet2);
  11114. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11115. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11116. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ORBIT_EXECUTION_STATUS") != NULL);
  11117. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ORBIT_EXECUTION_STATUS) != NULL);
  11118. #endif
  11119. }
  11120. static void mavlink_test_battery_info(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11121. {
  11122. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11123. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11124. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_BATTERY_INFO >= 256) {
  11125. return;
  11126. }
  11127. #endif
  11128. mavlink_message_t msg;
  11129. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11130. uint16_t i;
  11131. mavlink_battery_info_t packet_in = {
  11132. 17.0,45.0,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,19315,19419,137,204,15,82,149,"XYZABCDE","GHIJKLMNOPQRSTUVWXYZABCDEFGHIJK","MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI"
  11133. };
  11134. mavlink_battery_info_t packet1, packet2;
  11135. memset(&packet1, 0, sizeof(packet1));
  11136. packet1.discharge_minimum_voltage = packet_in.discharge_minimum_voltage;
  11137. packet1.charging_minimum_voltage = packet_in.charging_minimum_voltage;
  11138. packet1.resting_minimum_voltage = packet_in.resting_minimum_voltage;
  11139. packet1.charging_maximum_voltage = packet_in.charging_maximum_voltage;
  11140. packet1.charging_maximum_current = packet_in.charging_maximum_current;
  11141. packet1.nominal_voltage = packet_in.nominal_voltage;
  11142. packet1.discharge_maximum_current = packet_in.discharge_maximum_current;
  11143. packet1.discharge_maximum_burst_current = packet_in.discharge_maximum_burst_current;
  11144. packet1.design_capacity = packet_in.design_capacity;
  11145. packet1.full_charge_capacity = packet_in.full_charge_capacity;
  11146. packet1.cycle_count = packet_in.cycle_count;
  11147. packet1.weight = packet_in.weight;
  11148. packet1.id = packet_in.id;
  11149. packet1.battery_function = packet_in.battery_function;
  11150. packet1.type = packet_in.type;
  11151. packet1.state_of_health = packet_in.state_of_health;
  11152. packet1.cells_in_series = packet_in.cells_in_series;
  11153. mav_array_memcpy(packet1.manufacture_date, packet_in.manufacture_date, sizeof(char)*9);
  11154. mav_array_memcpy(packet1.serial_number, packet_in.serial_number, sizeof(char)*32);
  11155. mav_array_memcpy(packet1.name, packet_in.name, sizeof(char)*50);
  11156. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11157. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11158. // cope with extensions
  11159. memset(MAVLINK_MSG_ID_BATTERY_INFO_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_BATTERY_INFO_MIN_LEN);
  11160. }
  11161. #endif
  11162. memset(&packet2, 0, sizeof(packet2));
  11163. mavlink_msg_battery_info_encode(system_id, component_id, &msg, &packet1);
  11164. mavlink_msg_battery_info_decode(&msg, &packet2);
  11165. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11166. memset(&packet2, 0, sizeof(packet2));
  11167. mavlink_msg_battery_info_pack(system_id, component_id, &msg , packet1.id , packet1.battery_function , packet1.type , packet1.state_of_health , packet1.cells_in_series , packet1.cycle_count , packet1.weight , packet1.discharge_minimum_voltage , packet1.charging_minimum_voltage , packet1.resting_minimum_voltage , packet1.charging_maximum_voltage , packet1.charging_maximum_current , packet1.nominal_voltage , packet1.discharge_maximum_current , packet1.discharge_maximum_burst_current , packet1.design_capacity , packet1.full_charge_capacity , packet1.manufacture_date , packet1.serial_number , packet1.name );
  11168. mavlink_msg_battery_info_decode(&msg, &packet2);
  11169. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11170. memset(&packet2, 0, sizeof(packet2));
  11171. mavlink_msg_battery_info_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.id , packet1.battery_function , packet1.type , packet1.state_of_health , packet1.cells_in_series , packet1.cycle_count , packet1.weight , packet1.discharge_minimum_voltage , packet1.charging_minimum_voltage , packet1.resting_minimum_voltage , packet1.charging_maximum_voltage , packet1.charging_maximum_current , packet1.nominal_voltage , packet1.discharge_maximum_current , packet1.discharge_maximum_burst_current , packet1.design_capacity , packet1.full_charge_capacity , packet1.manufacture_date , packet1.serial_number , packet1.name );
  11172. mavlink_msg_battery_info_decode(&msg, &packet2);
  11173. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11174. memset(&packet2, 0, sizeof(packet2));
  11175. mavlink_msg_to_send_buffer(buffer, &msg);
  11176. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11177. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11178. }
  11179. mavlink_msg_battery_info_decode(last_msg, &packet2);
  11180. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11181. memset(&packet2, 0, sizeof(packet2));
  11182. mavlink_msg_battery_info_send(MAVLINK_COMM_1 , packet1.id , packet1.battery_function , packet1.type , packet1.state_of_health , packet1.cells_in_series , packet1.cycle_count , packet1.weight , packet1.discharge_minimum_voltage , packet1.charging_minimum_voltage , packet1.resting_minimum_voltage , packet1.charging_maximum_voltage , packet1.charging_maximum_current , packet1.nominal_voltage , packet1.discharge_maximum_current , packet1.discharge_maximum_burst_current , packet1.design_capacity , packet1.full_charge_capacity , packet1.manufacture_date , packet1.serial_number , packet1.name );
  11183. mavlink_msg_battery_info_decode(last_msg, &packet2);
  11184. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11185. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11186. MAVLINK_ASSERT(mavlink_get_message_info_by_name("BATTERY_INFO") != NULL);
  11187. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_BATTERY_INFO) != NULL);
  11188. #endif
  11189. }
  11190. static void mavlink_test_generator_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11191. {
  11192. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11193. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11194. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_GENERATOR_STATUS >= 256) {
  11195. return;
  11196. }
  11197. #endif
  11198. mavlink_message_t msg;
  11199. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11200. uint16_t i;
  11201. mavlink_generator_status_t packet_in = {
  11202. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,963498920,963499128,19107,19211,19315
  11203. };
  11204. mavlink_generator_status_t packet1, packet2;
  11205. memset(&packet1, 0, sizeof(packet1));
  11206. packet1.status = packet_in.status;
  11207. packet1.battery_current = packet_in.battery_current;
  11208. packet1.load_current = packet_in.load_current;
  11209. packet1.power_generated = packet_in.power_generated;
  11210. packet1.bus_voltage = packet_in.bus_voltage;
  11211. packet1.bat_current_setpoint = packet_in.bat_current_setpoint;
  11212. packet1.runtime = packet_in.runtime;
  11213. packet1.time_until_maintenance = packet_in.time_until_maintenance;
  11214. packet1.generator_speed = packet_in.generator_speed;
  11215. packet1.rectifier_temperature = packet_in.rectifier_temperature;
  11216. packet1.generator_temperature = packet_in.generator_temperature;
  11217. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11218. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11219. // cope with extensions
  11220. memset(MAVLINK_MSG_ID_GENERATOR_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_GENERATOR_STATUS_MIN_LEN);
  11221. }
  11222. #endif
  11223. memset(&packet2, 0, sizeof(packet2));
  11224. mavlink_msg_generator_status_encode(system_id, component_id, &msg, &packet1);
  11225. mavlink_msg_generator_status_decode(&msg, &packet2);
  11226. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11227. memset(&packet2, 0, sizeof(packet2));
  11228. mavlink_msg_generator_status_pack(system_id, component_id, &msg , packet1.status , packet1.generator_speed , packet1.battery_current , packet1.load_current , packet1.power_generated , packet1.bus_voltage , packet1.rectifier_temperature , packet1.bat_current_setpoint , packet1.generator_temperature , packet1.runtime , packet1.time_until_maintenance );
  11229. mavlink_msg_generator_status_decode(&msg, &packet2);
  11230. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11231. memset(&packet2, 0, sizeof(packet2));
  11232. mavlink_msg_generator_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.status , packet1.generator_speed , packet1.battery_current , packet1.load_current , packet1.power_generated , packet1.bus_voltage , packet1.rectifier_temperature , packet1.bat_current_setpoint , packet1.generator_temperature , packet1.runtime , packet1.time_until_maintenance );
  11233. mavlink_msg_generator_status_decode(&msg, &packet2);
  11234. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11235. memset(&packet2, 0, sizeof(packet2));
  11236. mavlink_msg_to_send_buffer(buffer, &msg);
  11237. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11238. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11239. }
  11240. mavlink_msg_generator_status_decode(last_msg, &packet2);
  11241. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11242. memset(&packet2, 0, sizeof(packet2));
  11243. mavlink_msg_generator_status_send(MAVLINK_COMM_1 , packet1.status , packet1.generator_speed , packet1.battery_current , packet1.load_current , packet1.power_generated , packet1.bus_voltage , packet1.rectifier_temperature , packet1.bat_current_setpoint , packet1.generator_temperature , packet1.runtime , packet1.time_until_maintenance );
  11244. mavlink_msg_generator_status_decode(last_msg, &packet2);
  11245. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11246. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11247. MAVLINK_ASSERT(mavlink_get_message_info_by_name("GENERATOR_STATUS") != NULL);
  11248. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_GENERATOR_STATUS) != NULL);
  11249. #endif
  11250. }
  11251. static void mavlink_test_actuator_output_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11252. {
  11253. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11254. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11255. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ACTUATOR_OUTPUT_STATUS >= 256) {
  11256. return;
  11257. }
  11258. #endif
  11259. mavlink_message_t msg;
  11260. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11261. uint16_t i;
  11262. mavlink_actuator_output_status_t packet_in = {
  11263. 93372036854775807ULL,963497880,{ 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0 }
  11264. };
  11265. mavlink_actuator_output_status_t packet1, packet2;
  11266. memset(&packet1, 0, sizeof(packet1));
  11267. packet1.time_usec = packet_in.time_usec;
  11268. packet1.active = packet_in.active;
  11269. mav_array_memcpy(packet1.actuator, packet_in.actuator, sizeof(float)*32);
  11270. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11271. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11272. // cope with extensions
  11273. memset(MAVLINK_MSG_ID_ACTUATOR_OUTPUT_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ACTUATOR_OUTPUT_STATUS_MIN_LEN);
  11274. }
  11275. #endif
  11276. memset(&packet2, 0, sizeof(packet2));
  11277. mavlink_msg_actuator_output_status_encode(system_id, component_id, &msg, &packet1);
  11278. mavlink_msg_actuator_output_status_decode(&msg, &packet2);
  11279. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11280. memset(&packet2, 0, sizeof(packet2));
  11281. mavlink_msg_actuator_output_status_pack(system_id, component_id, &msg , packet1.time_usec , packet1.active , packet1.actuator );
  11282. mavlink_msg_actuator_output_status_decode(&msg, &packet2);
  11283. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11284. memset(&packet2, 0, sizeof(packet2));
  11285. mavlink_msg_actuator_output_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.active , packet1.actuator );
  11286. mavlink_msg_actuator_output_status_decode(&msg, &packet2);
  11287. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11288. memset(&packet2, 0, sizeof(packet2));
  11289. mavlink_msg_to_send_buffer(buffer, &msg);
  11290. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11291. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11292. }
  11293. mavlink_msg_actuator_output_status_decode(last_msg, &packet2);
  11294. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11295. memset(&packet2, 0, sizeof(packet2));
  11296. mavlink_msg_actuator_output_status_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.active , packet1.actuator );
  11297. mavlink_msg_actuator_output_status_decode(last_msg, &packet2);
  11298. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11299. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11300. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ACTUATOR_OUTPUT_STATUS") != NULL);
  11301. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ACTUATOR_OUTPUT_STATUS) != NULL);
  11302. #endif
  11303. }
  11304. static void mavlink_test_time_estimate_to_target(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11305. {
  11306. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11307. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11308. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TIME_ESTIMATE_TO_TARGET >= 256) {
  11309. return;
  11310. }
  11311. #endif
  11312. mavlink_message_t msg;
  11313. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11314. uint16_t i;
  11315. mavlink_time_estimate_to_target_t packet_in = {
  11316. 963497464,963497672,963497880,963498088,963498296
  11317. };
  11318. mavlink_time_estimate_to_target_t packet1, packet2;
  11319. memset(&packet1, 0, sizeof(packet1));
  11320. packet1.safe_return = packet_in.safe_return;
  11321. packet1.land = packet_in.land;
  11322. packet1.mission_next_item = packet_in.mission_next_item;
  11323. packet1.mission_end = packet_in.mission_end;
  11324. packet1.commanded_action = packet_in.commanded_action;
  11325. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11326. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11327. // cope with extensions
  11328. memset(MAVLINK_MSG_ID_TIME_ESTIMATE_TO_TARGET_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TIME_ESTIMATE_TO_TARGET_MIN_LEN);
  11329. }
  11330. #endif
  11331. memset(&packet2, 0, sizeof(packet2));
  11332. mavlink_msg_time_estimate_to_target_encode(system_id, component_id, &msg, &packet1);
  11333. mavlink_msg_time_estimate_to_target_decode(&msg, &packet2);
  11334. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11335. memset(&packet2, 0, sizeof(packet2));
  11336. mavlink_msg_time_estimate_to_target_pack(system_id, component_id, &msg , packet1.safe_return , packet1.land , packet1.mission_next_item , packet1.mission_end , packet1.commanded_action );
  11337. mavlink_msg_time_estimate_to_target_decode(&msg, &packet2);
  11338. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11339. memset(&packet2, 0, sizeof(packet2));
  11340. mavlink_msg_time_estimate_to_target_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.safe_return , packet1.land , packet1.mission_next_item , packet1.mission_end , packet1.commanded_action );
  11341. mavlink_msg_time_estimate_to_target_decode(&msg, &packet2);
  11342. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11343. memset(&packet2, 0, sizeof(packet2));
  11344. mavlink_msg_to_send_buffer(buffer, &msg);
  11345. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11346. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11347. }
  11348. mavlink_msg_time_estimate_to_target_decode(last_msg, &packet2);
  11349. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11350. memset(&packet2, 0, sizeof(packet2));
  11351. mavlink_msg_time_estimate_to_target_send(MAVLINK_COMM_1 , packet1.safe_return , packet1.land , packet1.mission_next_item , packet1.mission_end , packet1.commanded_action );
  11352. mavlink_msg_time_estimate_to_target_decode(last_msg, &packet2);
  11353. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11354. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11355. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TIME_ESTIMATE_TO_TARGET") != NULL);
  11356. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TIME_ESTIMATE_TO_TARGET) != NULL);
  11357. #endif
  11358. }
  11359. static void mavlink_test_tunnel(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11360. {
  11361. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11362. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11363. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TUNNEL >= 256) {
  11364. return;
  11365. }
  11366. #endif
  11367. mavlink_message_t msg;
  11368. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11369. uint16_t i;
  11370. mavlink_tunnel_t packet_in = {
  11371. 17235,139,206,17,{ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211 }
  11372. };
  11373. mavlink_tunnel_t packet1, packet2;
  11374. memset(&packet1, 0, sizeof(packet1));
  11375. packet1.payload_type = packet_in.payload_type;
  11376. packet1.target_system = packet_in.target_system;
  11377. packet1.target_component = packet_in.target_component;
  11378. packet1.payload_length = packet_in.payload_length;
  11379. mav_array_memcpy(packet1.payload, packet_in.payload, sizeof(uint8_t)*128);
  11380. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11381. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11382. // cope with extensions
  11383. memset(MAVLINK_MSG_ID_TUNNEL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TUNNEL_MIN_LEN);
  11384. }
  11385. #endif
  11386. memset(&packet2, 0, sizeof(packet2));
  11387. mavlink_msg_tunnel_encode(system_id, component_id, &msg, &packet1);
  11388. mavlink_msg_tunnel_decode(&msg, &packet2);
  11389. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11390. memset(&packet2, 0, sizeof(packet2));
  11391. mavlink_msg_tunnel_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.payload_type , packet1.payload_length , packet1.payload );
  11392. mavlink_msg_tunnel_decode(&msg, &packet2);
  11393. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11394. memset(&packet2, 0, sizeof(packet2));
  11395. mavlink_msg_tunnel_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.payload_type , packet1.payload_length , packet1.payload );
  11396. mavlink_msg_tunnel_decode(&msg, &packet2);
  11397. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11398. memset(&packet2, 0, sizeof(packet2));
  11399. mavlink_msg_to_send_buffer(buffer, &msg);
  11400. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11401. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11402. }
  11403. mavlink_msg_tunnel_decode(last_msg, &packet2);
  11404. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11405. memset(&packet2, 0, sizeof(packet2));
  11406. mavlink_msg_tunnel_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.payload_type , packet1.payload_length , packet1.payload );
  11407. mavlink_msg_tunnel_decode(last_msg, &packet2);
  11408. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11409. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11410. MAVLINK_ASSERT(mavlink_get_message_info_by_name("TUNNEL") != NULL);
  11411. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_TUNNEL) != NULL);
  11412. #endif
  11413. }
  11414. static void mavlink_test_can_frame(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11415. {
  11416. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11417. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11418. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAN_FRAME >= 256) {
  11419. return;
  11420. }
  11421. #endif
  11422. mavlink_message_t msg;
  11423. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11424. uint16_t i;
  11425. mavlink_can_frame_t packet_in = {
  11426. 963497464,17,84,151,218,{ 29, 30, 31, 32, 33, 34, 35, 36 }
  11427. };
  11428. mavlink_can_frame_t packet1, packet2;
  11429. memset(&packet1, 0, sizeof(packet1));
  11430. packet1.id = packet_in.id;
  11431. packet1.target_system = packet_in.target_system;
  11432. packet1.target_component = packet_in.target_component;
  11433. packet1.bus = packet_in.bus;
  11434. packet1.len = packet_in.len;
  11435. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*8);
  11436. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11437. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11438. // cope with extensions
  11439. memset(MAVLINK_MSG_ID_CAN_FRAME_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAN_FRAME_MIN_LEN);
  11440. }
  11441. #endif
  11442. memset(&packet2, 0, sizeof(packet2));
  11443. mavlink_msg_can_frame_encode(system_id, component_id, &msg, &packet1);
  11444. mavlink_msg_can_frame_decode(&msg, &packet2);
  11445. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11446. memset(&packet2, 0, sizeof(packet2));
  11447. mavlink_msg_can_frame_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.bus , packet1.len , packet1.id , packet1.data );
  11448. mavlink_msg_can_frame_decode(&msg, &packet2);
  11449. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11450. memset(&packet2, 0, sizeof(packet2));
  11451. mavlink_msg_can_frame_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.bus , packet1.len , packet1.id , packet1.data );
  11452. mavlink_msg_can_frame_decode(&msg, &packet2);
  11453. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11454. memset(&packet2, 0, sizeof(packet2));
  11455. mavlink_msg_to_send_buffer(buffer, &msg);
  11456. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11457. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11458. }
  11459. mavlink_msg_can_frame_decode(last_msg, &packet2);
  11460. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11461. memset(&packet2, 0, sizeof(packet2));
  11462. mavlink_msg_can_frame_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.bus , packet1.len , packet1.id , packet1.data );
  11463. mavlink_msg_can_frame_decode(last_msg, &packet2);
  11464. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11465. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11466. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAN_FRAME") != NULL);
  11467. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAN_FRAME) != NULL);
  11468. #endif
  11469. }
  11470. static void mavlink_test_onboard_computer_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11471. {
  11472. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11473. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11474. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ONBOARD_COMPUTER_STATUS >= 256) {
  11475. return;
  11476. }
  11477. #endif
  11478. mavlink_message_t msg;
  11479. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11480. uint16_t i;
  11481. mavlink_onboard_computer_status_t packet_in = {
  11482. 93372036854775807ULL,963497880,963498088,963498296,{ 963498504, 963498505, 963498506, 963498507 },{ 963499336, 963499337, 963499338, 963499339 },{ 963500168, 963500169, 963500170, 963500171 },{ 963501000, 963501001, 963501002, 963501003, 963501004, 963501005 },{ 963502248, 963502249, 963502250, 963502251, 963502252, 963502253 },{ 963503496, 963503497, 963503498, 963503499, 963503500, 963503501 },{ 963504744, 963504745, 963504746, 963504747, 963504748, 963504749 },{ 963505992, 963505993, 963505994, 963505995, 963505996, 963505997 },{ 27011, 27012, 27013, 27014 },81,{ 148, 149, 150, 151, 152, 153, 154, 155 },{ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181 },{ 74, 75, 76, 77 },{ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 },244,{ 55, 56, 57, 58, 59, 60, 61, 62 }
  11483. };
  11484. mavlink_onboard_computer_status_t packet1, packet2;
  11485. memset(&packet1, 0, sizeof(packet1));
  11486. packet1.time_usec = packet_in.time_usec;
  11487. packet1.uptime = packet_in.uptime;
  11488. packet1.ram_usage = packet_in.ram_usage;
  11489. packet1.ram_total = packet_in.ram_total;
  11490. packet1.type = packet_in.type;
  11491. packet1.temperature_board = packet_in.temperature_board;
  11492. mav_array_memcpy(packet1.storage_type, packet_in.storage_type, sizeof(uint32_t)*4);
  11493. mav_array_memcpy(packet1.storage_usage, packet_in.storage_usage, sizeof(uint32_t)*4);
  11494. mav_array_memcpy(packet1.storage_total, packet_in.storage_total, sizeof(uint32_t)*4);
  11495. mav_array_memcpy(packet1.link_type, packet_in.link_type, sizeof(uint32_t)*6);
  11496. mav_array_memcpy(packet1.link_tx_rate, packet_in.link_tx_rate, sizeof(uint32_t)*6);
  11497. mav_array_memcpy(packet1.link_rx_rate, packet_in.link_rx_rate, sizeof(uint32_t)*6);
  11498. mav_array_memcpy(packet1.link_tx_max, packet_in.link_tx_max, sizeof(uint32_t)*6);
  11499. mav_array_memcpy(packet1.link_rx_max, packet_in.link_rx_max, sizeof(uint32_t)*6);
  11500. mav_array_memcpy(packet1.fan_speed, packet_in.fan_speed, sizeof(int16_t)*4);
  11501. mav_array_memcpy(packet1.cpu_cores, packet_in.cpu_cores, sizeof(uint8_t)*8);
  11502. mav_array_memcpy(packet1.cpu_combined, packet_in.cpu_combined, sizeof(uint8_t)*10);
  11503. mav_array_memcpy(packet1.gpu_cores, packet_in.gpu_cores, sizeof(uint8_t)*4);
  11504. mav_array_memcpy(packet1.gpu_combined, packet_in.gpu_combined, sizeof(uint8_t)*10);
  11505. mav_array_memcpy(packet1.temperature_core, packet_in.temperature_core, sizeof(int8_t)*8);
  11506. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11507. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11508. // cope with extensions
  11509. memset(MAVLINK_MSG_ID_ONBOARD_COMPUTER_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ONBOARD_COMPUTER_STATUS_MIN_LEN);
  11510. }
  11511. #endif
  11512. memset(&packet2, 0, sizeof(packet2));
  11513. mavlink_msg_onboard_computer_status_encode(system_id, component_id, &msg, &packet1);
  11514. mavlink_msg_onboard_computer_status_decode(&msg, &packet2);
  11515. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11516. memset(&packet2, 0, sizeof(packet2));
  11517. mavlink_msg_onboard_computer_status_pack(system_id, component_id, &msg , packet1.time_usec , packet1.uptime , packet1.type , packet1.cpu_cores , packet1.cpu_combined , packet1.gpu_cores , packet1.gpu_combined , packet1.temperature_board , packet1.temperature_core , packet1.fan_speed , packet1.ram_usage , packet1.ram_total , packet1.storage_type , packet1.storage_usage , packet1.storage_total , packet1.link_type , packet1.link_tx_rate , packet1.link_rx_rate , packet1.link_tx_max , packet1.link_rx_max );
  11518. mavlink_msg_onboard_computer_status_decode(&msg, &packet2);
  11519. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11520. memset(&packet2, 0, sizeof(packet2));
  11521. mavlink_msg_onboard_computer_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.uptime , packet1.type , packet1.cpu_cores , packet1.cpu_combined , packet1.gpu_cores , packet1.gpu_combined , packet1.temperature_board , packet1.temperature_core , packet1.fan_speed , packet1.ram_usage , packet1.ram_total , packet1.storage_type , packet1.storage_usage , packet1.storage_total , packet1.link_type , packet1.link_tx_rate , packet1.link_rx_rate , packet1.link_tx_max , packet1.link_rx_max );
  11522. mavlink_msg_onboard_computer_status_decode(&msg, &packet2);
  11523. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11524. memset(&packet2, 0, sizeof(packet2));
  11525. mavlink_msg_to_send_buffer(buffer, &msg);
  11526. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11527. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11528. }
  11529. mavlink_msg_onboard_computer_status_decode(last_msg, &packet2);
  11530. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11531. memset(&packet2, 0, sizeof(packet2));
  11532. mavlink_msg_onboard_computer_status_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.uptime , packet1.type , packet1.cpu_cores , packet1.cpu_combined , packet1.gpu_cores , packet1.gpu_combined , packet1.temperature_board , packet1.temperature_core , packet1.fan_speed , packet1.ram_usage , packet1.ram_total , packet1.storage_type , packet1.storage_usage , packet1.storage_total , packet1.link_type , packet1.link_tx_rate , packet1.link_rx_rate , packet1.link_tx_max , packet1.link_rx_max );
  11533. mavlink_msg_onboard_computer_status_decode(last_msg, &packet2);
  11534. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11535. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11536. MAVLINK_ASSERT(mavlink_get_message_info_by_name("ONBOARD_COMPUTER_STATUS") != NULL);
  11537. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_ONBOARD_COMPUTER_STATUS) != NULL);
  11538. #endif
  11539. }
  11540. static void mavlink_test_component_information(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11541. {
  11542. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11543. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11544. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMPONENT_INFORMATION >= 256) {
  11545. return;
  11546. }
  11547. #endif
  11548. mavlink_message_t msg;
  11549. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11550. uint16_t i;
  11551. mavlink_component_information_t packet_in = {
  11552. 963497464,963497672,963497880,"MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG","IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC"
  11553. };
  11554. mavlink_component_information_t packet1, packet2;
  11555. memset(&packet1, 0, sizeof(packet1));
  11556. packet1.time_boot_ms = packet_in.time_boot_ms;
  11557. packet1.general_metadata_file_crc = packet_in.general_metadata_file_crc;
  11558. packet1.peripherals_metadata_file_crc = packet_in.peripherals_metadata_file_crc;
  11559. mav_array_memcpy(packet1.general_metadata_uri, packet_in.general_metadata_uri, sizeof(char)*100);
  11560. mav_array_memcpy(packet1.peripherals_metadata_uri, packet_in.peripherals_metadata_uri, sizeof(char)*100);
  11561. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11562. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11563. // cope with extensions
  11564. memset(MAVLINK_MSG_ID_COMPONENT_INFORMATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMPONENT_INFORMATION_MIN_LEN);
  11565. }
  11566. #endif
  11567. memset(&packet2, 0, sizeof(packet2));
  11568. mavlink_msg_component_information_encode(system_id, component_id, &msg, &packet1);
  11569. mavlink_msg_component_information_decode(&msg, &packet2);
  11570. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11571. memset(&packet2, 0, sizeof(packet2));
  11572. mavlink_msg_component_information_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.general_metadata_file_crc , packet1.general_metadata_uri , packet1.peripherals_metadata_file_crc , packet1.peripherals_metadata_uri );
  11573. mavlink_msg_component_information_decode(&msg, &packet2);
  11574. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11575. memset(&packet2, 0, sizeof(packet2));
  11576. mavlink_msg_component_information_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.general_metadata_file_crc , packet1.general_metadata_uri , packet1.peripherals_metadata_file_crc , packet1.peripherals_metadata_uri );
  11577. mavlink_msg_component_information_decode(&msg, &packet2);
  11578. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11579. memset(&packet2, 0, sizeof(packet2));
  11580. mavlink_msg_to_send_buffer(buffer, &msg);
  11581. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11582. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11583. }
  11584. mavlink_msg_component_information_decode(last_msg, &packet2);
  11585. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11586. memset(&packet2, 0, sizeof(packet2));
  11587. mavlink_msg_component_information_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.general_metadata_file_crc , packet1.general_metadata_uri , packet1.peripherals_metadata_file_crc , packet1.peripherals_metadata_uri );
  11588. mavlink_msg_component_information_decode(last_msg, &packet2);
  11589. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11590. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11591. MAVLINK_ASSERT(mavlink_get_message_info_by_name("COMPONENT_INFORMATION") != NULL);
  11592. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COMPONENT_INFORMATION) != NULL);
  11593. #endif
  11594. }
  11595. static void mavlink_test_component_metadata(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11596. {
  11597. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11598. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11599. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMPONENT_METADATA >= 256) {
  11600. return;
  11601. }
  11602. #endif
  11603. mavlink_message_t msg;
  11604. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11605. uint16_t i;
  11606. mavlink_component_metadata_t packet_in = {
  11607. 963497464,963497672,"IJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC"
  11608. };
  11609. mavlink_component_metadata_t packet1, packet2;
  11610. memset(&packet1, 0, sizeof(packet1));
  11611. packet1.time_boot_ms = packet_in.time_boot_ms;
  11612. packet1.file_crc = packet_in.file_crc;
  11613. mav_array_memcpy(packet1.uri, packet_in.uri, sizeof(char)*100);
  11614. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11615. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11616. // cope with extensions
  11617. memset(MAVLINK_MSG_ID_COMPONENT_METADATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMPONENT_METADATA_MIN_LEN);
  11618. }
  11619. #endif
  11620. memset(&packet2, 0, sizeof(packet2));
  11621. mavlink_msg_component_metadata_encode(system_id, component_id, &msg, &packet1);
  11622. mavlink_msg_component_metadata_decode(&msg, &packet2);
  11623. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11624. memset(&packet2, 0, sizeof(packet2));
  11625. mavlink_msg_component_metadata_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.file_crc , packet1.uri );
  11626. mavlink_msg_component_metadata_decode(&msg, &packet2);
  11627. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11628. memset(&packet2, 0, sizeof(packet2));
  11629. mavlink_msg_component_metadata_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.file_crc , packet1.uri );
  11630. mavlink_msg_component_metadata_decode(&msg, &packet2);
  11631. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11632. memset(&packet2, 0, sizeof(packet2));
  11633. mavlink_msg_to_send_buffer(buffer, &msg);
  11634. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11635. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11636. }
  11637. mavlink_msg_component_metadata_decode(last_msg, &packet2);
  11638. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11639. memset(&packet2, 0, sizeof(packet2));
  11640. mavlink_msg_component_metadata_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.file_crc , packet1.uri );
  11641. mavlink_msg_component_metadata_decode(last_msg, &packet2);
  11642. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11643. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11644. MAVLINK_ASSERT(mavlink_get_message_info_by_name("COMPONENT_METADATA") != NULL);
  11645. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_COMPONENT_METADATA) != NULL);
  11646. #endif
  11647. }
  11648. static void mavlink_test_play_tune_v2(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11649. {
  11650. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11651. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11652. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PLAY_TUNE_V2 >= 256) {
  11653. return;
  11654. }
  11655. #endif
  11656. mavlink_message_t msg;
  11657. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11658. uint16_t i;
  11659. mavlink_play_tune_v2_t packet_in = {
  11660. 963497464,17,84,"GHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRS"
  11661. };
  11662. mavlink_play_tune_v2_t packet1, packet2;
  11663. memset(&packet1, 0, sizeof(packet1));
  11664. packet1.format = packet_in.format;
  11665. packet1.target_system = packet_in.target_system;
  11666. packet1.target_component = packet_in.target_component;
  11667. mav_array_memcpy(packet1.tune, packet_in.tune, sizeof(char)*248);
  11668. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11669. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11670. // cope with extensions
  11671. memset(MAVLINK_MSG_ID_PLAY_TUNE_V2_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PLAY_TUNE_V2_MIN_LEN);
  11672. }
  11673. #endif
  11674. memset(&packet2, 0, sizeof(packet2));
  11675. mavlink_msg_play_tune_v2_encode(system_id, component_id, &msg, &packet1);
  11676. mavlink_msg_play_tune_v2_decode(&msg, &packet2);
  11677. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11678. memset(&packet2, 0, sizeof(packet2));
  11679. mavlink_msg_play_tune_v2_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.format , packet1.tune );
  11680. mavlink_msg_play_tune_v2_decode(&msg, &packet2);
  11681. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11682. memset(&packet2, 0, sizeof(packet2));
  11683. mavlink_msg_play_tune_v2_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.format , packet1.tune );
  11684. mavlink_msg_play_tune_v2_decode(&msg, &packet2);
  11685. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11686. memset(&packet2, 0, sizeof(packet2));
  11687. mavlink_msg_to_send_buffer(buffer, &msg);
  11688. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11689. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11690. }
  11691. mavlink_msg_play_tune_v2_decode(last_msg, &packet2);
  11692. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11693. memset(&packet2, 0, sizeof(packet2));
  11694. mavlink_msg_play_tune_v2_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.format , packet1.tune );
  11695. mavlink_msg_play_tune_v2_decode(last_msg, &packet2);
  11696. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11697. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11698. MAVLINK_ASSERT(mavlink_get_message_info_by_name("PLAY_TUNE_V2") != NULL);
  11699. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_PLAY_TUNE_V2) != NULL);
  11700. #endif
  11701. }
  11702. static void mavlink_test_supported_tunes(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11703. {
  11704. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11705. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11706. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SUPPORTED_TUNES >= 256) {
  11707. return;
  11708. }
  11709. #endif
  11710. mavlink_message_t msg;
  11711. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11712. uint16_t i;
  11713. mavlink_supported_tunes_t packet_in = {
  11714. 963497464,17,84
  11715. };
  11716. mavlink_supported_tunes_t packet1, packet2;
  11717. memset(&packet1, 0, sizeof(packet1));
  11718. packet1.format = packet_in.format;
  11719. packet1.target_system = packet_in.target_system;
  11720. packet1.target_component = packet_in.target_component;
  11721. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11722. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11723. // cope with extensions
  11724. memset(MAVLINK_MSG_ID_SUPPORTED_TUNES_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SUPPORTED_TUNES_MIN_LEN);
  11725. }
  11726. #endif
  11727. memset(&packet2, 0, sizeof(packet2));
  11728. mavlink_msg_supported_tunes_encode(system_id, component_id, &msg, &packet1);
  11729. mavlink_msg_supported_tunes_decode(&msg, &packet2);
  11730. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11731. memset(&packet2, 0, sizeof(packet2));
  11732. mavlink_msg_supported_tunes_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.format );
  11733. mavlink_msg_supported_tunes_decode(&msg, &packet2);
  11734. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11735. memset(&packet2, 0, sizeof(packet2));
  11736. mavlink_msg_supported_tunes_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.format );
  11737. mavlink_msg_supported_tunes_decode(&msg, &packet2);
  11738. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11739. memset(&packet2, 0, sizeof(packet2));
  11740. mavlink_msg_to_send_buffer(buffer, &msg);
  11741. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11742. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11743. }
  11744. mavlink_msg_supported_tunes_decode(last_msg, &packet2);
  11745. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11746. memset(&packet2, 0, sizeof(packet2));
  11747. mavlink_msg_supported_tunes_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.format );
  11748. mavlink_msg_supported_tunes_decode(last_msg, &packet2);
  11749. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11750. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11751. MAVLINK_ASSERT(mavlink_get_message_info_by_name("SUPPORTED_TUNES") != NULL);
  11752. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_SUPPORTED_TUNES) != NULL);
  11753. #endif
  11754. }
  11755. static void mavlink_test_event(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11756. {
  11757. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11758. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11759. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_EVENT >= 256) {
  11760. return;
  11761. }
  11762. #endif
  11763. mavlink_message_t msg;
  11764. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11765. uint16_t i;
  11766. mavlink_event_t packet_in = {
  11767. 963497464,963497672,17651,163,230,41,{ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147 }
  11768. };
  11769. mavlink_event_t packet1, packet2;
  11770. memset(&packet1, 0, sizeof(packet1));
  11771. packet1.id = packet_in.id;
  11772. packet1.event_time_boot_ms = packet_in.event_time_boot_ms;
  11773. packet1.sequence = packet_in.sequence;
  11774. packet1.destination_component = packet_in.destination_component;
  11775. packet1.destination_system = packet_in.destination_system;
  11776. packet1.log_levels = packet_in.log_levels;
  11777. mav_array_memcpy(packet1.arguments, packet_in.arguments, sizeof(uint8_t)*40);
  11778. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11779. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11780. // cope with extensions
  11781. memset(MAVLINK_MSG_ID_EVENT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_EVENT_MIN_LEN);
  11782. }
  11783. #endif
  11784. memset(&packet2, 0, sizeof(packet2));
  11785. mavlink_msg_event_encode(system_id, component_id, &msg, &packet1);
  11786. mavlink_msg_event_decode(&msg, &packet2);
  11787. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11788. memset(&packet2, 0, sizeof(packet2));
  11789. mavlink_msg_event_pack(system_id, component_id, &msg , packet1.destination_component , packet1.destination_system , packet1.id , packet1.event_time_boot_ms , packet1.sequence , packet1.log_levels , packet1.arguments );
  11790. mavlink_msg_event_decode(&msg, &packet2);
  11791. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11792. memset(&packet2, 0, sizeof(packet2));
  11793. mavlink_msg_event_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.destination_component , packet1.destination_system , packet1.id , packet1.event_time_boot_ms , packet1.sequence , packet1.log_levels , packet1.arguments );
  11794. mavlink_msg_event_decode(&msg, &packet2);
  11795. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11796. memset(&packet2, 0, sizeof(packet2));
  11797. mavlink_msg_to_send_buffer(buffer, &msg);
  11798. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11799. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11800. }
  11801. mavlink_msg_event_decode(last_msg, &packet2);
  11802. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11803. memset(&packet2, 0, sizeof(packet2));
  11804. mavlink_msg_event_send(MAVLINK_COMM_1 , packet1.destination_component , packet1.destination_system , packet1.id , packet1.event_time_boot_ms , packet1.sequence , packet1.log_levels , packet1.arguments );
  11805. mavlink_msg_event_decode(last_msg, &packet2);
  11806. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11807. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11808. MAVLINK_ASSERT(mavlink_get_message_info_by_name("EVENT") != NULL);
  11809. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_EVENT) != NULL);
  11810. #endif
  11811. }
  11812. static void mavlink_test_current_event_sequence(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11813. {
  11814. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11815. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11816. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CURRENT_EVENT_SEQUENCE >= 256) {
  11817. return;
  11818. }
  11819. #endif
  11820. mavlink_message_t msg;
  11821. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11822. uint16_t i;
  11823. mavlink_current_event_sequence_t packet_in = {
  11824. 17235,139
  11825. };
  11826. mavlink_current_event_sequence_t packet1, packet2;
  11827. memset(&packet1, 0, sizeof(packet1));
  11828. packet1.sequence = packet_in.sequence;
  11829. packet1.flags = packet_in.flags;
  11830. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11831. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11832. // cope with extensions
  11833. memset(MAVLINK_MSG_ID_CURRENT_EVENT_SEQUENCE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CURRENT_EVENT_SEQUENCE_MIN_LEN);
  11834. }
  11835. #endif
  11836. memset(&packet2, 0, sizeof(packet2));
  11837. mavlink_msg_current_event_sequence_encode(system_id, component_id, &msg, &packet1);
  11838. mavlink_msg_current_event_sequence_decode(&msg, &packet2);
  11839. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11840. memset(&packet2, 0, sizeof(packet2));
  11841. mavlink_msg_current_event_sequence_pack(system_id, component_id, &msg , packet1.sequence , packet1.flags );
  11842. mavlink_msg_current_event_sequence_decode(&msg, &packet2);
  11843. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11844. memset(&packet2, 0, sizeof(packet2));
  11845. mavlink_msg_current_event_sequence_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.sequence , packet1.flags );
  11846. mavlink_msg_current_event_sequence_decode(&msg, &packet2);
  11847. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11848. memset(&packet2, 0, sizeof(packet2));
  11849. mavlink_msg_to_send_buffer(buffer, &msg);
  11850. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11851. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11852. }
  11853. mavlink_msg_current_event_sequence_decode(last_msg, &packet2);
  11854. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11855. memset(&packet2, 0, sizeof(packet2));
  11856. mavlink_msg_current_event_sequence_send(MAVLINK_COMM_1 , packet1.sequence , packet1.flags );
  11857. mavlink_msg_current_event_sequence_decode(last_msg, &packet2);
  11858. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11859. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11860. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CURRENT_EVENT_SEQUENCE") != NULL);
  11861. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CURRENT_EVENT_SEQUENCE) != NULL);
  11862. #endif
  11863. }
  11864. static void mavlink_test_request_event(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11865. {
  11866. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11867. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11868. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_REQUEST_EVENT >= 256) {
  11869. return;
  11870. }
  11871. #endif
  11872. mavlink_message_t msg;
  11873. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11874. uint16_t i;
  11875. mavlink_request_event_t packet_in = {
  11876. 17235,17339,17,84
  11877. };
  11878. mavlink_request_event_t packet1, packet2;
  11879. memset(&packet1, 0, sizeof(packet1));
  11880. packet1.first_sequence = packet_in.first_sequence;
  11881. packet1.last_sequence = packet_in.last_sequence;
  11882. packet1.target_system = packet_in.target_system;
  11883. packet1.target_component = packet_in.target_component;
  11884. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11885. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11886. // cope with extensions
  11887. memset(MAVLINK_MSG_ID_REQUEST_EVENT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_REQUEST_EVENT_MIN_LEN);
  11888. }
  11889. #endif
  11890. memset(&packet2, 0, sizeof(packet2));
  11891. mavlink_msg_request_event_encode(system_id, component_id, &msg, &packet1);
  11892. mavlink_msg_request_event_decode(&msg, &packet2);
  11893. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11894. memset(&packet2, 0, sizeof(packet2));
  11895. mavlink_msg_request_event_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.first_sequence , packet1.last_sequence );
  11896. mavlink_msg_request_event_decode(&msg, &packet2);
  11897. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11898. memset(&packet2, 0, sizeof(packet2));
  11899. mavlink_msg_request_event_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.first_sequence , packet1.last_sequence );
  11900. mavlink_msg_request_event_decode(&msg, &packet2);
  11901. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11902. memset(&packet2, 0, sizeof(packet2));
  11903. mavlink_msg_to_send_buffer(buffer, &msg);
  11904. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11905. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11906. }
  11907. mavlink_msg_request_event_decode(last_msg, &packet2);
  11908. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11909. memset(&packet2, 0, sizeof(packet2));
  11910. mavlink_msg_request_event_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.first_sequence , packet1.last_sequence );
  11911. mavlink_msg_request_event_decode(last_msg, &packet2);
  11912. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11913. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11914. MAVLINK_ASSERT(mavlink_get_message_info_by_name("REQUEST_EVENT") != NULL);
  11915. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_REQUEST_EVENT) != NULL);
  11916. #endif
  11917. }
  11918. static void mavlink_test_response_event_error(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11919. {
  11920. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11921. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11922. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RESPONSE_EVENT_ERROR >= 256) {
  11923. return;
  11924. }
  11925. #endif
  11926. mavlink_message_t msg;
  11927. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11928. uint16_t i;
  11929. mavlink_response_event_error_t packet_in = {
  11930. 17235,17339,17,84,151
  11931. };
  11932. mavlink_response_event_error_t packet1, packet2;
  11933. memset(&packet1, 0, sizeof(packet1));
  11934. packet1.sequence = packet_in.sequence;
  11935. packet1.sequence_oldest_available = packet_in.sequence_oldest_available;
  11936. packet1.target_system = packet_in.target_system;
  11937. packet1.target_component = packet_in.target_component;
  11938. packet1.reason = packet_in.reason;
  11939. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11940. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11941. // cope with extensions
  11942. memset(MAVLINK_MSG_ID_RESPONSE_EVENT_ERROR_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RESPONSE_EVENT_ERROR_MIN_LEN);
  11943. }
  11944. #endif
  11945. memset(&packet2, 0, sizeof(packet2));
  11946. mavlink_msg_response_event_error_encode(system_id, component_id, &msg, &packet1);
  11947. mavlink_msg_response_event_error_decode(&msg, &packet2);
  11948. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11949. memset(&packet2, 0, sizeof(packet2));
  11950. mavlink_msg_response_event_error_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.sequence , packet1.sequence_oldest_available , packet1.reason );
  11951. mavlink_msg_response_event_error_decode(&msg, &packet2);
  11952. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11953. memset(&packet2, 0, sizeof(packet2));
  11954. mavlink_msg_response_event_error_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.sequence , packet1.sequence_oldest_available , packet1.reason );
  11955. mavlink_msg_response_event_error_decode(&msg, &packet2);
  11956. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11957. memset(&packet2, 0, sizeof(packet2));
  11958. mavlink_msg_to_send_buffer(buffer, &msg);
  11959. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  11960. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  11961. }
  11962. mavlink_msg_response_event_error_decode(last_msg, &packet2);
  11963. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11964. memset(&packet2, 0, sizeof(packet2));
  11965. mavlink_msg_response_event_error_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.sequence , packet1.sequence_oldest_available , packet1.reason );
  11966. mavlink_msg_response_event_error_decode(last_msg, &packet2);
  11967. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  11968. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  11969. MAVLINK_ASSERT(mavlink_get_message_info_by_name("RESPONSE_EVENT_ERROR") != NULL);
  11970. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_RESPONSE_EVENT_ERROR) != NULL);
  11971. #endif
  11972. }
  11973. static void mavlink_test_canfd_frame(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  11974. {
  11975. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11976. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  11977. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CANFD_FRAME >= 256) {
  11978. return;
  11979. }
  11980. #endif
  11981. mavlink_message_t msg;
  11982. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  11983. uint16_t i;
  11984. mavlink_canfd_frame_t packet_in = {
  11985. 963497464,17,84,151,218,{ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92 }
  11986. };
  11987. mavlink_canfd_frame_t packet1, packet2;
  11988. memset(&packet1, 0, sizeof(packet1));
  11989. packet1.id = packet_in.id;
  11990. packet1.target_system = packet_in.target_system;
  11991. packet1.target_component = packet_in.target_component;
  11992. packet1.bus = packet_in.bus;
  11993. packet1.len = packet_in.len;
  11994. mav_array_memcpy(packet1.data, packet_in.data, sizeof(uint8_t)*64);
  11995. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  11996. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  11997. // cope with extensions
  11998. memset(MAVLINK_MSG_ID_CANFD_FRAME_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CANFD_FRAME_MIN_LEN);
  11999. }
  12000. #endif
  12001. memset(&packet2, 0, sizeof(packet2));
  12002. mavlink_msg_canfd_frame_encode(system_id, component_id, &msg, &packet1);
  12003. mavlink_msg_canfd_frame_decode(&msg, &packet2);
  12004. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12005. memset(&packet2, 0, sizeof(packet2));
  12006. mavlink_msg_canfd_frame_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.bus , packet1.len , packet1.id , packet1.data );
  12007. mavlink_msg_canfd_frame_decode(&msg, &packet2);
  12008. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12009. memset(&packet2, 0, sizeof(packet2));
  12010. mavlink_msg_canfd_frame_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.bus , packet1.len , packet1.id , packet1.data );
  12011. mavlink_msg_canfd_frame_decode(&msg, &packet2);
  12012. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12013. memset(&packet2, 0, sizeof(packet2));
  12014. mavlink_msg_to_send_buffer(buffer, &msg);
  12015. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12016. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12017. }
  12018. mavlink_msg_canfd_frame_decode(last_msg, &packet2);
  12019. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12020. memset(&packet2, 0, sizeof(packet2));
  12021. mavlink_msg_canfd_frame_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.bus , packet1.len , packet1.id , packet1.data );
  12022. mavlink_msg_canfd_frame_decode(last_msg, &packet2);
  12023. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12024. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12025. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CANFD_FRAME") != NULL);
  12026. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CANFD_FRAME) != NULL);
  12027. #endif
  12028. }
  12029. static void mavlink_test_can_filter_modify(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12030. {
  12031. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12032. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12033. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CAN_FILTER_MODIFY >= 256) {
  12034. return;
  12035. }
  12036. #endif
  12037. mavlink_message_t msg;
  12038. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12039. uint16_t i;
  12040. mavlink_can_filter_modify_t packet_in = {
  12041. { 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250 },101,168,235,46,113
  12042. };
  12043. mavlink_can_filter_modify_t packet1, packet2;
  12044. memset(&packet1, 0, sizeof(packet1));
  12045. packet1.target_system = packet_in.target_system;
  12046. packet1.target_component = packet_in.target_component;
  12047. packet1.bus = packet_in.bus;
  12048. packet1.operation = packet_in.operation;
  12049. packet1.num_ids = packet_in.num_ids;
  12050. mav_array_memcpy(packet1.ids, packet_in.ids, sizeof(uint16_t)*16);
  12051. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12052. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12053. // cope with extensions
  12054. memset(MAVLINK_MSG_ID_CAN_FILTER_MODIFY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CAN_FILTER_MODIFY_MIN_LEN);
  12055. }
  12056. #endif
  12057. memset(&packet2, 0, sizeof(packet2));
  12058. mavlink_msg_can_filter_modify_encode(system_id, component_id, &msg, &packet1);
  12059. mavlink_msg_can_filter_modify_decode(&msg, &packet2);
  12060. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12061. memset(&packet2, 0, sizeof(packet2));
  12062. mavlink_msg_can_filter_modify_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.bus , packet1.operation , packet1.num_ids , packet1.ids );
  12063. mavlink_msg_can_filter_modify_decode(&msg, &packet2);
  12064. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12065. memset(&packet2, 0, sizeof(packet2));
  12066. mavlink_msg_can_filter_modify_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.bus , packet1.operation , packet1.num_ids , packet1.ids );
  12067. mavlink_msg_can_filter_modify_decode(&msg, &packet2);
  12068. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12069. memset(&packet2, 0, sizeof(packet2));
  12070. mavlink_msg_to_send_buffer(buffer, &msg);
  12071. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12072. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12073. }
  12074. mavlink_msg_can_filter_modify_decode(last_msg, &packet2);
  12075. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12076. memset(&packet2, 0, sizeof(packet2));
  12077. mavlink_msg_can_filter_modify_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.bus , packet1.operation , packet1.num_ids , packet1.ids );
  12078. mavlink_msg_can_filter_modify_decode(last_msg, &packet2);
  12079. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12080. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12081. MAVLINK_ASSERT(mavlink_get_message_info_by_name("CAN_FILTER_MODIFY") != NULL);
  12082. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_CAN_FILTER_MODIFY) != NULL);
  12083. #endif
  12084. }
  12085. static void mavlink_test_wheel_distance(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12086. {
  12087. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12088. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12089. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_WHEEL_DISTANCE >= 256) {
  12090. return;
  12091. }
  12092. #endif
  12093. mavlink_message_t msg;
  12094. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12095. uint16_t i;
  12096. mavlink_wheel_distance_t packet_in = {
  12097. 93372036854775807ULL,{ 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0 },157
  12098. };
  12099. mavlink_wheel_distance_t packet1, packet2;
  12100. memset(&packet1, 0, sizeof(packet1));
  12101. packet1.time_usec = packet_in.time_usec;
  12102. packet1.count = packet_in.count;
  12103. mav_array_memcpy(packet1.distance, packet_in.distance, sizeof(double)*16);
  12104. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12105. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12106. // cope with extensions
  12107. memset(MAVLINK_MSG_ID_WHEEL_DISTANCE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_WHEEL_DISTANCE_MIN_LEN);
  12108. }
  12109. #endif
  12110. memset(&packet2, 0, sizeof(packet2));
  12111. mavlink_msg_wheel_distance_encode(system_id, component_id, &msg, &packet1);
  12112. mavlink_msg_wheel_distance_decode(&msg, &packet2);
  12113. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12114. memset(&packet2, 0, sizeof(packet2));
  12115. mavlink_msg_wheel_distance_pack(system_id, component_id, &msg , packet1.time_usec , packet1.count , packet1.distance );
  12116. mavlink_msg_wheel_distance_decode(&msg, &packet2);
  12117. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12118. memset(&packet2, 0, sizeof(packet2));
  12119. mavlink_msg_wheel_distance_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.count , packet1.distance );
  12120. mavlink_msg_wheel_distance_decode(&msg, &packet2);
  12121. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12122. memset(&packet2, 0, sizeof(packet2));
  12123. mavlink_msg_to_send_buffer(buffer, &msg);
  12124. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12125. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12126. }
  12127. mavlink_msg_wheel_distance_decode(last_msg, &packet2);
  12128. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12129. memset(&packet2, 0, sizeof(packet2));
  12130. mavlink_msg_wheel_distance_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.count , packet1.distance );
  12131. mavlink_msg_wheel_distance_decode(last_msg, &packet2);
  12132. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12133. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12134. MAVLINK_ASSERT(mavlink_get_message_info_by_name("WHEEL_DISTANCE") != NULL);
  12135. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_WHEEL_DISTANCE) != NULL);
  12136. #endif
  12137. }
  12138. static void mavlink_test_winch_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12139. {
  12140. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12141. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12142. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_WINCH_STATUS >= 256) {
  12143. return;
  12144. }
  12145. #endif
  12146. mavlink_message_t msg;
  12147. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12148. uint16_t i;
  12149. mavlink_winch_status_t packet_in = {
  12150. 93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,963498920,18899
  12151. };
  12152. mavlink_winch_status_t packet1, packet2;
  12153. memset(&packet1, 0, sizeof(packet1));
  12154. packet1.time_usec = packet_in.time_usec;
  12155. packet1.line_length = packet_in.line_length;
  12156. packet1.speed = packet_in.speed;
  12157. packet1.tension = packet_in.tension;
  12158. packet1.voltage = packet_in.voltage;
  12159. packet1.current = packet_in.current;
  12160. packet1.status = packet_in.status;
  12161. packet1.temperature = packet_in.temperature;
  12162. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12163. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12164. // cope with extensions
  12165. memset(MAVLINK_MSG_ID_WINCH_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_WINCH_STATUS_MIN_LEN);
  12166. }
  12167. #endif
  12168. memset(&packet2, 0, sizeof(packet2));
  12169. mavlink_msg_winch_status_encode(system_id, component_id, &msg, &packet1);
  12170. mavlink_msg_winch_status_decode(&msg, &packet2);
  12171. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12172. memset(&packet2, 0, sizeof(packet2));
  12173. mavlink_msg_winch_status_pack(system_id, component_id, &msg , packet1.time_usec , packet1.line_length , packet1.speed , packet1.tension , packet1.voltage , packet1.current , packet1.temperature , packet1.status );
  12174. mavlink_msg_winch_status_decode(&msg, &packet2);
  12175. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12176. memset(&packet2, 0, sizeof(packet2));
  12177. mavlink_msg_winch_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.line_length , packet1.speed , packet1.tension , packet1.voltage , packet1.current , packet1.temperature , packet1.status );
  12178. mavlink_msg_winch_status_decode(&msg, &packet2);
  12179. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12180. memset(&packet2, 0, sizeof(packet2));
  12181. mavlink_msg_to_send_buffer(buffer, &msg);
  12182. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12183. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12184. }
  12185. mavlink_msg_winch_status_decode(last_msg, &packet2);
  12186. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12187. memset(&packet2, 0, sizeof(packet2));
  12188. mavlink_msg_winch_status_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.line_length , packet1.speed , packet1.tension , packet1.voltage , packet1.current , packet1.temperature , packet1.status );
  12189. mavlink_msg_winch_status_decode(last_msg, &packet2);
  12190. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12191. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12192. MAVLINK_ASSERT(mavlink_get_message_info_by_name("WINCH_STATUS") != NULL);
  12193. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_WINCH_STATUS) != NULL);
  12194. #endif
  12195. }
  12196. static void mavlink_test_open_drone_id_basic_id(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12197. {
  12198. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12199. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12200. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_BASIC_ID >= 256) {
  12201. return;
  12202. }
  12203. #endif
  12204. mavlink_message_t msg;
  12205. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12206. uint16_t i;
  12207. mavlink_open_drone_id_basic_id_t packet_in = {
  12208. 5,72,{ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158 },199,10,{ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 }
  12209. };
  12210. mavlink_open_drone_id_basic_id_t packet1, packet2;
  12211. memset(&packet1, 0, sizeof(packet1));
  12212. packet1.target_system = packet_in.target_system;
  12213. packet1.target_component = packet_in.target_component;
  12214. packet1.id_type = packet_in.id_type;
  12215. packet1.ua_type = packet_in.ua_type;
  12216. mav_array_memcpy(packet1.id_or_mac, packet_in.id_or_mac, sizeof(uint8_t)*20);
  12217. mav_array_memcpy(packet1.uas_id, packet_in.uas_id, sizeof(uint8_t)*20);
  12218. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12219. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12220. // cope with extensions
  12221. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_BASIC_ID_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_BASIC_ID_MIN_LEN);
  12222. }
  12223. #endif
  12224. memset(&packet2, 0, sizeof(packet2));
  12225. mavlink_msg_open_drone_id_basic_id_encode(system_id, component_id, &msg, &packet1);
  12226. mavlink_msg_open_drone_id_basic_id_decode(&msg, &packet2);
  12227. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12228. memset(&packet2, 0, sizeof(packet2));
  12229. mavlink_msg_open_drone_id_basic_id_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.id_type , packet1.ua_type , packet1.uas_id );
  12230. mavlink_msg_open_drone_id_basic_id_decode(&msg, &packet2);
  12231. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12232. memset(&packet2, 0, sizeof(packet2));
  12233. mavlink_msg_open_drone_id_basic_id_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.id_type , packet1.ua_type , packet1.uas_id );
  12234. mavlink_msg_open_drone_id_basic_id_decode(&msg, &packet2);
  12235. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12236. memset(&packet2, 0, sizeof(packet2));
  12237. mavlink_msg_to_send_buffer(buffer, &msg);
  12238. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12239. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12240. }
  12241. mavlink_msg_open_drone_id_basic_id_decode(last_msg, &packet2);
  12242. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12243. memset(&packet2, 0, sizeof(packet2));
  12244. mavlink_msg_open_drone_id_basic_id_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.id_type , packet1.ua_type , packet1.uas_id );
  12245. mavlink_msg_open_drone_id_basic_id_decode(last_msg, &packet2);
  12246. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12247. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12248. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_BASIC_ID") != NULL);
  12249. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_BASIC_ID) != NULL);
  12250. #endif
  12251. }
  12252. static void mavlink_test_open_drone_id_location(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12253. {
  12254. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12255. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12256. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_LOCATION >= 256) {
  12257. return;
  12258. }
  12259. #endif
  12260. mavlink_message_t msg;
  12261. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12262. uint16_t i;
  12263. mavlink_open_drone_id_location_t packet_in = {
  12264. 963497464,963497672,73.0,101.0,129.0,157.0,18483,18587,18691,223,34,{ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120 },161,228,39,106,173,240,51
  12265. };
  12266. mavlink_open_drone_id_location_t packet1, packet2;
  12267. memset(&packet1, 0, sizeof(packet1));
  12268. packet1.latitude = packet_in.latitude;
  12269. packet1.longitude = packet_in.longitude;
  12270. packet1.altitude_barometric = packet_in.altitude_barometric;
  12271. packet1.altitude_geodetic = packet_in.altitude_geodetic;
  12272. packet1.height = packet_in.height;
  12273. packet1.timestamp = packet_in.timestamp;
  12274. packet1.direction = packet_in.direction;
  12275. packet1.speed_horizontal = packet_in.speed_horizontal;
  12276. packet1.speed_vertical = packet_in.speed_vertical;
  12277. packet1.target_system = packet_in.target_system;
  12278. packet1.target_component = packet_in.target_component;
  12279. packet1.status = packet_in.status;
  12280. packet1.height_reference = packet_in.height_reference;
  12281. packet1.horizontal_accuracy = packet_in.horizontal_accuracy;
  12282. packet1.vertical_accuracy = packet_in.vertical_accuracy;
  12283. packet1.barometer_accuracy = packet_in.barometer_accuracy;
  12284. packet1.speed_accuracy = packet_in.speed_accuracy;
  12285. packet1.timestamp_accuracy = packet_in.timestamp_accuracy;
  12286. mav_array_memcpy(packet1.id_or_mac, packet_in.id_or_mac, sizeof(uint8_t)*20);
  12287. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12288. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12289. // cope with extensions
  12290. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_LOCATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_LOCATION_MIN_LEN);
  12291. }
  12292. #endif
  12293. memset(&packet2, 0, sizeof(packet2));
  12294. mavlink_msg_open_drone_id_location_encode(system_id, component_id, &msg, &packet1);
  12295. mavlink_msg_open_drone_id_location_decode(&msg, &packet2);
  12296. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12297. memset(&packet2, 0, sizeof(packet2));
  12298. mavlink_msg_open_drone_id_location_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.status , packet1.direction , packet1.speed_horizontal , packet1.speed_vertical , packet1.latitude , packet1.longitude , packet1.altitude_barometric , packet1.altitude_geodetic , packet1.height_reference , packet1.height , packet1.horizontal_accuracy , packet1.vertical_accuracy , packet1.barometer_accuracy , packet1.speed_accuracy , packet1.timestamp , packet1.timestamp_accuracy );
  12299. mavlink_msg_open_drone_id_location_decode(&msg, &packet2);
  12300. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12301. memset(&packet2, 0, sizeof(packet2));
  12302. mavlink_msg_open_drone_id_location_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.status , packet1.direction , packet1.speed_horizontal , packet1.speed_vertical , packet1.latitude , packet1.longitude , packet1.altitude_barometric , packet1.altitude_geodetic , packet1.height_reference , packet1.height , packet1.horizontal_accuracy , packet1.vertical_accuracy , packet1.barometer_accuracy , packet1.speed_accuracy , packet1.timestamp , packet1.timestamp_accuracy );
  12303. mavlink_msg_open_drone_id_location_decode(&msg, &packet2);
  12304. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12305. memset(&packet2, 0, sizeof(packet2));
  12306. mavlink_msg_to_send_buffer(buffer, &msg);
  12307. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12308. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12309. }
  12310. mavlink_msg_open_drone_id_location_decode(last_msg, &packet2);
  12311. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12312. memset(&packet2, 0, sizeof(packet2));
  12313. mavlink_msg_open_drone_id_location_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.status , packet1.direction , packet1.speed_horizontal , packet1.speed_vertical , packet1.latitude , packet1.longitude , packet1.altitude_barometric , packet1.altitude_geodetic , packet1.height_reference , packet1.height , packet1.horizontal_accuracy , packet1.vertical_accuracy , packet1.barometer_accuracy , packet1.speed_accuracy , packet1.timestamp , packet1.timestamp_accuracy );
  12314. mavlink_msg_open_drone_id_location_decode(last_msg, &packet2);
  12315. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12316. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12317. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_LOCATION") != NULL);
  12318. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_LOCATION) != NULL);
  12319. #endif
  12320. }
  12321. static void mavlink_test_open_drone_id_authentication(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12322. {
  12323. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12324. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12325. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_AUTHENTICATION >= 256) {
  12326. return;
  12327. }
  12328. #endif
  12329. mavlink_message_t msg;
  12330. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12331. uint16_t i;
  12332. mavlink_open_drone_id_authentication_t packet_in = {
  12333. 963497464,17,84,{ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170 },211,22,89,156,{ 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245 }
  12334. };
  12335. mavlink_open_drone_id_authentication_t packet1, packet2;
  12336. memset(&packet1, 0, sizeof(packet1));
  12337. packet1.timestamp = packet_in.timestamp;
  12338. packet1.target_system = packet_in.target_system;
  12339. packet1.target_component = packet_in.target_component;
  12340. packet1.authentication_type = packet_in.authentication_type;
  12341. packet1.data_page = packet_in.data_page;
  12342. packet1.last_page_index = packet_in.last_page_index;
  12343. packet1.length = packet_in.length;
  12344. mav_array_memcpy(packet1.id_or_mac, packet_in.id_or_mac, sizeof(uint8_t)*20);
  12345. mav_array_memcpy(packet1.authentication_data, packet_in.authentication_data, sizeof(uint8_t)*23);
  12346. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12347. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12348. // cope with extensions
  12349. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_AUTHENTICATION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_AUTHENTICATION_MIN_LEN);
  12350. }
  12351. #endif
  12352. memset(&packet2, 0, sizeof(packet2));
  12353. mavlink_msg_open_drone_id_authentication_encode(system_id, component_id, &msg, &packet1);
  12354. mavlink_msg_open_drone_id_authentication_decode(&msg, &packet2);
  12355. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12356. memset(&packet2, 0, sizeof(packet2));
  12357. mavlink_msg_open_drone_id_authentication_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.authentication_type , packet1.data_page , packet1.last_page_index , packet1.length , packet1.timestamp , packet1.authentication_data );
  12358. mavlink_msg_open_drone_id_authentication_decode(&msg, &packet2);
  12359. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12360. memset(&packet2, 0, sizeof(packet2));
  12361. mavlink_msg_open_drone_id_authentication_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.authentication_type , packet1.data_page , packet1.last_page_index , packet1.length , packet1.timestamp , packet1.authentication_data );
  12362. mavlink_msg_open_drone_id_authentication_decode(&msg, &packet2);
  12363. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12364. memset(&packet2, 0, sizeof(packet2));
  12365. mavlink_msg_to_send_buffer(buffer, &msg);
  12366. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12367. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12368. }
  12369. mavlink_msg_open_drone_id_authentication_decode(last_msg, &packet2);
  12370. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12371. memset(&packet2, 0, sizeof(packet2));
  12372. mavlink_msg_open_drone_id_authentication_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.authentication_type , packet1.data_page , packet1.last_page_index , packet1.length , packet1.timestamp , packet1.authentication_data );
  12373. mavlink_msg_open_drone_id_authentication_decode(last_msg, &packet2);
  12374. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12375. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12376. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_AUTHENTICATION") != NULL);
  12377. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_AUTHENTICATION) != NULL);
  12378. #endif
  12379. }
  12380. static void mavlink_test_open_drone_id_self_id(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12381. {
  12382. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12383. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12384. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_SELF_ID >= 256) {
  12385. return;
  12386. }
  12387. #endif
  12388. mavlink_message_t msg;
  12389. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12390. uint16_t i;
  12391. mavlink_open_drone_id_self_id_t packet_in = {
  12392. 5,72,{ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158 },199,"XYZABCDEFGHIJKLMNOPQRS"
  12393. };
  12394. mavlink_open_drone_id_self_id_t packet1, packet2;
  12395. memset(&packet1, 0, sizeof(packet1));
  12396. packet1.target_system = packet_in.target_system;
  12397. packet1.target_component = packet_in.target_component;
  12398. packet1.description_type = packet_in.description_type;
  12399. mav_array_memcpy(packet1.id_or_mac, packet_in.id_or_mac, sizeof(uint8_t)*20);
  12400. mav_array_memcpy(packet1.description, packet_in.description, sizeof(char)*23);
  12401. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12402. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12403. // cope with extensions
  12404. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_SELF_ID_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_SELF_ID_MIN_LEN);
  12405. }
  12406. #endif
  12407. memset(&packet2, 0, sizeof(packet2));
  12408. mavlink_msg_open_drone_id_self_id_encode(system_id, component_id, &msg, &packet1);
  12409. mavlink_msg_open_drone_id_self_id_decode(&msg, &packet2);
  12410. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12411. memset(&packet2, 0, sizeof(packet2));
  12412. mavlink_msg_open_drone_id_self_id_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.description_type , packet1.description );
  12413. mavlink_msg_open_drone_id_self_id_decode(&msg, &packet2);
  12414. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12415. memset(&packet2, 0, sizeof(packet2));
  12416. mavlink_msg_open_drone_id_self_id_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.description_type , packet1.description );
  12417. mavlink_msg_open_drone_id_self_id_decode(&msg, &packet2);
  12418. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12419. memset(&packet2, 0, sizeof(packet2));
  12420. mavlink_msg_to_send_buffer(buffer, &msg);
  12421. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12422. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12423. }
  12424. mavlink_msg_open_drone_id_self_id_decode(last_msg, &packet2);
  12425. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12426. memset(&packet2, 0, sizeof(packet2));
  12427. mavlink_msg_open_drone_id_self_id_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.description_type , packet1.description );
  12428. mavlink_msg_open_drone_id_self_id_decode(last_msg, &packet2);
  12429. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12430. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12431. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_SELF_ID") != NULL);
  12432. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_SELF_ID) != NULL);
  12433. #endif
  12434. }
  12435. static void mavlink_test_open_drone_id_system(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12436. {
  12437. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12438. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12439. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM >= 256) {
  12440. return;
  12441. }
  12442. #endif
  12443. mavlink_message_t msg;
  12444. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12445. uint16_t i;
  12446. mavlink_open_drone_id_system_t packet_in = {
  12447. 963497464,963497672,73.0,101.0,129.0,963498504,18483,18587,89,156,{ 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242 },27,94,161,228
  12448. };
  12449. mavlink_open_drone_id_system_t packet1, packet2;
  12450. memset(&packet1, 0, sizeof(packet1));
  12451. packet1.operator_latitude = packet_in.operator_latitude;
  12452. packet1.operator_longitude = packet_in.operator_longitude;
  12453. packet1.area_ceiling = packet_in.area_ceiling;
  12454. packet1.area_floor = packet_in.area_floor;
  12455. packet1.operator_altitude_geo = packet_in.operator_altitude_geo;
  12456. packet1.timestamp = packet_in.timestamp;
  12457. packet1.area_count = packet_in.area_count;
  12458. packet1.area_radius = packet_in.area_radius;
  12459. packet1.target_system = packet_in.target_system;
  12460. packet1.target_component = packet_in.target_component;
  12461. packet1.operator_location_type = packet_in.operator_location_type;
  12462. packet1.classification_type = packet_in.classification_type;
  12463. packet1.category_eu = packet_in.category_eu;
  12464. packet1.class_eu = packet_in.class_eu;
  12465. mav_array_memcpy(packet1.id_or_mac, packet_in.id_or_mac, sizeof(uint8_t)*20);
  12466. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12467. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12468. // cope with extensions
  12469. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM_MIN_LEN);
  12470. }
  12471. #endif
  12472. memset(&packet2, 0, sizeof(packet2));
  12473. mavlink_msg_open_drone_id_system_encode(system_id, component_id, &msg, &packet1);
  12474. mavlink_msg_open_drone_id_system_decode(&msg, &packet2);
  12475. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12476. memset(&packet2, 0, sizeof(packet2));
  12477. mavlink_msg_open_drone_id_system_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.operator_location_type , packet1.classification_type , packet1.operator_latitude , packet1.operator_longitude , packet1.area_count , packet1.area_radius , packet1.area_ceiling , packet1.area_floor , packet1.category_eu , packet1.class_eu , packet1.operator_altitude_geo , packet1.timestamp );
  12478. mavlink_msg_open_drone_id_system_decode(&msg, &packet2);
  12479. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12480. memset(&packet2, 0, sizeof(packet2));
  12481. mavlink_msg_open_drone_id_system_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.operator_location_type , packet1.classification_type , packet1.operator_latitude , packet1.operator_longitude , packet1.area_count , packet1.area_radius , packet1.area_ceiling , packet1.area_floor , packet1.category_eu , packet1.class_eu , packet1.operator_altitude_geo , packet1.timestamp );
  12482. mavlink_msg_open_drone_id_system_decode(&msg, &packet2);
  12483. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12484. memset(&packet2, 0, sizeof(packet2));
  12485. mavlink_msg_to_send_buffer(buffer, &msg);
  12486. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12487. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12488. }
  12489. mavlink_msg_open_drone_id_system_decode(last_msg, &packet2);
  12490. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12491. memset(&packet2, 0, sizeof(packet2));
  12492. mavlink_msg_open_drone_id_system_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.operator_location_type , packet1.classification_type , packet1.operator_latitude , packet1.operator_longitude , packet1.area_count , packet1.area_radius , packet1.area_ceiling , packet1.area_floor , packet1.category_eu , packet1.class_eu , packet1.operator_altitude_geo , packet1.timestamp );
  12493. mavlink_msg_open_drone_id_system_decode(last_msg, &packet2);
  12494. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12495. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12496. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_SYSTEM") != NULL);
  12497. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM) != NULL);
  12498. #endif
  12499. }
  12500. static void mavlink_test_open_drone_id_operator_id(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12501. {
  12502. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12503. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12504. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_OPERATOR_ID >= 256) {
  12505. return;
  12506. }
  12507. #endif
  12508. mavlink_message_t msg;
  12509. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12510. uint16_t i;
  12511. mavlink_open_drone_id_operator_id_t packet_in = {
  12512. 5,72,{ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158 },199,"XYZABCDEFGHIJKLMNOP"
  12513. };
  12514. mavlink_open_drone_id_operator_id_t packet1, packet2;
  12515. memset(&packet1, 0, sizeof(packet1));
  12516. packet1.target_system = packet_in.target_system;
  12517. packet1.target_component = packet_in.target_component;
  12518. packet1.operator_id_type = packet_in.operator_id_type;
  12519. mav_array_memcpy(packet1.id_or_mac, packet_in.id_or_mac, sizeof(uint8_t)*20);
  12520. mav_array_memcpy(packet1.operator_id, packet_in.operator_id, sizeof(char)*20);
  12521. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12522. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12523. // cope with extensions
  12524. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_OPERATOR_ID_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_OPERATOR_ID_MIN_LEN);
  12525. }
  12526. #endif
  12527. memset(&packet2, 0, sizeof(packet2));
  12528. mavlink_msg_open_drone_id_operator_id_encode(system_id, component_id, &msg, &packet1);
  12529. mavlink_msg_open_drone_id_operator_id_decode(&msg, &packet2);
  12530. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12531. memset(&packet2, 0, sizeof(packet2));
  12532. mavlink_msg_open_drone_id_operator_id_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.operator_id_type , packet1.operator_id );
  12533. mavlink_msg_open_drone_id_operator_id_decode(&msg, &packet2);
  12534. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12535. memset(&packet2, 0, sizeof(packet2));
  12536. mavlink_msg_open_drone_id_operator_id_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.operator_id_type , packet1.operator_id );
  12537. mavlink_msg_open_drone_id_operator_id_decode(&msg, &packet2);
  12538. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12539. memset(&packet2, 0, sizeof(packet2));
  12540. mavlink_msg_to_send_buffer(buffer, &msg);
  12541. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12542. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12543. }
  12544. mavlink_msg_open_drone_id_operator_id_decode(last_msg, &packet2);
  12545. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12546. memset(&packet2, 0, sizeof(packet2));
  12547. mavlink_msg_open_drone_id_operator_id_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.operator_id_type , packet1.operator_id );
  12548. mavlink_msg_open_drone_id_operator_id_decode(last_msg, &packet2);
  12549. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12550. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12551. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_OPERATOR_ID") != NULL);
  12552. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_OPERATOR_ID) != NULL);
  12553. #endif
  12554. }
  12555. static void mavlink_test_open_drone_id_message_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12556. {
  12557. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12558. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12559. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_MESSAGE_PACK >= 256) {
  12560. return;
  12561. }
  12562. #endif
  12563. mavlink_message_t msg;
  12564. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12565. uint16_t i;
  12566. mavlink_open_drone_id_message_pack_t packet_in = {
  12567. 5,72,{ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158 },199,10,{ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 }
  12568. };
  12569. mavlink_open_drone_id_message_pack_t packet1, packet2;
  12570. memset(&packet1, 0, sizeof(packet1));
  12571. packet1.target_system = packet_in.target_system;
  12572. packet1.target_component = packet_in.target_component;
  12573. packet1.single_message_size = packet_in.single_message_size;
  12574. packet1.msg_pack_size = packet_in.msg_pack_size;
  12575. mav_array_memcpy(packet1.id_or_mac, packet_in.id_or_mac, sizeof(uint8_t)*20);
  12576. mav_array_memcpy(packet1.messages, packet_in.messages, sizeof(uint8_t)*225);
  12577. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12578. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12579. // cope with extensions
  12580. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_MESSAGE_PACK_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_MESSAGE_PACK_MIN_LEN);
  12581. }
  12582. #endif
  12583. memset(&packet2, 0, sizeof(packet2));
  12584. mavlink_msg_open_drone_id_message_pack_encode(system_id, component_id, &msg, &packet1);
  12585. mavlink_msg_open_drone_id_message_pack_decode(&msg, &packet2);
  12586. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12587. memset(&packet2, 0, sizeof(packet2));
  12588. mavlink_msg_open_drone_id_message_pack_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.single_message_size , packet1.msg_pack_size , packet1.messages );
  12589. mavlink_msg_open_drone_id_message_pack_decode(&msg, &packet2);
  12590. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12591. memset(&packet2, 0, sizeof(packet2));
  12592. mavlink_msg_open_drone_id_message_pack_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.single_message_size , packet1.msg_pack_size , packet1.messages );
  12593. mavlink_msg_open_drone_id_message_pack_decode(&msg, &packet2);
  12594. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12595. memset(&packet2, 0, sizeof(packet2));
  12596. mavlink_msg_to_send_buffer(buffer, &msg);
  12597. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12598. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12599. }
  12600. mavlink_msg_open_drone_id_message_pack_decode(last_msg, &packet2);
  12601. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12602. memset(&packet2, 0, sizeof(packet2));
  12603. mavlink_msg_open_drone_id_message_pack_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.id_or_mac , packet1.single_message_size , packet1.msg_pack_size , packet1.messages );
  12604. mavlink_msg_open_drone_id_message_pack_decode(last_msg, &packet2);
  12605. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12606. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12607. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_MESSAGE_PACK") != NULL);
  12608. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_MESSAGE_PACK) != NULL);
  12609. #endif
  12610. }
  12611. static void mavlink_test_open_drone_id_arm_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12612. {
  12613. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12614. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12615. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_ARM_STATUS >= 256) {
  12616. return;
  12617. }
  12618. #endif
  12619. mavlink_message_t msg;
  12620. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12621. uint16_t i;
  12622. mavlink_open_drone_id_arm_status_t packet_in = {
  12623. 5,"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX"
  12624. };
  12625. mavlink_open_drone_id_arm_status_t packet1, packet2;
  12626. memset(&packet1, 0, sizeof(packet1));
  12627. packet1.status = packet_in.status;
  12628. mav_array_memcpy(packet1.error, packet_in.error, sizeof(char)*50);
  12629. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12630. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12631. // cope with extensions
  12632. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_ARM_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_ARM_STATUS_MIN_LEN);
  12633. }
  12634. #endif
  12635. memset(&packet2, 0, sizeof(packet2));
  12636. mavlink_msg_open_drone_id_arm_status_encode(system_id, component_id, &msg, &packet1);
  12637. mavlink_msg_open_drone_id_arm_status_decode(&msg, &packet2);
  12638. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12639. memset(&packet2, 0, sizeof(packet2));
  12640. mavlink_msg_open_drone_id_arm_status_pack(system_id, component_id, &msg , packet1.status , packet1.error );
  12641. mavlink_msg_open_drone_id_arm_status_decode(&msg, &packet2);
  12642. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12643. memset(&packet2, 0, sizeof(packet2));
  12644. mavlink_msg_open_drone_id_arm_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.status , packet1.error );
  12645. mavlink_msg_open_drone_id_arm_status_decode(&msg, &packet2);
  12646. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12647. memset(&packet2, 0, sizeof(packet2));
  12648. mavlink_msg_to_send_buffer(buffer, &msg);
  12649. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12650. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12651. }
  12652. mavlink_msg_open_drone_id_arm_status_decode(last_msg, &packet2);
  12653. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12654. memset(&packet2, 0, sizeof(packet2));
  12655. mavlink_msg_open_drone_id_arm_status_send(MAVLINK_COMM_1 , packet1.status , packet1.error );
  12656. mavlink_msg_open_drone_id_arm_status_decode(last_msg, &packet2);
  12657. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12658. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12659. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_ARM_STATUS") != NULL);
  12660. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_ARM_STATUS) != NULL);
  12661. #endif
  12662. }
  12663. static void mavlink_test_open_drone_id_system_update(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12664. {
  12665. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12666. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12667. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM_UPDATE >= 256) {
  12668. return;
  12669. }
  12670. #endif
  12671. mavlink_message_t msg;
  12672. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12673. uint16_t i;
  12674. mavlink_open_drone_id_system_update_t packet_in = {
  12675. 963497464,963497672,73.0,963498088,53,120
  12676. };
  12677. mavlink_open_drone_id_system_update_t packet1, packet2;
  12678. memset(&packet1, 0, sizeof(packet1));
  12679. packet1.operator_latitude = packet_in.operator_latitude;
  12680. packet1.operator_longitude = packet_in.operator_longitude;
  12681. packet1.operator_altitude_geo = packet_in.operator_altitude_geo;
  12682. packet1.timestamp = packet_in.timestamp;
  12683. packet1.target_system = packet_in.target_system;
  12684. packet1.target_component = packet_in.target_component;
  12685. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12686. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12687. // cope with extensions
  12688. memset(MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM_UPDATE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM_UPDATE_MIN_LEN);
  12689. }
  12690. #endif
  12691. memset(&packet2, 0, sizeof(packet2));
  12692. mavlink_msg_open_drone_id_system_update_encode(system_id, component_id, &msg, &packet1);
  12693. mavlink_msg_open_drone_id_system_update_decode(&msg, &packet2);
  12694. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12695. memset(&packet2, 0, sizeof(packet2));
  12696. mavlink_msg_open_drone_id_system_update_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.operator_latitude , packet1.operator_longitude , packet1.operator_altitude_geo , packet1.timestamp );
  12697. mavlink_msg_open_drone_id_system_update_decode(&msg, &packet2);
  12698. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12699. memset(&packet2, 0, sizeof(packet2));
  12700. mavlink_msg_open_drone_id_system_update_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.operator_latitude , packet1.operator_longitude , packet1.operator_altitude_geo , packet1.timestamp );
  12701. mavlink_msg_open_drone_id_system_update_decode(&msg, &packet2);
  12702. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12703. memset(&packet2, 0, sizeof(packet2));
  12704. mavlink_msg_to_send_buffer(buffer, &msg);
  12705. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12706. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12707. }
  12708. mavlink_msg_open_drone_id_system_update_decode(last_msg, &packet2);
  12709. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12710. memset(&packet2, 0, sizeof(packet2));
  12711. mavlink_msg_open_drone_id_system_update_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.operator_latitude , packet1.operator_longitude , packet1.operator_altitude_geo , packet1.timestamp );
  12712. mavlink_msg_open_drone_id_system_update_decode(last_msg, &packet2);
  12713. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12714. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12715. MAVLINK_ASSERT(mavlink_get_message_info_by_name("OPEN_DRONE_ID_SYSTEM_UPDATE") != NULL);
  12716. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM_UPDATE) != NULL);
  12717. #endif
  12718. }
  12719. static void mavlink_test_hygrometer_sensor(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12720. {
  12721. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12722. mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
  12723. if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HYGROMETER_SENSOR >= 256) {
  12724. return;
  12725. }
  12726. #endif
  12727. mavlink_message_t msg;
  12728. uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
  12729. uint16_t i;
  12730. mavlink_hygrometer_sensor_t packet_in = {
  12731. 17235,17339,17
  12732. };
  12733. mavlink_hygrometer_sensor_t packet1, packet2;
  12734. memset(&packet1, 0, sizeof(packet1));
  12735. packet1.temperature = packet_in.temperature;
  12736. packet1.humidity = packet_in.humidity;
  12737. packet1.id = packet_in.id;
  12738. #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
  12739. if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
  12740. // cope with extensions
  12741. memset(MAVLINK_MSG_ID_HYGROMETER_SENSOR_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HYGROMETER_SENSOR_MIN_LEN);
  12742. }
  12743. #endif
  12744. memset(&packet2, 0, sizeof(packet2));
  12745. mavlink_msg_hygrometer_sensor_encode(system_id, component_id, &msg, &packet1);
  12746. mavlink_msg_hygrometer_sensor_decode(&msg, &packet2);
  12747. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12748. memset(&packet2, 0, sizeof(packet2));
  12749. mavlink_msg_hygrometer_sensor_pack(system_id, component_id, &msg , packet1.id , packet1.temperature , packet1.humidity );
  12750. mavlink_msg_hygrometer_sensor_decode(&msg, &packet2);
  12751. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12752. memset(&packet2, 0, sizeof(packet2));
  12753. mavlink_msg_hygrometer_sensor_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.id , packet1.temperature , packet1.humidity );
  12754. mavlink_msg_hygrometer_sensor_decode(&msg, &packet2);
  12755. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12756. memset(&packet2, 0, sizeof(packet2));
  12757. mavlink_msg_to_send_buffer(buffer, &msg);
  12758. for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
  12759. comm_send_ch(MAVLINK_COMM_0, buffer[i]);
  12760. }
  12761. mavlink_msg_hygrometer_sensor_decode(last_msg, &packet2);
  12762. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12763. memset(&packet2, 0, sizeof(packet2));
  12764. mavlink_msg_hygrometer_sensor_send(MAVLINK_COMM_1 , packet1.id , packet1.temperature , packet1.humidity );
  12765. mavlink_msg_hygrometer_sensor_decode(last_msg, &packet2);
  12766. MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
  12767. #ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
  12768. MAVLINK_ASSERT(mavlink_get_message_info_by_name("HYGROMETER_SENSOR") != NULL);
  12769. MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_HYGROMETER_SENSOR) != NULL);
  12770. #endif
  12771. }
  12772. static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
  12773. {
  12774. mavlink_test_sys_status(system_id, component_id, last_msg);
  12775. mavlink_test_system_time(system_id, component_id, last_msg);
  12776. mavlink_test_ping(system_id, component_id, last_msg);
  12777. mavlink_test_change_operator_control(system_id, component_id, last_msg);
  12778. mavlink_test_change_operator_control_ack(system_id, component_id, last_msg);
  12779. mavlink_test_auth_key(system_id, component_id, last_msg);
  12780. mavlink_test_link_node_status(system_id, component_id, last_msg);
  12781. mavlink_test_set_mode(system_id, component_id, last_msg);
  12782. mavlink_test_param_request_read(system_id, component_id, last_msg);
  12783. mavlink_test_param_request_list(system_id, component_id, last_msg);
  12784. mavlink_test_param_value(system_id, component_id, last_msg);
  12785. mavlink_test_param_set(system_id, component_id, last_msg);
  12786. mavlink_test_gps_raw_int(system_id, component_id, last_msg);
  12787. mavlink_test_gps_status(system_id, component_id, last_msg);
  12788. mavlink_test_scaled_imu(system_id, component_id, last_msg);
  12789. mavlink_test_raw_imu(system_id, component_id, last_msg);
  12790. mavlink_test_raw_pressure(system_id, component_id, last_msg);
  12791. mavlink_test_scaled_pressure(system_id, component_id, last_msg);
  12792. mavlink_test_attitude(system_id, component_id, last_msg);
  12793. mavlink_test_attitude_quaternion(system_id, component_id, last_msg);
  12794. mavlink_test_local_position_ned(system_id, component_id, last_msg);
  12795. mavlink_test_global_position_int(system_id, component_id, last_msg);
  12796. mavlink_test_rc_channels_scaled(system_id, component_id, last_msg);
  12797. mavlink_test_rc_channels_raw(system_id, component_id, last_msg);
  12798. mavlink_test_servo_output_raw(system_id, component_id, last_msg);
  12799. mavlink_test_mission_request_partial_list(system_id, component_id, last_msg);
  12800. mavlink_test_mission_write_partial_list(system_id, component_id, last_msg);
  12801. mavlink_test_mission_item(system_id, component_id, last_msg);
  12802. mavlink_test_mission_request(system_id, component_id, last_msg);
  12803. mavlink_test_mission_set_current(system_id, component_id, last_msg);
  12804. mavlink_test_mission_current(system_id, component_id, last_msg);
  12805. mavlink_test_mission_request_list(system_id, component_id, last_msg);
  12806. mavlink_test_mission_count(system_id, component_id, last_msg);
  12807. mavlink_test_mission_clear_all(system_id, component_id, last_msg);
  12808. mavlink_test_mission_item_reached(system_id, component_id, last_msg);
  12809. mavlink_test_mission_ack(system_id, component_id, last_msg);
  12810. mavlink_test_set_gps_global_origin(system_id, component_id, last_msg);
  12811. mavlink_test_gps_global_origin(system_id, component_id, last_msg);
  12812. mavlink_test_param_map_rc(system_id, component_id, last_msg);
  12813. mavlink_test_mission_request_int(system_id, component_id, last_msg);
  12814. mavlink_test_safety_set_allowed_area(system_id, component_id, last_msg);
  12815. mavlink_test_safety_allowed_area(system_id, component_id, last_msg);
  12816. mavlink_test_attitude_quaternion_cov(system_id, component_id, last_msg);
  12817. mavlink_test_nav_controller_output(system_id, component_id, last_msg);
  12818. mavlink_test_global_position_int_cov(system_id, component_id, last_msg);
  12819. mavlink_test_local_position_ned_cov(system_id, component_id, last_msg);
  12820. mavlink_test_rc_channels(system_id, component_id, last_msg);
  12821. mavlink_test_request_data_stream(system_id, component_id, last_msg);
  12822. mavlink_test_data_stream(system_id, component_id, last_msg);
  12823. mavlink_test_manual_control(system_id, component_id, last_msg);
  12824. mavlink_test_rc_channels_override(system_id, component_id, last_msg);
  12825. mavlink_test_mission_item_int(system_id, component_id, last_msg);
  12826. mavlink_test_vfr_hud(system_id, component_id, last_msg);
  12827. mavlink_test_command_int(system_id, component_id, last_msg);
  12828. mavlink_test_command_long(system_id, component_id, last_msg);
  12829. mavlink_test_command_ack(system_id, component_id, last_msg);
  12830. mavlink_test_command_cancel(system_id, component_id, last_msg);
  12831. mavlink_test_manual_setpoint(system_id, component_id, last_msg);
  12832. mavlink_test_set_attitude_target(system_id, component_id, last_msg);
  12833. mavlink_test_attitude_target(system_id, component_id, last_msg);
  12834. mavlink_test_set_position_target_local_ned(system_id, component_id, last_msg);
  12835. mavlink_test_position_target_local_ned(system_id, component_id, last_msg);
  12836. mavlink_test_set_position_target_global_int(system_id, component_id, last_msg);
  12837. mavlink_test_position_target_global_int(system_id, component_id, last_msg);
  12838. mavlink_test_local_position_ned_system_global_offset(system_id, component_id, last_msg);
  12839. mavlink_test_hil_state(system_id, component_id, last_msg);
  12840. mavlink_test_hil_controls(system_id, component_id, last_msg);
  12841. mavlink_test_hil_rc_inputs_raw(system_id, component_id, last_msg);
  12842. mavlink_test_hil_actuator_controls(system_id, component_id, last_msg);
  12843. mavlink_test_optical_flow(system_id, component_id, last_msg);
  12844. mavlink_test_global_vision_position_estimate(system_id, component_id, last_msg);
  12845. mavlink_test_vision_position_estimate(system_id, component_id, last_msg);
  12846. mavlink_test_vision_speed_estimate(system_id, component_id, last_msg);
  12847. mavlink_test_vicon_position_estimate(system_id, component_id, last_msg);
  12848. mavlink_test_highres_imu(system_id, component_id, last_msg);
  12849. mavlink_test_optical_flow_rad(system_id, component_id, last_msg);
  12850. mavlink_test_hil_sensor(system_id, component_id, last_msg);
  12851. mavlink_test_sim_state(system_id, component_id, last_msg);
  12852. mavlink_test_radio_status(system_id, component_id, last_msg);
  12853. mavlink_test_file_transfer_protocol(system_id, component_id, last_msg);
  12854. mavlink_test_timesync(system_id, component_id, last_msg);
  12855. mavlink_test_camera_trigger(system_id, component_id, last_msg);
  12856. mavlink_test_hil_gps(system_id, component_id, last_msg);
  12857. mavlink_test_hil_optical_flow(system_id, component_id, last_msg);
  12858. mavlink_test_hil_state_quaternion(system_id, component_id, last_msg);
  12859. mavlink_test_scaled_imu2(system_id, component_id, last_msg);
  12860. mavlink_test_log_request_list(system_id, component_id, last_msg);
  12861. mavlink_test_log_entry(system_id, component_id, last_msg);
  12862. mavlink_test_log_request_data(system_id, component_id, last_msg);
  12863. mavlink_test_log_data(system_id, component_id, last_msg);
  12864. mavlink_test_log_erase(system_id, component_id, last_msg);
  12865. mavlink_test_log_request_end(system_id, component_id, last_msg);
  12866. mavlink_test_gps_inject_data(system_id, component_id, last_msg);
  12867. mavlink_test_gps2_raw(system_id, component_id, last_msg);
  12868. mavlink_test_power_status(system_id, component_id, last_msg);
  12869. mavlink_test_serial_control(system_id, component_id, last_msg);
  12870. mavlink_test_gps_rtk(system_id, component_id, last_msg);
  12871. mavlink_test_gps2_rtk(system_id, component_id, last_msg);
  12872. mavlink_test_scaled_imu3(system_id, component_id, last_msg);
  12873. mavlink_test_data_transmission_handshake(system_id, component_id, last_msg);
  12874. mavlink_test_encapsulated_data(system_id, component_id, last_msg);
  12875. mavlink_test_distance_sensor(system_id, component_id, last_msg);
  12876. mavlink_test_terrain_request(system_id, component_id, last_msg);
  12877. mavlink_test_terrain_data(system_id, component_id, last_msg);
  12878. mavlink_test_terrain_check(system_id, component_id, last_msg);
  12879. mavlink_test_terrain_report(system_id, component_id, last_msg);
  12880. mavlink_test_scaled_pressure2(system_id, component_id, last_msg);
  12881. mavlink_test_att_pos_mocap(system_id, component_id, last_msg);
  12882. mavlink_test_set_actuator_control_target(system_id, component_id, last_msg);
  12883. mavlink_test_actuator_control_target(system_id, component_id, last_msg);
  12884. mavlink_test_altitude(system_id, component_id, last_msg);
  12885. mavlink_test_resource_request(system_id, component_id, last_msg);
  12886. mavlink_test_scaled_pressure3(system_id, component_id, last_msg);
  12887. mavlink_test_follow_target(system_id, component_id, last_msg);
  12888. mavlink_test_control_system_state(system_id, component_id, last_msg);
  12889. mavlink_test_battery_status(system_id, component_id, last_msg);
  12890. mavlink_test_autopilot_version(system_id, component_id, last_msg);
  12891. mavlink_test_landing_target(system_id, component_id, last_msg);
  12892. mavlink_test_fence_status(system_id, component_id, last_msg);
  12893. mavlink_test_mag_cal_report(system_id, component_id, last_msg);
  12894. mavlink_test_efi_status(system_id, component_id, last_msg);
  12895. mavlink_test_estimator_status(system_id, component_id, last_msg);
  12896. mavlink_test_wind_cov(system_id, component_id, last_msg);
  12897. mavlink_test_gps_input(system_id, component_id, last_msg);
  12898. mavlink_test_gps_rtcm_data(system_id, component_id, last_msg);
  12899. mavlink_test_high_latency(system_id, component_id, last_msg);
  12900. mavlink_test_high_latency2(system_id, component_id, last_msg);
  12901. mavlink_test_vibration(system_id, component_id, last_msg);
  12902. mavlink_test_home_position(system_id, component_id, last_msg);
  12903. mavlink_test_set_home_position(system_id, component_id, last_msg);
  12904. mavlink_test_message_interval(system_id, component_id, last_msg);
  12905. mavlink_test_extended_sys_state(system_id, component_id, last_msg);
  12906. mavlink_test_adsb_vehicle(system_id, component_id, last_msg);
  12907. mavlink_test_collision(system_id, component_id, last_msg);
  12908. mavlink_test_v2_extension(system_id, component_id, last_msg);
  12909. mavlink_test_memory_vect(system_id, component_id, last_msg);
  12910. mavlink_test_debug_vect(system_id, component_id, last_msg);
  12911. mavlink_test_named_value_float(system_id, component_id, last_msg);
  12912. mavlink_test_named_value_int(system_id, component_id, last_msg);
  12913. mavlink_test_statustext(system_id, component_id, last_msg);
  12914. mavlink_test_debug(system_id, component_id, last_msg);
  12915. mavlink_test_setup_signing(system_id, component_id, last_msg);
  12916. mavlink_test_button_change(system_id, component_id, last_msg);
  12917. mavlink_test_play_tune(system_id, component_id, last_msg);
  12918. mavlink_test_camera_information(system_id, component_id, last_msg);
  12919. mavlink_test_camera_settings(system_id, component_id, last_msg);
  12920. mavlink_test_storage_information(system_id, component_id, last_msg);
  12921. mavlink_test_camera_capture_status(system_id, component_id, last_msg);
  12922. mavlink_test_camera_image_captured(system_id, component_id, last_msg);
  12923. mavlink_test_flight_information(system_id, component_id, last_msg);
  12924. mavlink_test_mount_orientation(system_id, component_id, last_msg);
  12925. mavlink_test_logging_data(system_id, component_id, last_msg);
  12926. mavlink_test_logging_data_acked(system_id, component_id, last_msg);
  12927. mavlink_test_logging_ack(system_id, component_id, last_msg);
  12928. mavlink_test_video_stream_information(system_id, component_id, last_msg);
  12929. mavlink_test_video_stream_status(system_id, component_id, last_msg);
  12930. mavlink_test_camera_fov_status(system_id, component_id, last_msg);
  12931. mavlink_test_camera_tracking_image_status(system_id, component_id, last_msg);
  12932. mavlink_test_camera_tracking_geo_status(system_id, component_id, last_msg);
  12933. mavlink_test_gimbal_manager_information(system_id, component_id, last_msg);
  12934. mavlink_test_gimbal_manager_status(system_id, component_id, last_msg);
  12935. mavlink_test_gimbal_manager_set_attitude(system_id, component_id, last_msg);
  12936. mavlink_test_gimbal_device_information(system_id, component_id, last_msg);
  12937. mavlink_test_gimbal_device_set_attitude(system_id, component_id, last_msg);
  12938. mavlink_test_gimbal_device_attitude_status(system_id, component_id, last_msg);
  12939. mavlink_test_autopilot_state_for_gimbal_device(system_id, component_id, last_msg);
  12940. mavlink_test_gimbal_manager_set_pitchyaw(system_id, component_id, last_msg);
  12941. mavlink_test_gimbal_manager_set_manual_control(system_id, component_id, last_msg);
  12942. mavlink_test_esc_info(system_id, component_id, last_msg);
  12943. mavlink_test_esc_status(system_id, component_id, last_msg);
  12944. mavlink_test_wifi_config_ap(system_id, component_id, last_msg);
  12945. mavlink_test_ais_vessel(system_id, component_id, last_msg);
  12946. mavlink_test_uavcan_node_status(system_id, component_id, last_msg);
  12947. mavlink_test_uavcan_node_info(system_id, component_id, last_msg);
  12948. mavlink_test_param_ext_request_read(system_id, component_id, last_msg);
  12949. mavlink_test_param_ext_request_list(system_id, component_id, last_msg);
  12950. mavlink_test_param_ext_value(system_id, component_id, last_msg);
  12951. mavlink_test_param_ext_set(system_id, component_id, last_msg);
  12952. mavlink_test_param_ext_ack(system_id, component_id, last_msg);
  12953. mavlink_test_obstacle_distance(system_id, component_id, last_msg);
  12954. mavlink_test_odometry(system_id, component_id, last_msg);
  12955. mavlink_test_trajectory_representation_waypoints(system_id, component_id, last_msg);
  12956. mavlink_test_trajectory_representation_bezier(system_id, component_id, last_msg);
  12957. mavlink_test_cellular_status(system_id, component_id, last_msg);
  12958. mavlink_test_isbd_link_status(system_id, component_id, last_msg);
  12959. mavlink_test_cellular_config(system_id, component_id, last_msg);
  12960. mavlink_test_raw_rpm(system_id, component_id, last_msg);
  12961. mavlink_test_utm_global_position(system_id, component_id, last_msg);
  12962. mavlink_test_debug_float_array(system_id, component_id, last_msg);
  12963. mavlink_test_orbit_execution_status(system_id, component_id, last_msg);
  12964. mavlink_test_battery_info(system_id, component_id, last_msg);
  12965. mavlink_test_generator_status(system_id, component_id, last_msg);
  12966. mavlink_test_actuator_output_status(system_id, component_id, last_msg);
  12967. mavlink_test_time_estimate_to_target(system_id, component_id, last_msg);
  12968. mavlink_test_tunnel(system_id, component_id, last_msg);
  12969. mavlink_test_can_frame(system_id, component_id, last_msg);
  12970. mavlink_test_onboard_computer_status(system_id, component_id, last_msg);
  12971. mavlink_test_component_information(system_id, component_id, last_msg);
  12972. mavlink_test_component_metadata(system_id, component_id, last_msg);
  12973. mavlink_test_play_tune_v2(system_id, component_id, last_msg);
  12974. mavlink_test_supported_tunes(system_id, component_id, last_msg);
  12975. mavlink_test_event(system_id, component_id, last_msg);
  12976. mavlink_test_current_event_sequence(system_id, component_id, last_msg);
  12977. mavlink_test_request_event(system_id, component_id, last_msg);
  12978. mavlink_test_response_event_error(system_id, component_id, last_msg);
  12979. mavlink_test_canfd_frame(system_id, component_id, last_msg);
  12980. mavlink_test_can_filter_modify(system_id, component_id, last_msg);
  12981. mavlink_test_wheel_distance(system_id, component_id, last_msg);
  12982. mavlink_test_winch_status(system_id, component_id, last_msg);
  12983. mavlink_test_open_drone_id_basic_id(system_id, component_id, last_msg);
  12984. mavlink_test_open_drone_id_location(system_id, component_id, last_msg);
  12985. mavlink_test_open_drone_id_authentication(system_id, component_id, last_msg);
  12986. mavlink_test_open_drone_id_self_id(system_id, component_id, last_msg);
  12987. mavlink_test_open_drone_id_system(system_id, component_id, last_msg);
  12988. mavlink_test_open_drone_id_operator_id(system_id, component_id, last_msg);
  12989. mavlink_test_open_drone_id_message_pack(system_id, component_id, last_msg);
  12990. mavlink_test_open_drone_id_arm_status(system_id, component_id, last_msg);
  12991. mavlink_test_open_drone_id_system_update(system_id, component_id, last_msg);
  12992. mavlink_test_hygrometer_sensor(system_id, component_id, last_msg);
  12993. }
  12994. #ifdef __cplusplus
  12995. }
  12996. #endif // __cplusplus
  12997. #endif // COMMON_TESTSUITE_H