final Changes
This commit is contained in:
parent
30dbab7342
commit
e64477b9f0
@ -15,9 +15,7 @@ target_sources(app PRIVATE
|
||||
src/lora/encryption.c
|
||||
src/lora/lora.c
|
||||
src/master/master.c
|
||||
src/utils/buttons.c
|
||||
src/utils/displayController.c
|
||||
src/utils/leds.c
|
||||
)
|
||||
|
||||
if(CONFIG_SLAVE_DISPLAY_TYPE STREQUAL "EPD")
|
||||
|
171
Messergebnisse/AnalyseSynchro.csv
Normal file
171
Messergebnisse/AnalyseSynchro.csv
Normal file
@ -0,0 +1,171 @@
|
||||
# time,JS220-003433.i,JS220-003433.v,JS220-003433.0
|
||||
0.000000000000000000e+00,1.088575273752212524e-02,3.283535957336425781e+00,0.000000000000000000e+00
|
||||
3.100024349987506866e-02,1.088657975196838379e-02,3.283558130264282227e+00,0.000000000000000000e+00
|
||||
6.200048699975013733e-02,1.089030504226684570e-02,3.283548355102539062e+00,0.000000000000000000e+00
|
||||
9.300073049962520599e-02,1.088734716176986694e-02,3.283547163009643555e+00,0.000000000000000000e+00
|
||||
1.240009739995002747e-01,1.088740769773721695e-02,3.283510684967041016e+00,0.000000000000000000e+00
|
||||
1.550012184306979179e-01,1.088784821331501007e-02,3.283457040786743164e+00,0.000000000000000000e+00
|
||||
1.860014619305729866e-01,1.088787522166967392e-02,3.283461093902587891e+00,0.000000000000000000e+00
|
||||
2.170017054304480553e-01,1.088702678680419922e-02,3.283497571945190430e+00,0.000000000000000000e+00
|
||||
2.480019489303231239e-01,1.088863611221313477e-02,3.283504009246826172e+00,0.000000000000000000e+00
|
||||
2.790021924301981926e-01,1.088829617947340012e-02,3.283492088317871094e+00,0.000000000000000000e+00
|
||||
3.100024359300732613e-01,1.088850945234298706e-02,3.283528804779052734e+00,0.000000000000000000e+00
|
||||
3.410026794299483299e-01,1.088852435350418091e-02,3.283512115478515625e+00,0.000000000000000000e+00
|
||||
3.720029229298233986e-01,1.088877487927675247e-02,3.283501148223876953e+00,0.000000000000000000e+00
|
||||
4.030031664296984673e-01,1.088894065469503403e-02,3.283504009246826172e+00,0.000000000000000000e+00
|
||||
4.340034099295735359e-01,1.088921166956424713e-02,3.283547401428222656e+00,0.000000000000000000e+00
|
||||
4.650036534294486046e-01,1.088836137205362320e-02,3.283543825149536133e+00,0.000000000000000000e+00
|
||||
4.960038969293236732e-01,1.088818907737731934e-02,3.283533573150634766e+00,0.000000000000000000e+00
|
||||
5.270041404291987419e-01,1.088909618556499481e-02,3.283546209335327148e+00,0.000000000000000000e+00
|
||||
5.580043839290738106e-01,1.088921818882226944e-02,3.283520221710205078e+00,0.000000000000000000e+00
|
||||
5.890046274289488792e-01,1.088955439627170563e-02,3.283482551574707031e+00,0.000000000000000000e+00
|
||||
6.200048709288239479e-01,1.088952366262674332e-02,3.283489227294921875e+00,0.000000000000000000e+00
|
||||
6.510051153600215912e-01,1.089050807058811188e-02,3.283539295196533203e+00,0.000000000000000000e+00
|
||||
6.820053588598966599e-01,1.088955719023942947e-02,3.283536672592163086e+00,0.000000000000000000e+00
|
||||
7.130056023597717285e-01,1.088994834572076797e-02,3.283544778823852539e+00,0.000000000000000000e+00
|
||||
7.440058458596467972e-01,1.089076045900583267e-02,3.283540010452270508e+00,0.000000000000000000e+00
|
||||
7.750060893595218658e-01,1.089152134954929352e-02,3.283497095108032227e+00,0.000000000000000000e+00
|
||||
8.060063328593969345e-01,1.089132670313119888e-02,3.283509492874145508e+00,0.000000000000000000e+00
|
||||
8.370065763592720032e-01,1.089126709848642349e-02,3.283481359481811523e+00,0.000000000000000000e+00
|
||||
8.680068198591470718e-01,1.089065708220005035e-02,3.283473491668701172e+00,0.000000000000000000e+00
|
||||
8.990070633590221405e-01,1.089136488735675812e-02,3.283471107482910156e+00,0.000000000000000000e+00
|
||||
9.300073068588972092e-01,1.089163403958082199e-02,3.283473730087280273e+00,0.000000000000000000e+00
|
||||
9.610075503587722778e-01,1.089231017976999283e-02,3.283529758453369141e+00,0.000000000000000000e+00
|
||||
9.920077938586473465e-01,1.089192461222410202e-02,3.283500671386718750e+00,0.000000000000000000e+00
|
||||
1.023008037358522415e+00,1.089240983128547668e-02,3.283480882644653320e+00,0.000000000000000000e+00
|
||||
1.054008280858397484e+00,1.089123450219631195e-02,3.283433198928833008e+00,0.000000000000000000e+00
|
||||
1.085008524358272552e+00,1.089635305106639862e-02,3.283486366271972656e+00,0.000000000000000000e+00
|
||||
1.116008767858147621e+00,1.089172437787055969e-02,3.283500671386718750e+00,0.000000000000000000e+00
|
||||
1.147009012289345264e+00,1.089186314493417740e-02,3.283495903015136719e+00,0.000000000000000000e+00
|
||||
1.178009255789220333e+00,1.089187525212764740e-02,3.283484458923339844e+00,0.000000000000000000e+00
|
||||
1.209009499289095402e+00,1.089289225637912750e-02,3.283458232879638672e+00,0.000000000000000000e+00
|
||||
1.240009742788970470e+00,1.089348271489143372e-02,3.283427238464355469e+00,0.000000000000000000e+00
|
||||
1.271009986288845539e+00,1.089230924844741821e-02,3.283392906188964844e+00,0.000000000000000000e+00
|
||||
1.302010229788720608e+00,1.089327689260244370e-02,3.283442735671997070e+00,0.000000000000000000e+00
|
||||
1.333010473288595676e+00,1.089236792176961899e-02,3.283485174179077148e+00,0.000000000000000000e+00
|
||||
1.364010716788470745e+00,1.089299842715263367e-02,3.283463954925537109e+00,0.000000000000000000e+00
|
||||
1.395010960288345814e+00,1.089378912001848221e-02,3.283463478088378906e+00,0.000000000000000000e+00
|
||||
1.426011203788220882e+00,1.089506596326828003e-02,3.283455371856689453e+00,0.000000000000000000e+00
|
||||
1.457011447288095951e+00,1.089400239288806915e-02,3.283437967300415039e+00,0.000000000000000000e+00
|
||||
1.489011699333786964e+00,1.089407410472631454e-02,3.283479452133178711e+00,0.000000000000000000e+00
|
||||
1.520011942833662033e+00,1.089440565556287766e-02,3.283493280410766602e+00,0.000000000000000000e+00
|
||||
1.551012186333537102e+00,1.089466735720634460e-02,3.283500671386718750e+00,0.000000000000000000e+00
|
||||
1.582012429833412170e+00,1.089468225836753845e-02,3.283492565155029297e+00,0.000000000000000000e+00
|
||||
1.613012673333287239e+00,1.089474372565746307e-02,3.283497810363769531e+00,0.000000000000000000e+00
|
||||
1.644012916833162308e+00,1.089502498507499695e-02,3.283473730087280273e+00,0.000000000000000000e+00
|
||||
1.675013160333037376e+00,1.089501939713954926e-02,3.283443689346313477e+00,0.000000000000000000e+00
|
||||
1.706013403832912445e+00,1.089549995958805084e-02,3.283416986465454102e+00,0.000000000000000000e+00
|
||||
1.737013647332787514e+00,1.089506316930055618e-02,3.283492088317871094e+00,0.000000000000000000e+00
|
||||
1.768013890832662582e+00,1.089642941951751709e-02,3.283482551574707031e+00,0.000000000000000000e+00
|
||||
1.799014134332537651e+00,1.089499332010746002e-02,3.283529281616210938e+00,0.000000000000000000e+00
|
||||
1.830014377832412720e+00,1.089607924222946167e-02,3.283516407012939453e+00,0.000000000000000000e+00
|
||||
1.861014621332287788e+00,1.089646294713020325e-02,3.283516168594360352e+00,0.000000000000000000e+00
|
||||
1.892014864832162857e+00,1.089682430028915405e-02,3.283489942550659180e+00,0.000000000000000000e+00
|
||||
1.923015108332037926e+00,1.089561358094215393e-02,3.283513307571411133e+00,0.000000000000000000e+00
|
||||
1.954015351831912994e+00,1.089513394981622696e-02,3.283502101898193359e+00,0.000000000000000000e+00
|
||||
1.985015596263110638e+00,1.089584454894065857e-02,3.283508300781250000e+00,0.000000000000000000e+00
|
||||
2.016015839762985706e+00,1.089586690068244934e-02,3.283513307571411133e+00,0.000000000000000000e+00
|
||||
2.047016083262860775e+00,1.089557167142629623e-02,3.283515214920043945e+00,0.000000000000000000e+00
|
||||
2.078016326762735844e+00,1.090093888342380524e-02,3.283469915390014648e+00,0.000000000000000000e+00
|
||||
2.109016570262610912e+00,1.089690811932086945e-02,3.283427000045776367e+00,0.000000000000000000e+00
|
||||
2.140016813762485981e+00,1.089546177536249161e-02,3.283426046371459961e+00,0.000000000000000000e+00
|
||||
2.171017057262361050e+00,1.089646667242050171e-02,3.283444881439208984e+00,0.000000000000000000e+00
|
||||
2.202017300762236118e+00,1.089615933597087860e-02,3.283525943756103516e+00,0.000000000000000000e+00
|
||||
2.233017544262111187e+00,1.089608948677778244e-02,3.283504486083984375e+00,0.000000000000000000e+00
|
||||
2.264017787761986256e+00,1.089730765670537949e-02,3.283513545989990234e+00,0.000000000000000000e+00
|
||||
2.295018031261861324e+00,1.089673768728971481e-02,3.283522367477416992e+00,0.000000000000000000e+00
|
||||
2.326018274761736393e+00,1.089785713702440262e-02,3.283501148223876953e+00,0.000000000000000000e+00
|
||||
2.357018518261611462e+00,1.089695561677217484e-02,3.283500432968139648e+00,0.000000000000000000e+00
|
||||
2.388018761761486530e+00,1.089761964976787567e-02,3.283518791198730469e+00,0.000000000000000000e+00
|
||||
2.419019005261361599e+00,1.089777704328298569e-02,3.283519983291625977e+00,0.000000000000000000e+00
|
||||
2.450019248761236668e+00,1.089782454073429108e-02,3.283500432968139648e+00,0.000000000000000000e+00
|
||||
2.481019493192434311e+00,1.089797820895910263e-02,3.283494234085083008e+00,0.000000000000000000e+00
|
||||
2.512019736692309380e+00,1.089819893240928650e-02,3.283483028411865234e+00,0.000000000000000000e+00
|
||||
2.543019980192184448e+00,1.089758984744548798e-02,3.283484458923339844e+00,0.000000000000000000e+00
|
||||
2.574020223692059517e+00,1.089799497276544571e-02,3.283472537994384766e+00,0.000000000000000000e+00
|
||||
2.605020467191934586e+00,1.089780777692794800e-02,3.283496856689453125e+00,0.000000000000000000e+00
|
||||
2.636020710691809654e+00,1.089739520102739334e-02,3.283509731292724609e+00,0.000000000000000000e+00
|
||||
2.667020954191684723e+00,1.089748181402683258e-02,3.283517599105834961e+00,0.000000000000000000e+00
|
||||
2.698021197691559792e+00,1.089689694344997406e-02,3.283530235290527344e+00,0.000000000000000000e+00
|
||||
2.729021441191434860e+00,1.089715678244829178e-02,3.283481359481811523e+00,0.000000000000000000e+00
|
||||
2.760021684691309929e+00,1.089754421263933182e-02,3.283459901809692383e+00,0.000000000000000000e+00
|
||||
2.791021928191184998e+00,1.089687831699848175e-02,3.283472537994384766e+00,0.000000000000000000e+00
|
||||
2.822022171691060066e+00,1.089759543538093567e-02,3.283500909805297852e+00,0.000000000000000000e+00
|
||||
2.853022415190935135e+00,1.089670881628990173e-02,3.283534288406372070e+00,0.000000000000000000e+00
|
||||
2.884022658690810204e+00,1.089756470173597336e-02,3.283511877059936523e+00,0.000000000000000000e+00
|
||||
2.915022902190685272e+00,1.089690346270799637e-02,3.283493757247924805e+00,0.000000000000000000e+00
|
||||
2.946023146621882915e+00,1.089758984744548798e-02,3.283448219299316406e+00,0.000000000000000000e+00
|
||||
2.978023397736251354e+00,1.089744549244642258e-02,3.283433675765991211e+00,0.000000000000000000e+00
|
||||
3.009023641236126423e+00,1.089862175285816193e-02,3.283425569534301758e+00,0.000000000000000000e+00
|
||||
3.040023884736001492e+00,1.089803129434585571e-02,3.283471822738647461e+00,0.000000000000000000e+00
|
||||
3.071024128235876560e+00,1.073096692562103271e-02,3.284560441970825195e+00,0.000000000000000000e+00
|
||||
3.102024371735751629e+00,1.047029998153448105e-02,3.286798954010009766e+00,0.000000000000000000e+00
|
||||
3.133024615235626698e+00,1.047913543879985809e-02,3.287167787551879883e+00,3.239795719667862804e-03
|
||||
3.164024858735501766e+00,1.093554869294166565e-02,3.284556388854980469e+00,9.858965101311918666e-02
|
||||
3.195025102235376835e+00,1.090482994914054871e-02,3.283414125442504883e+00,2.408863122635618303e-02
|
||||
3.226025345735251904e+00,1.090592984110116959e-02,3.283406972885131836e+00,2.447244005815103285e-04
|
||||
3.257025589235126972e+00,9.565196000039577484e-03,3.287045955657958984e+00,0.000000000000000000e+00
|
||||
3.288025832735002041e+00,6.265455856919288635e-03,3.295940399169921875e+00,0.000000000000000000e+00
|
||||
3.319026077166199684e+00,6.265163887292146683e-03,3.295932769775390625e+00,0.000000000000000000e+00
|
||||
3.350026320666074753e+00,6.265291944146156311e-03,3.295904874801635742e+00,0.000000000000000000e+00
|
||||
3.381026564165949821e+00,6.265689618885517120e-03,3.295960903167724609e+00,0.000000000000000000e+00
|
||||
3.412026807665824890e+00,6.265511736273765564e-03,3.295937538146972656e+00,0.000000000000000000e+00
|
||||
3.443027051165699959e+00,6.265967618674039841e-03,3.295956850051879883e+00,0.000000000000000000e+00
|
||||
3.474027294665575027e+00,6.265111733227968216e-03,3.295962095260620117e+00,0.000000000000000000e+00
|
||||
3.505027538165450096e+00,6.265260744839906693e-03,3.295987844467163086e+00,0.000000000000000000e+00
|
||||
3.536027781665325165e+00,6.265217904001474380e-03,3.295968055725097656e+00,0.000000000000000000e+00
|
||||
3.567028025165200233e+00,6.265106145292520523e-03,3.295924901962280273e+00,0.000000000000000000e+00
|
||||
3.598028268665075302e+00,6.264802534133195877e-03,3.295977592468261719e+00,0.000000000000000000e+00
|
||||
3.629028512164950371e+00,6.274072919040918350e-03,3.295981168746948242e+00,0.000000000000000000e+00
|
||||
3.660028755664825439e+00,6.264159921556711197e-03,3.296010494232177734e+00,0.000000000000000000e+00
|
||||
3.691028999164700508e+00,6.263694725930690765e-03,3.296028852462768555e+00,0.000000000000000000e+00
|
||||
3.722029242664575577e+00,6.264073774218559265e-03,3.295981884002685547e+00,0.000000000000000000e+00
|
||||
3.753029486164450645e+00,6.263582501560449600e-03,3.295972824096679688e+00,0.000000000000000000e+00
|
||||
3.784029729664325714e+00,6.263743620365858078e-03,3.295948028564453125e+00,0.000000000000000000e+00
|
||||
3.815029974095523357e+00,6.263809744268655777e-03,3.295968770980834961e+00,0.000000000000000000e+00
|
||||
3.846030217595398426e+00,6.264028605073690414e-03,3.295961141586303711e+00,0.000000000000000000e+00
|
||||
3.877030461095273495e+00,6.262957584112882614e-03,3.295981407165527344e+00,0.000000000000000000e+00
|
||||
3.908030704595148563e+00,6.263051647692918777e-03,3.296004056930541992e+00,0.000000000000000000e+00
|
||||
3.939030948095023632e+00,6.263412535190582275e-03,3.295977354049682617e+00,0.000000000000000000e+00
|
||||
3.970031191594898701e+00,6.263195537030696869e-03,3.295970678329467773e+00,0.000000000000000000e+00
|
||||
4.001031435094773769e+00,6.264739204198122025e-03,3.295953989028930664e+00,0.000000000000000000e+00
|
||||
4.032031678594648838e+00,6.262465845793485641e-03,3.295959472656250000e+00,0.000000000000000000e+00
|
||||
4.063031922094523907e+00,6.262660026550292969e-03,3.295962572097778320e+00,0.000000000000000000e+00
|
||||
4.094032165594398975e+00,6.262000184506177902e-03,3.295940160751342773e+00,0.000000000000000000e+00
|
||||
4.125032409094274044e+00,6.262242328375577927e-03,3.295962572097778320e+00,0.000000000000000000e+00
|
||||
4.156032652594149113e+00,6.262141279876232147e-03,3.296007633209228516e+00,0.000000000000000000e+00
|
||||
4.187032896094024181e+00,6.264179013669490814e-03,3.296983242034912109e+00,0.000000000000000000e+00
|
||||
4.218033139593899250e+00,6.265323609113693237e-03,3.298573970794677734e+00,0.000000000000000000e+00
|
||||
4.249033383093774319e+00,6.262608803808689117e-03,3.297634840011596680e+00,0.000000000000000000e+00
|
||||
4.280033626593649387e+00,6.261723116040229797e-03,3.295988082885742188e+00,0.000000000000000000e+00
|
||||
4.311033871024847031e+00,6.261355709284543991e-03,3.295922756195068359e+00,0.000000000000000000e+00
|
||||
4.342034114524722099e+00,6.262241862714290619e-03,3.295910596847534180e+00,0.000000000000000000e+00
|
||||
4.373034358024597168e+00,6.260306108742952347e-03,3.295955896377563477e+00,0.000000000000000000e+00
|
||||
4.404034601524472237e+00,6.260604131966829300e-03,3.295947074890136719e+00,0.000000000000000000e+00
|
||||
4.435034845024347305e+00,6.260327063500881195e-03,3.295908689498901367e+00,0.000000000000000000e+00
|
||||
4.467035096138715744e+00,6.260474678128957748e-03,3.295910358428955078e+00,0.000000000000000000e+00
|
||||
4.498035339638590813e+00,6.259850226342678070e-03,3.295917749404907227e+00,0.000000000000000000e+00
|
||||
4.529035583138465881e+00,6.260114721953868866e-03,3.295912265777587891e+00,0.000000000000000000e+00
|
||||
4.560035826638340950e+00,6.259896326810121536e-03,3.295969486236572266e+00,0.000000000000000000e+00
|
||||
4.591036070138216019e+00,6.259923335164785385e-03,3.295968770980834961e+00,0.000000000000000000e+00
|
||||
4.622036313638091087e+00,6.269593723118305206e-03,3.295923233032226562e+00,0.000000000000000000e+00
|
||||
4.653036558069288731e+00,6.258169189095497131e-03,3.295922756195068359e+00,0.000000000000000000e+00
|
||||
4.684036801569163799e+00,6.259581539779901505e-03,3.295930147171020508e+00,0.000000000000000000e+00
|
||||
4.715037045069038868e+00,6.259268615394830704e-03,3.295959234237670898e+00,0.000000000000000000e+00
|
||||
4.746037288568913937e+00,6.259615998715162277e-03,3.295964241027832031e+00,0.000000000000000000e+00
|
||||
4.777037532068789005e+00,6.259322632104158401e-03,3.295985460281372070e+00,0.000000000000000000e+00
|
||||
4.808037775568664074e+00,6.259133573621511459e-03,3.295970439910888672e+00,0.000000000000000000e+00
|
||||
4.839038019068539143e+00,6.258794572204351425e-03,3.295953750610351562e+00,0.000000000000000000e+00
|
||||
4.870038262568414211e+00,6.258916575461626053e-03,3.295943975448608398e+00,0.000000000000000000e+00
|
||||
4.901038506068289280e+00,6.259270478039979935e-03,3.295993089675903320e+00,0.000000000000000000e+00
|
||||
4.932038749568164349e+00,6.258721463382244110e-03,3.296065092086791992e+00,0.000000000000000000e+00
|
||||
4.963038993068039417e+00,6.258817389607429504e-03,3.296002626419067383e+00,0.000000000000000000e+00
|
||||
4.994039236567914486e+00,6.259220186620950699e-03,3.295991659164428711e+00,0.000000000000000000e+00
|
||||
5.025039480067789555e+00,6.258020643144845963e-03,3.296026468276977539e+00,0.000000000000000000e+00
|
||||
5.056039723567664623e+00,6.257521919906139374e-03,3.296054124832153320e+00,0.000000000000000000e+00
|
||||
5.087039967067539692e+00,6.257620174437761307e-03,3.296008348464965820e+00,0.000000000000000000e+00
|
||||
5.118040210567414761e+00,6.257147062569856644e-03,3.296041727066040039e+00,0.000000000000000000e+00
|
||||
5.149040454998612404e+00,6.257088854908943176e-03,3.296068191528320312e+00,0.000000000000000000e+00
|
||||
5.180040698498487473e+00,6.257211323827505112e-03,3.296053409576416016e+00,0.000000000000000000e+00
|
||||
5.211040941998362541e+00,6.256616208702325821e-03,3.296070098876953125e+00,0.000000000000000000e+00
|
||||
5.242041185498237610e+00,6.256992463022470474e-03,3.296049118041992188e+00,0.000000000000000000e+00
|
|
1481
Messergebnisse/EPD.csv
Normal file
1481
Messergebnisse/EPD.csv
Normal file
File diff suppressed because it is too large
Load Diff
1825
Messergebnisse/OLED.csv
Normal file
1825
Messergebnisse/OLED.csv
Normal file
File diff suppressed because it is too large
Load Diff
@ -12,8 +12,6 @@
|
||||
#define BYTES_PER_LINE 32 // ((WIDTH + 7) / 8)
|
||||
#define ALLSCREEN_GRAGHBYTES 3904 //(BYTES_PER_LINE * HEIGHT)
|
||||
|
||||
|
||||
|
||||
void epd_init(void);
|
||||
|
||||
void epd_update(void);
|
||||
|
@ -3,17 +3,10 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// ## 1. Konstanten ##
|
||||
#define FONT_WIDTH 16
|
||||
#define FONT_HEIGHT 32
|
||||
#define FONT_WIDTH_BYTES 2
|
||||
|
||||
// ## 2. Globale Variablen (mit "extern") ##
|
||||
//extern const uint8_t fullscreen_allArray_LEN;
|
||||
//extern const unsigned char* fullscreen_allArray[36];
|
||||
|
||||
// ## 3. Funktions-Prototypen ##
|
||||
//void create_char(char character, uint8_t* framebuffer, uint8_t scale);
|
||||
void draw_char(char character, uint8_t* framebuffer, int fb_width, int fb_height, uint8_t scale);
|
||||
|
||||
#endif // FONT_MINI_H
|
12
include/lora/encryption.h
Normal file
12
include/lora/encryption.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef ENCRYPTION_H
|
||||
#define ENCRYPTION_H
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
extern const uint8_t XOR_KEY;
|
||||
|
||||
void xorCrypt(const char *input, char *output, uint8_t key);
|
||||
uint16_t computeCRC16(const char *data);
|
||||
|
||||
#endif
|
@ -7,7 +7,6 @@
|
||||
|
||||
void lora_init(void);
|
||||
|
||||
// Zugriff auf das LoRa-Device
|
||||
extern const struct device *lora_dev;
|
||||
|
||||
// Empfangssteuerung
|
||||
@ -19,7 +18,6 @@ void lora_check_fn(struct k_work *work);
|
||||
const char *get_last_msg(void);
|
||||
void clear_msg_buffer(void);
|
||||
|
||||
// Optional: Empfangsdauer definieren
|
||||
extern struct k_work_delayable lora_check_work;
|
||||
#define ACTIVE_WINDOW_MS 10000
|
||||
|
||||
|
@ -2,14 +2,10 @@
|
||||
#define SYNCH_H
|
||||
|
||||
#include <zephyr/kernel.h>
|
||||
#include "utils/leds.h"
|
||||
|
||||
#define MAX_SAMPLES 10
|
||||
|
||||
// Vorwärtsdeklarationen
|
||||
void synchronite(struct k_work *work);
|
||||
|
||||
// Hardware
|
||||
//extern struct gpio_callback button_cb_data;
|
||||
|
||||
#endif
|
@ -1,11 +0,0 @@
|
||||
#ifndef BUTTONS_H
|
||||
#define BUTTONS_H
|
||||
|
||||
#include <zephyr/device.h>
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <zephyr/drivers/gpio.h>
|
||||
|
||||
#define SW0_NODE DT_ALIAS(sw0)
|
||||
extern const struct gpio_dt_spec button0;
|
||||
|
||||
#endif
|
@ -2,6 +2,6 @@
|
||||
#define DISPLAY_CONTROLLER_H
|
||||
|
||||
void dc_init(const char *type_str, int slot);
|
||||
void dc_draw_something(char to_draw);
|
||||
void dc_draw_something(const char *message);
|
||||
|
||||
#endif
|
@ -1,19 +0,0 @@
|
||||
#ifndef LEDS_H
|
||||
#define LEDS_H
|
||||
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <zephyr/drivers/gpio.h>
|
||||
#include "lora/synch.h"
|
||||
|
||||
// Aliase, die zum Devicetree passen
|
||||
#define LED0_NODE DT_ALIAS(led0)
|
||||
|
||||
// Ankündigen, dass es diese Variablen gibt.
|
||||
// Die eigentliche Definition steht in leds.c
|
||||
extern const struct gpio_dt_spec led_green;
|
||||
|
||||
// Funktions-Prototypen
|
||||
void turnOutLEDS(void);
|
||||
void updateLEDs(void);
|
||||
|
||||
#endif
|
@ -7,10 +7,8 @@
|
||||
|
||||
#include "epaper/epaper.h"
|
||||
|
||||
#include "font.h"
|
||||
#include "epaper/font_mini.h"
|
||||
|
||||
//#include "font.h"
|
||||
|
||||
#define EPD_NODE DT_NODELABEL(epd)
|
||||
#define SPI_BUS DT_BUS(EPD_NODE)
|
||||
@ -71,7 +69,7 @@ void epd_spi_writeByte(uint8_t value) {
|
||||
|
||||
int ret = spi_write(spi_dev, &spi_cfg, &tx);
|
||||
if (ret < 0) {
|
||||
printk("❌ SPI Write Fehler: %d\n", ret);
|
||||
printk("SPI Write Fehler: %d\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,7 +90,7 @@ void epd_write_data(uint8_t data) {
|
||||
epd_spi_writeByte(data);
|
||||
}
|
||||
|
||||
void edp_hw_init(void) {
|
||||
void epd_init_sequence(void) {
|
||||
EPD_W21_RST_0;
|
||||
k_msleep(10); // Ein kurzer Reset-Puls ist oft besser
|
||||
EPD_W21_RST_1;
|
||||
@ -102,7 +100,6 @@ void edp_hw_init(void) {
|
||||
epd_write_command(0x12); // Software Reset
|
||||
epd_readbusy();
|
||||
|
||||
// NEUE, ERGÄNZTE BEFEHLE FÜR BILDQUALITÄT
|
||||
epd_write_command(0x0C); // Booster Soft Start Control
|
||||
epd_write_data(0xD7);
|
||||
epd_write_data(0xD6);
|
||||
@ -117,7 +114,6 @@ void edp_hw_init(void) {
|
||||
epd_write_command(0x3B); // Setzt die Gate-Breite
|
||||
epd_write_data(0x08);
|
||||
|
||||
// BEKANNTE BEFEHLE
|
||||
epd_write_command(0x01); // Driver output control
|
||||
epd_write_data(0x79); // Höhe (122-1)
|
||||
epd_write_data(0x00);
|
||||
@ -171,7 +167,7 @@ void epd_init(void){
|
||||
gpio_pin_configure_dt(&epd_busy, GPIO_INPUT);
|
||||
|
||||
// Initialisierungssequent für den Chip
|
||||
edp_hw_init();
|
||||
epd_init_sequence();
|
||||
|
||||
// Display ZWEIMAL explizit reinigen, um Kaltstart-Artefakte zu entfernen
|
||||
epd_clear(); // Erster Clear-Durchgang
|
||||
@ -198,14 +194,14 @@ void epd_update(void) {
|
||||
// Beispiel für das Senden eines Bildes
|
||||
void epd_whitescreen_all(const uint8_t *datas) {
|
||||
// sicheres Set vor 0x24
|
||||
epd_write_command(0x11); epd_write_data(0x01); // zeilenweise
|
||||
//epd_write_command(0x11); epd_write_data(0x01); // zeilenweise
|
||||
|
||||
epd_write_command(0x44); epd_write_data(0x00); epd_write_data(0x1F); // X: 0..31 (Bytes)
|
||||
epd_write_command(0x45); epd_write_data(0x00); epd_write_data(0x00);
|
||||
epd_write_data(0x79); epd_write_data(0x00); // Y: 0..121 (Zeilen)
|
||||
//epd_write_command(0x44); epd_write_data(0x00); epd_write_data(0x1F); // X: 0..31 (Bytes)
|
||||
//epd_write_command(0x45); epd_write_data(0x00); epd_write_data(0x00);
|
||||
// epd_write_data(0x79); epd_write_data(0x00); // Y: 0..121 (Zeilen)
|
||||
|
||||
epd_write_command(0x4E); epd_write_data(0x00); // X-Zähler = 0
|
||||
epd_write_command(0x4F); epd_write_data(0x00); epd_write_data(0x00); // Y-Zähler = 0
|
||||
//epd_write_command(0x4E); epd_write_data(0x00); // X-Zähler = 0
|
||||
//epd_write_command(0x4F); epd_write_data(0x00); epd_write_data(0x00); // Y-Zähler = 0
|
||||
EPD_W21_CS_0; // <-- CS hier aktivieren (LOW)
|
||||
|
||||
epd_write_command(0x24); // Command: write RAM for black/white image
|
||||
@ -255,16 +251,16 @@ void epd_whitescreen_white(void) {
|
||||
}
|
||||
|
||||
void epd_clear(void) {
|
||||
printk("🧹 Clearing display...\n");
|
||||
printk("Clearing display...\n");
|
||||
// sicheres Set vor 0x24
|
||||
epd_write_command(0x11); epd_write_data(0x01); // zeilenweise
|
||||
//epd_write_command(0x11); epd_write_data(0x01); // zeilenweise
|
||||
|
||||
epd_write_command(0x44); epd_write_data(0x00); epd_write_data(0x1F); // X: 0..31 (Bytes)
|
||||
epd_write_command(0x45); epd_write_data(0x00); epd_write_data(0x00);
|
||||
epd_write_data(0x79); epd_write_data(0x00); // Y: 0..121 (Zeilen)
|
||||
//epd_write_command(0x44); epd_write_data(0x00); epd_write_data(0x1F); // X: 0..31 (Bytes)
|
||||
//epd_write_command(0x45); epd_write_data(0x00); epd_write_data(0x00);
|
||||
// epd_write_data(0x79); epd_write_data(0x00); // Y: 0..121 (Zeilen)
|
||||
|
||||
epd_write_command(0x4E); epd_write_data(0x00); // X-Zähler = 0
|
||||
epd_write_command(0x4F); epd_write_data(0x00); epd_write_data(0x00); // Y-Zähler = 0
|
||||
//epd_write_command(0x4E); epd_write_data(0x00); // X-Zähler = 0
|
||||
//epd_write_command(0x4F); epd_write_data(0x00); epd_write_data(0x00); // Y-Zähler = 0
|
||||
|
||||
// RAM für das Bild mit "Weiß" füllen
|
||||
EPD_W21_CS_0;
|
||||
@ -283,33 +279,22 @@ void epd_clear(void) {
|
||||
}
|
||||
|
||||
void epd_draw_something(char toDraw) {
|
||||
epd_clear();
|
||||
|
||||
//epd_whitescreen_all(HALLO);
|
||||
//k_msleep(2000);
|
||||
|
||||
|
||||
|
||||
draw_char('K', epaper_framebuffer, 256, HEIGHT, 17);
|
||||
epd_whitescreen_all(epaper_framebuffer);
|
||||
|
||||
|
||||
|
||||
// Muster in den Display-RAM schreiben
|
||||
/*printk("Schreibe Bild in den Display-RAM...\n");
|
||||
draw_char('K', epaper_framebuffer, 256, HEIGHT, 17);
|
||||
|
||||
EPD_W21_CS_0;
|
||||
epd_write_command(0x24);
|
||||
for (int i = 0; i < ALLSCREEN_GRAGHBYTES; i++) {
|
||||
epd_write_data(epaper_framebuffer[i]);
|
||||
}
|
||||
EPD_W21_CS_1;
|
||||
|
||||
|
||||
// Physisches Update
|
||||
printk("Aktualisiere Display...\n");
|
||||
EPD_W21_CS_0;
|
||||
epd_update();
|
||||
EPD_W21_CS_1;*/
|
||||
|
||||
printk("✅ Display-Finish! Das Ergebnis sollte jetzt immer perfekt sein.\n");
|
||||
EPD_W21_CS_1;
|
||||
|
||||
printk("Display-Finish.\n");
|
||||
}
|
@ -1,253 +0,0 @@
|
||||
// '2025_07_07_0ox_Kleki', 250x122px
|
||||
const unsigned char HALLO [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
|
||||
};
|
@ -1,389 +1,10 @@
|
||||
/*#include <stdint.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include "epaper/font_mini.h"
|
||||
|
||||
#include "epaper/font_mini.h"
|
||||
|
||||
// '0', 32x16px
|
||||
const unsigned char fullscreen_hor_0 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0x80, 0x01, 0x87, 0xf9, 0x8f, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9,
|
||||
0xc0, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9,
|
||||
0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf8, 0xcf, 0xf8, 0xcf, 0xf8,
|
||||
0xcf, 0xf8, 0xcf, 0xf8, 0xcf, 0xf8, 0xcf, 0xf8, 0xff, 0xfc, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '1', 32x16px
|
||||
const unsigned char fullscreen_hor_1 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfc, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '2', 32x16px
|
||||
const unsigned char fullscreen_hor_2 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xfe, 0x7f,
|
||||
0xfe, 0x01, 0xfe, 0x7f, 0xfe, 0x00, 0xfe, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xfe, 0x3f, 0x00, 0xff, 0xfe, 0x3f, 0x81, 0xff, 0xfe, 0x3f, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '3', 32x16px
|
||||
const unsigned char fullscreen_hor_3 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xfe, 0x7f,
|
||||
0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xff, 0x01, 0x00, 0xff, 0xff, 0x81, 0x81, 0xff, 0xff, 0xc1, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '4', 32x16px
|
||||
const unsigned char fullscreen_hor_4 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff,
|
||||
0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf1, 0xe1, 0xff, 0xff, 0xf1, 0xf1, 0xff,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '5', 32x16px
|
||||
const unsigned char fullscreen_hor_5 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0x00, 0x7f,
|
||||
0xfe, 0x3e, 0x00, 0x7f, 0xfe, 0x3e, 0x00, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xff, 0x00, 0xfe, 0x7f, 0xff, 0x81, 0xfe, 0x7f, 0xff, 0xc1, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '6', 32x16px
|
||||
const unsigned char fullscreen_hor_6 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff,
|
||||
0xff, 0x80, 0x01, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xff, 0x00, 0xff, 0x7f, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '7', 32x16px
|
||||
const unsigned char fullscreen_hor_7 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f,
|
||||
0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x00, 0x7e, 0x7f, 0xfe, 0x00, 0x7e, 0x7f,
|
||||
0xff, 0xff, 0x00, 0x7f, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '8', 32x16px
|
||||
const unsigned char fullscreen_hor_8 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x81, 0xff,
|
||||
0xff, 0x81, 0x81, 0xff, 0xff, 0x01, 0x00, 0xff, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xff, 0x01, 0x00, 0xff, 0xff, 0x81, 0x81, 0xff, 0xff, 0xc1, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// '9', 32x16px
|
||||
const unsigned char fullscreen_hor_9 [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff,
|
||||
0xff, 0xff, 0x81, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'A', 32x16px
|
||||
const unsigned char fullscreen_hor_A [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0x80, 0x01, 0x87, 0xf9, 0x8f, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9,
|
||||
0xc0, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9,
|
||||
0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf9, 0xcf, 0xf8, 0xcf, 0xf8, 0xcf, 0xf8,
|
||||
0xcf, 0xf8, 0xcf, 0xf8, 0xcf, 0xf8, 0xcf, 0xf8, 0xff, 0xfc, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'B', 32x16px
|
||||
const unsigned char fullscreen_hor_B [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xff, 0x01, 0x00, 0xff, 0xff, 0x81, 0x81, 0xff, 0xff, 0xc1, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'C', 32x16px
|
||||
const unsigned char fullscreen_hor_C [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff,
|
||||
0xff, 0x80, 0x01, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f,
|
||||
0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'D', 32x16px
|
||||
const unsigned char fullscreen_hor_D [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f,
|
||||
0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'E', 32x16px
|
||||
const unsigned char fullscreen_hor_E [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xfe, 0x3f, 0x3e, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'F', 32x16px
|
||||
const unsigned char fullscreen_hor_F [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x3e, 0x7f, 0xff, 0xfe, 0x3e, 0x7f,
|
||||
0xff, 0xff, 0x3e, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'G', 32x16px
|
||||
const unsigned char fullscreen_hor_G [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff,
|
||||
0xff, 0x80, 0x01, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f,
|
||||
0xfe, 0x00, 0x7e, 0x7f, 0xfe, 0x00, 0x3e, 0x7f, 0xfe, 0x00, 0x7e, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'H', 32x16px
|
||||
const unsigned char fullscreen_hor_H [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'I', 32x16px
|
||||
const unsigned char fullscreen_hor_I [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'J', 32x16px
|
||||
const unsigned char fullscreen_hor_J [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff,
|
||||
0xff, 0x80, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'K', 32x16px
|
||||
const unsigned char fullscreen_hor_K [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfc, 0x3f, 0xff,
|
||||
0xfe, 0x01, 0xc0, 0x7f, 0xfe, 0x03, 0xc0, 0x7f, 0xfe, 0x0f, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'L', 32x16px
|
||||
const unsigned char fullscreen_hor_L [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'M', 32x16px
|
||||
const unsigned char fullscreen_hor_M [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x01, 0xff,
|
||||
0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'N', 32x16px
|
||||
const unsigned char fullscreen_hor_N [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'O', 32x16px
|
||||
const unsigned char fullscreen_hor_O [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff,
|
||||
0xff, 0x80, 0x01, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x7f,
|
||||
0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'P', 32x16px
|
||||
const unsigned char fullscreen_hor_P [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x3e, 0x7f, 0xff, 0xfe, 0x3e, 0x7f,
|
||||
0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'Q', 32x16px
|
||||
const unsigned char fullscreen_hor_Q [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xff,
|
||||
0xff, 0xc0, 0x00, 0xff, 0xff, 0x80, 0x00, 0x7f, 0xff, 0x1f, 0xff, 0x3f, 0xfe, 0x1f, 0xff, 0x3f,
|
||||
0xfc, 0x80, 0x00, 0x7f, 0xf8, 0xc0, 0x00, 0xff, 0xf8, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'R', 32x16px
|
||||
const unsigned char fullscreen_hor_R [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x3e, 0x7f, 0xff, 0xfc, 0x3e, 0x7f,
|
||||
0xfe, 0x01, 0x00, 0xff, 0xfe, 0x03, 0x81, 0xff, 0xfe, 0x0f, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'S', 32x16px
|
||||
const unsigned char fullscreen_hor_S [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0x81, 0xff,
|
||||
0xfe, 0x3f, 0x81, 0xff, 0xfe, 0x3f, 0x00, 0xff, 0xfe, 0x3e, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xff, 0x00, 0xfe, 0x7f, 0xff, 0x81, 0xfe, 0x7f, 0xff, 0xc1, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'T', 32x16px
|
||||
const unsigned char fullscreen_hor_T [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f,
|
||||
0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'U', 32x16px
|
||||
const unsigned char fullscreen_hor_U [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f,
|
||||
0xff, 0x80, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'V', 32x16px
|
||||
const unsigned char fullscreen_hor_V [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x7f,
|
||||
0xff, 0xf8, 0x00, 0x7f, 0xff, 0xf0, 0x00, 0x7f, 0xfe, 0x07, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff,
|
||||
0xff, 0xf8, 0x00, 0x7f, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'W', 32x16px
|
||||
const unsigned char fullscreen_hor_W [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x7f,
|
||||
0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x7f,
|
||||
0xff, 0xc0, 0x00, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f,
|
||||
0xff, 0x80, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'X', 32x16px
|
||||
const unsigned char fullscreen_hor_X [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xf0, 0x7f,
|
||||
0xfe, 0x03, 0xc0, 0x7f, 0xfe, 0x01, 0xc0, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff,
|
||||
0xfe, 0x03, 0xc0, 0x7f, 0xfe, 0x03, 0xc0, 0x7f, 0xfe, 0x0f, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'Y', 32x16px
|
||||
const unsigned char fullscreen_hor_Y [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f,
|
||||
0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xc0, 0x7f, 0xfe, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0x3f, 0xff,
|
||||
0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
// 'Z', 32x16px
|
||||
const unsigned char fullscreen_hor_Z [] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xfe, 0x7f,
|
||||
0xfe, 0x03, 0xfe, 0x7f, 0xfe, 0x01, 0xfe, 0x7f, 0xfe, 0x3c, 0x3e, 0x7f, 0xfe, 0x3e, 0x3e, 0x7f,
|
||||
0xfe, 0x3f, 0xc0, 0x7f, 0xfe, 0x3f, 0xc0, 0x7f, 0xfe, 0x3f, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
|
||||
// Test-Bitmap: Ein 16x32 Pixel großer Rahmen
|
||||
const unsigned char test_bitmap[64] = {
|
||||
// Oberste Zeile (alle Pixel an)
|
||||
0xFF, 0xFF,
|
||||
// 30x die Mitte (nur erster und letzter Pixel an)
|
||||
0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
|
||||
0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
|
||||
0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
|
||||
0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
|
||||
// Unterste Zeile (alle Pixel an)
|
||||
0xFF, 0xFF
|
||||
};
|
||||
|
||||
// Array of all bitmaps for convenience. (Total bytes used to store images in = 2880)
|
||||
const uint8_t fullscreen_hor_allArray_LEN = 36;
|
||||
const unsigned char* fullscreen_hor_allArray[36] = {
|
||||
fullscreen_hor_0,
|
||||
fullscreen_hor_1,
|
||||
fullscreen_hor_2,
|
||||
fullscreen_hor_3,
|
||||
fullscreen_hor_4,
|
||||
fullscreen_hor_5,
|
||||
fullscreen_hor_6,
|
||||
fullscreen_hor_7,
|
||||
fullscreen_hor_8,
|
||||
fullscreen_hor_9,
|
||||
fullscreen_hor_A,
|
||||
fullscreen_hor_B,
|
||||
fullscreen_hor_C,
|
||||
fullscreen_hor_D,
|
||||
fullscreen_hor_E,
|
||||
fullscreen_hor_F,
|
||||
fullscreen_hor_G,
|
||||
fullscreen_hor_H,
|
||||
fullscreen_hor_I,
|
||||
fullscreen_hor_J,
|
||||
fullscreen_hor_K,
|
||||
fullscreen_hor_L,
|
||||
fullscreen_hor_M,
|
||||
fullscreen_hor_N,
|
||||
fullscreen_hor_O,
|
||||
fullscreen_hor_P,
|
||||
fullscreen_hor_Q,
|
||||
fullscreen_hor_R,
|
||||
fullscreen_hor_S,
|
||||
fullscreen_hor_T,
|
||||
fullscreen_hor_U,
|
||||
fullscreen_hor_V,
|
||||
fullscreen_hor_W,
|
||||
fullscreen_hor_X,
|
||||
fullscreen_hor_Y,
|
||||
fullscreen_hor_Z
|
||||
};
|
||||
|
||||
// --- FINALE set_pixel Funktion (für HORIZONTALEN Framebuffer) ---
|
||||
// Schreibt einen schwarzen Pixel (setzt Bit auf 0) in den Buffer.
|
||||
static void set_pixel_final(uint8_t* framebuffer, int x, int y) {
|
||||
// Die Breite des E-Paper-Buffers in Bytes ist 32 (256 Pixel / 8)
|
||||
int framebuffer_width_bytes = 32;
|
||||
|
||||
// Sicherheitsabfrage
|
||||
if (x < 0 || x >= 256 || y < 0 || y >= 122) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Korrekte Formel für einen horizontalen Framebuffer
|
||||
int byte_index = y * framebuffer_width_bytes + (x / 8);
|
||||
uint8_t bit_mask = 0x80 >> (x % 8); // MSB-first
|
||||
|
||||
// Bit löschen für Schwarz auf weißem Grund
|
||||
framebuffer[byte_index] &= ~bit_mask;
|
||||
}
|
||||
|
||||
|
||||
// --- FINALE create_fullscreen_char Funktion ---
|
||||
// Liest einen horizontalen 16x32 Font und skaliert ihn auf den Framebuffer.
|
||||
void create_char(char character, uint8_t* framebuffer, uint8_t scale) {
|
||||
// 1. Hintergrund auf Weiß (0xFF) füllen
|
||||
memset(framebuffer, 0xFF, 3904);
|
||||
|
||||
// 2. Zeichenindex finden
|
||||
int index = -1;
|
||||
if (character >= '0' && character <= '9') {
|
||||
index = character - '0';
|
||||
} else if (character >= 'A' && character <= 'Z') {
|
||||
index = (character - 'A') + 10;
|
||||
}
|
||||
if (index < 0 || index >= fullscreen_hor_allArray_LEN) return;
|
||||
|
||||
const uint8_t* font_bitmap = fullscreen_hor_allArray[index];
|
||||
|
||||
// 3. Zentrierung berechnen
|
||||
int scaled_width = FONT_WIDTH * scale;
|
||||
int scaled_height = FONT_HEIGHT * scale;
|
||||
int start_x = (256 - scaled_width) / 2;
|
||||
int start_y = (122 - scaled_height) / 2;
|
||||
|
||||
// 4. Pixel für Pixel durch den kleinen FONT iterieren
|
||||
for (int font_y = 0; font_y < FONT_HEIGHT; font_y++) {
|
||||
for (int font_x = 0; font_x < FONT_WIDTH; font_x++) {
|
||||
|
||||
// Pixel aus dem HORIZONTALEN Font-Array lesen
|
||||
int font_byte_index = (font_y * FONT_WIDTH_BYTES) + (font_x / 8);
|
||||
uint8_t font_bit_mask = 0x80 >> (font_x % 8);
|
||||
|
||||
// Wenn der Pixel im Font gesetzt ist...
|
||||
if (font_bitmap[font_byte_index] & font_bit_mask) {
|
||||
// ...zeichne einen skalierten Block an die Ziel-Position
|
||||
for (int sy = 0; sy < scale; sy++) {
|
||||
for (int sx = 0; sx < scale; sx++) {
|
||||
set_pixel_final(framebuffer, start_x + (font_x * scale) + sx, start_y + (font_y * scale) + sy);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include "epaper/font_mini.h" // Passe diesen Pfad ggf. an
|
||||
|
||||
// =================================================================================
|
||||
// STANDARD 5x7 ASCII FONT (Horizontal, MSB-first)
|
||||
// =================================================================================
|
||||
|
||||
const unsigned char font5x7[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, // sp
|
||||
0x00, 0x00, 0x5F, 0x00, 0x00, // !
|
||||
@ -446,23 +67,20 @@ const unsigned char font5x7[] = {
|
||||
0x61, 0x51, 0x49, 0x45, 0x43, // Z
|
||||
};
|
||||
|
||||
// =================================================================================
|
||||
// FINALE, VEREINFACHTE ZEICHENFUNKTION
|
||||
// =================================================================================
|
||||
void draw_char(char character, uint8_t* framebuffer, int fb_width, int fb_height, uint8_t scale) {
|
||||
// Hintergrund auf Weiß (0xFF) füllen
|
||||
memset(framebuffer, 0xFF, (fb_width / 8) * fb_height);
|
||||
|
||||
// Zeichen-Index finden (nur druckbare ASCII-Zeichen)
|
||||
if (character < ' ' || character > 'z') {
|
||||
character = '?'; // Fallback-Zeichen
|
||||
character = '?';
|
||||
}
|
||||
const uint8_t* font_ptr = font5x7 + (character - ' ') * 5;
|
||||
|
||||
int scaled_width = 5 * scale;
|
||||
int scaled_height = 7 * scale;
|
||||
int start_x = (fb_width - scaled_width) / 2;
|
||||
int start_y = (fb_height - scaled_height) / 2;
|
||||
int start_x = 0;//(fb_width - scaled_width) / 2;
|
||||
int start_y = 0;//(fb_height - scaled_height) / 2;
|
||||
|
||||
// Zeichen Pixel für Pixel malen
|
||||
for (int y = 0; y < 7; y++) { // Höhe des Fonts ist 7
|
||||
|
@ -5,16 +5,18 @@
|
||||
#include <zephyr/kernel.h>
|
||||
#include <stdint.h>
|
||||
|
||||
const uint8_t XOR_KEY = 0x5A; // Einfacher, geheimer Schlüssel
|
||||
#include "lora/encryption.h"
|
||||
|
||||
void xorCrypt(const char *input, char *output, uint8_t key) {
|
||||
size_t len = strlen(input);
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
output[i] = input[i] ^ key;
|
||||
}
|
||||
output[len] = '\0'; // Null-Terminierung für gültige C-Strings
|
||||
const uint8_t XOR_KEY = 0x5Au;
|
||||
|
||||
void xorCrypt(const char *input, char *output, uint8_t key) {
|
||||
size_t len = strlen(input);
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
output[i] = input[i] ^ key;
|
||||
}
|
||||
output[len] = '\0'; // Null-Terminierung für gültige C-Strings
|
||||
}
|
||||
|
||||
|
||||
uint16_t computeCRC16(const char *data) {
|
||||
uint16_t crc = 0xFFFF;
|
||||
for (size_t i = 0; i < strlen(data); i++) {
|
||||
|
@ -5,12 +5,11 @@
|
||||
|
||||
#include "utils/displayController.h"
|
||||
|
||||
#include "lora/encryption.h"
|
||||
#include "lora/synch.h"
|
||||
#include "lora/lora.h"
|
||||
#include "lora/lorapacket.h"
|
||||
|
||||
#define SLEEP_INTERVAL_MS 120000
|
||||
|
||||
#define STACK_SIZE 1024
|
||||
#define PRIORITY 5
|
||||
|
||||
@ -18,6 +17,9 @@ const struct device *lora_dev = DEVICE_DT_GET(DT_ALIAS(lora0));
|
||||
|
||||
static volatile int rx_count = 0;
|
||||
static volatile bool message_received = false;
|
||||
char decoded[128];
|
||||
uint32_t sleep_intervall_ms = 1;
|
||||
uint32_t start = 0;
|
||||
|
||||
K_THREAD_STACK_DEFINE(lora_stack_area, STACK_SIZE);
|
||||
struct k_thread lora_thread_data;
|
||||
@ -43,15 +45,23 @@ void lora_receive_cb(const struct device *dev,
|
||||
if (size == sizeof(DataPacket)) {
|
||||
memcpy(&packet, data, sizeof(DataPacket));
|
||||
rx_count++;
|
||||
message_received = true;
|
||||
printk("Nachricht empfangen (%d Bytes): %s\n", rx_count, size, packet.message);
|
||||
sleep_intervall_ms = (120000 + packet.timestamp);
|
||||
printk("timestamp: %d, next: %d\n", packet.timestamp, sleep_intervall_ms);
|
||||
printk("Nachricht empfangen (%d Bytes): %s\n", rx_count, packet.message);
|
||||
uint32_t stop = k_uptime_get() - start;
|
||||
|
||||
xorCrypt(data, decoded, 0x5A);
|
||||
message_received = true;
|
||||
|
||||
printk("Zeitpunkt: %d\n", stop);
|
||||
disable_lora_receive();
|
||||
}
|
||||
}
|
||||
|
||||
int enable_lora_receive(void)
|
||||
{
|
||||
// Empfang sicher neu starten
|
||||
lora_recv_async(lora_dev, NULL, NULL);
|
||||
lora_recv_async(lora_dev, NULL);
|
||||
memset(&samples, 0, sizeof(samples));
|
||||
|
||||
int ret = lora_config(lora_dev, &config);
|
||||
@ -60,19 +70,19 @@ int enable_lora_receive(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = lora_recv_async(lora_dev, lora_receive_cb, NULL);
|
||||
ret = lora_recv_async(lora_dev, lora_receive_cb);
|
||||
if (ret != 0) {
|
||||
printk("Empfang konnte nicht aktiviert werden: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
printk("📡 LoRa-Empfang aktiviert\n");
|
||||
printk("LoRa-Empfang aktiviert\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int disable_lora_receive(void)
|
||||
{
|
||||
int ret = lora_recv_async(lora_dev, NULL, NULL);
|
||||
int ret = lora_recv_async(lora_dev, NULL);
|
||||
if (ret != 0) {
|
||||
printk("Empfang konnte nicht deaktiviert werden: %d\n", ret);
|
||||
return ret;
|
||||
@ -94,16 +104,17 @@ void lora_thread(void *p1, void *p2, void *p3)
|
||||
disable_lora_receive();
|
||||
|
||||
if (message_received) {
|
||||
dc_draw_something('4');
|
||||
dc_draw_something(decoded);
|
||||
}
|
||||
|
||||
k_msleep(SLEEP_INTERVAL_MS);
|
||||
k_msleep(sleep_intervall_ms);
|
||||
}
|
||||
}
|
||||
|
||||
void lora_init(void)
|
||||
{
|
||||
lora_recv_async(lora_dev, NULL, NULL); // sicher deaktivieren
|
||||
start = k_uptime_get();
|
||||
lora_recv_async(lora_dev, NULL); // sicher deaktivieren
|
||||
k_thread_create(&lora_thread_data, lora_stack_area, STACK_SIZE,
|
||||
lora_thread, NULL, NULL, NULL,
|
||||
PRIORITY, 0, K_NO_WAIT);
|
||||
|
27
src/main.c
27
src/main.c
@ -3,37 +3,14 @@
|
||||
#include <zephyr/sys/printk.h>
|
||||
|
||||
#include "utils/displayController.h"
|
||||
//#include "oled/oled.h"
|
||||
|
||||
#include "lora/lora.h"
|
||||
|
||||
#include "master/master.h"
|
||||
|
||||
#include "utils/buttons.h"
|
||||
#include "utils/leds.h"
|
||||
|
||||
struct k_work_delayable lora_check_work;
|
||||
|
||||
|
||||
uint8_t init_led_and_button(void) {
|
||||
uint8_t ret;
|
||||
|
||||
//if (!gpio_is_ready_dt(&led_green)) return -1;
|
||||
//ret = gpio_pin_configure_dt(&led_green, GPIO_OUTPUT_INACTIVE);
|
||||
//if (ret < 0) return ret;
|
||||
|
||||
if (!gpio_is_ready_dt(&button0)) return -1;
|
||||
ret = gpio_pin_configure_dt(&button0, GPIO_INPUT);
|
||||
if (ret < 0) return ret;
|
||||
|
||||
ret = gpio_pin_interrupt_configure_dt(&button0, GPIO_INT_EDGE_TO_ACTIVE);
|
||||
if (ret < 0) return ret;
|
||||
|
||||
//gpio_init_callback(&button_cb_data, button_pressed, BIT(button.pin));
|
||||
//gpio_add_callback(button.port, &button_cb_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void run_master(void) {
|
||||
printk("Running as MASTER\n");
|
||||
@ -44,10 +21,6 @@ void run_master(void) {
|
||||
int run_slave(const char *display_type, int display_slot)
|
||||
{
|
||||
printk("Running as SLAVE\n");
|
||||
if (init_led_and_button() != 0) {
|
||||
printk("❌ GPIO-Initialisierung fehlgeschlagen\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
dc_init(display_type, display_slot);
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "lora/encryption.h"
|
||||
#include "lora/lorapacket.h"
|
||||
|
||||
#define DEFAULT_RADIO_NODE DT_ALIAS(lora0)
|
||||
@ -27,10 +28,9 @@ K_THREAD_STACK_DEFINE(input_stack_area, INPUT_STACK_SIZE);
|
||||
struct k_thread input_thread_data;
|
||||
|
||||
char latest_word[32] = "Hello!";
|
||||
char encrypted[64];
|
||||
struct k_mutex word_mutex;
|
||||
|
||||
//static DataPacket packet;
|
||||
|
||||
struct lora_modem_config tx_config_master = {
|
||||
.frequency = 868100000,
|
||||
.bandwidth = BW_125_KHZ,
|
||||
@ -65,7 +65,7 @@ void uart_input_get_line(char *buf, size_t max_len)
|
||||
}
|
||||
|
||||
|
||||
void send_lora_message(const char* text)
|
||||
void send_lora_message(const char* text, uint32_t timer)
|
||||
{
|
||||
int ret = lora_config(lora_dev_master, &tx_config_master);
|
||||
if (ret != 0) {
|
||||
@ -74,15 +74,16 @@ void send_lora_message(const char* text)
|
||||
}
|
||||
|
||||
DataPacket pkt;
|
||||
|
||||
memset(&pkt, 0, sizeof(pkt));
|
||||
strncpy(pkt.message, text, sizeof(pkt.message));
|
||||
pkt.timestamp = k_uptime_get();
|
||||
strncpy(pkt.message, encrypted, sizeof(pkt.message));
|
||||
pkt.timestamp = timer;
|
||||
|
||||
ret = lora_send(lora_dev_master, (uint8_t *)&pkt, sizeof(pkt));
|
||||
if (ret < 0) {
|
||||
printk("Senden fehlgeschlagen: %d\n", ret);
|
||||
} else {
|
||||
printk("Gesendet: \"%s\"\n", text);
|
||||
printk("Gesendet: \"%s\"\n", encrypted);
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,35 +95,33 @@ void send_loop_thread(void *p1, void *p2, void *p3)
|
||||
char local_copy[32];
|
||||
|
||||
while (1) {
|
||||
printk("Warte 120 Sekunden...\n");
|
||||
k_msleep(SLEEP_INTERVAL_MS);
|
||||
|
||||
printk("Sendephase gestartet\n");
|
||||
|
||||
// Wort einfrieren
|
||||
k_mutex_lock(&word_mutex, K_FOREVER);
|
||||
strncpy(local_copy, latest_word, sizeof(local_copy));
|
||||
strncpy(local_copy, encrypted, sizeof(local_copy));
|
||||
local_copy[sizeof(local_copy) - 1] = '\0';
|
||||
k_mutex_unlock(&word_mutex);
|
||||
|
||||
uint32_t start = k_uptime_get();
|
||||
while ((k_uptime_get() - start) < active_time_ms) {
|
||||
send_lora_message(local_copy);
|
||||
send_lora_message(local_copy, (active_time_ms - (k_uptime_get() - start)));
|
||||
k_msleep(interval_ms);
|
||||
}
|
||||
|
||||
printk("Sendephase beendet\n");
|
||||
printk("Warte 120 Sekunden...\n");
|
||||
k_msleep(SLEEP_INTERVAL_MS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void input_thread(void *p1, void *p2, void *p3)
|
||||
{
|
||||
char buffer[32];
|
||||
|
||||
while (1) {
|
||||
printk("⌨️ Neues Wort eingeben:\n");
|
||||
printk("Neues Wort eingeben:\n");
|
||||
uart_input_get_line(buffer, sizeof(buffer));
|
||||
|
||||
k_mutex_lock(&word_mutex, K_FOREVER);
|
||||
@ -130,7 +129,8 @@ void input_thread(void *p1, void *p2, void *p3)
|
||||
latest_word[sizeof(latest_word) - 1] = '\0';
|
||||
k_mutex_unlock(&word_mutex);
|
||||
|
||||
printk("✅ Neues Wort gespeichert: \"%s\"\n", latest_word);
|
||||
printk("Neues Wort gespeichert: \"%s\"\n", latest_word);
|
||||
xorCrypt(latest_word, encrypted, 0x5A);
|
||||
}
|
||||
|
||||
|
||||
@ -139,12 +139,12 @@ void input_thread(void *p1, void *p2, void *p3)
|
||||
void master_init(void)
|
||||
{
|
||||
if (!device_is_ready(lora_dev_master)) {
|
||||
printk("❌ LoRa-Gerät nicht bereit\n");
|
||||
printk("LoRa-Gerät nicht bereit\n");
|
||||
return;
|
||||
}
|
||||
|
||||
k_mutex_init(&word_mutex);
|
||||
|
||||
xorCrypt(latest_word, encrypted, 0x5A);
|
||||
k_thread_create(&input_thread_data, input_stack_area, INPUT_STACK_SIZE,
|
||||
input_thread, NULL, NULL, NULL, INPUT_PRIORITY, 0, K_NO_WAIT);
|
||||
k_thread_create(&send_thread_data, send_stack_area, STACK_SIZE,
|
||||
|
1776
src/oled/font.c
1776
src/oled/font.c
File diff suppressed because it is too large
Load Diff
@ -300,12 +300,10 @@ const unsigned char* fullscreen_allArray[36] = {
|
||||
|
||||
void set_pixel(uint8_t* framebuffer, int fb_width, int x, int y) {
|
||||
// Sicherstellen, dass der Pixel innerhalb der Grenzen liegt
|
||||
// Du solltest auch die fb_height hier prüfen, um sicherzugehen
|
||||
if (x < 0 || x >= fb_width || y < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// KORREKTE Logik für VERTIKALES/Page-Layout
|
||||
uint16_t byte_index = x + (y / 8) * fb_width;
|
||||
uint8_t bit_mask = 1 << (y % 8);
|
||||
|
||||
@ -313,10 +311,6 @@ void set_pixel(uint8_t* framebuffer, int fb_width, int x, int y) {
|
||||
framebuffer[byte_index] |= bit_mask;
|
||||
}
|
||||
|
||||
|
||||
// Die korrigierte Hauptfunktion
|
||||
// HINWEIS: Diese Funktion geht davon aus, dass CHAR_HEIGHT durch 8 teilbar ist.
|
||||
// Bei 32x16 ist das der Fall.
|
||||
void create_fullscreen_char(char character, uint8_t* framebuffer, int fb_width, int fb_height, uint8_t scale) {
|
||||
|
||||
memset(framebuffer, 0, ((fb_width + 7) / 8) * fb_height);
|
||||
@ -340,30 +334,21 @@ void create_fullscreen_char(char character, uint8_t* framebuffer, int fb_width,
|
||||
for (int y = 0; y < CHAR_HEIGHT; y++) {
|
||||
for (int x = 0; x < CHAR_WIDTH; x++) {
|
||||
|
||||
// ======================================================================
|
||||
// ## FINALE KORREKTUR: Pixel aus dem Font-Array Page-basiert lesen ##
|
||||
|
||||
// Finde den Index im Font-Array. Die Logik ist jetzt fast identisch zu set_pixel!
|
||||
int font_page = y / 8;
|
||||
int font_byte_index = x + (font_page * CHAR_WIDTH);
|
||||
|
||||
// Die Bit-Maske für die y-Position (LSB-First)
|
||||
int font_bit_mask = 1 << (y % 8);
|
||||
|
||||
// Prüfen, ob das Bit im Font-Array gesetzt ist
|
||||
if (char_bitmap[font_byte_index] & font_bit_mask) {
|
||||
// ======================================================================
|
||||
|
||||
// Skalierungs-Logik (bleibt unverändert)
|
||||
for (int sy = 0; sy < scale; sy++) {
|
||||
for (int sx = 0; sx < scale; sx++) {
|
||||
int target_x = start_x + (x * scale) + sx;
|
||||
int target_y = start_y + (y * scale) + sy;
|
||||
if (target_y < fb_height) {
|
||||
set_pixel(framebuffer, fb_width, target_x, target_y);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int sy = 0; sy < scale; sy++) {
|
||||
for (int sx = 0; sx < scale; sx++) {
|
||||
int target_x = start_x + (x * scale) + sx;
|
||||
int target_y = start_y + (y * scale) + sy;
|
||||
if (target_y < fb_height) {
|
||||
set_pixel(framebuffer, fb_width, target_x, target_y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
140
src/oled/oled.c
140
src/oled/oled.c
@ -14,10 +14,10 @@
|
||||
#define OLED_H 64
|
||||
#define OLED_PAGES (OLED_H/8)
|
||||
|
||||
// --- Globale Variablen ---
|
||||
// Globale Variablen
|
||||
static uint8_t framebuffer[OLED_W * OLED_PAGES];
|
||||
|
||||
// --- GPIOs und SPI Konfiguration ---
|
||||
// GPIOs und SPI Konfiguration
|
||||
static const struct gpio_dt_spec oled_cs = GPIO_DT_SPEC_GET(OLED_NODE, cs_gpios);
|
||||
static const struct gpio_dt_spec oled_dc = GPIO_DT_SPEC_GET(OLED_NODE, dc_gpios);
|
||||
static const struct gpio_dt_spec oled_reset = GPIO_DT_SPEC_GET(OLED_NODE, reset_gpios);
|
||||
@ -28,7 +28,7 @@ static struct spi_config spi_cfg = {
|
||||
.cs = NULL,
|
||||
};
|
||||
|
||||
// --- Low-Level Treiberfunktionen ---
|
||||
// Low-Level Treiberfunktionen
|
||||
#define OLED_CS_ENABLE gpio_pin_set_raw(oled_cs.port, oled_cs.pin, 0)
|
||||
#define OLED_CS_DISABLE gpio_pin_set_raw(oled_cs.port, oled_cs.pin, 1)
|
||||
#define OLED_DC_COMMAND gpio_pin_set_raw(oled_dc.port, oled_dc.pin, 0)
|
||||
@ -76,131 +76,8 @@ void OLED_Refresh(void) {
|
||||
OLED_CS_DISABLE;
|
||||
}
|
||||
|
||||
// --- Eingebaute 8x8 Schriftart ---
|
||||
static const uint8_t font8x8_basic[95][8] = {
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // ' '
|
||||
{0x18,0x3C,0x3C,0x18,0x18,0x00,0x18,0x00}, // '!'
|
||||
{0x24,0x7E,0x7E,0x24,0x00,0x00,0x00,0x00}, // '"'
|
||||
{0x24,0x24,0x7E,0x24,0x7E,0x24,0x24,0x00}, // '#'
|
||||
{0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00}, // '$'
|
||||
{0x00,0x66,0x66,0x3C,0x18,0x3C,0x66,0x66}, // '%'
|
||||
{0x38,0x6C,0x6C,0x38,0x6D,0x66,0x3B,0x00}, // '&'
|
||||
{0x18,0x3C,0x30,0x00,0x00,0x00,0x00,0x00}, // '''
|
||||
{0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00}, // '('
|
||||
{0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00}, // ')'
|
||||
{0x00,0x00,0x2A,0x1C,0x7F,0x1C,0x2A,0x00}, // '*'
|
||||
{0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00}, // '+'
|
||||
{0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30}, // ','
|
||||
{0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00}, // '-'
|
||||
{0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00}, // '.'
|
||||
{0x06,0x0C,0x18,0x30,0x60,0x60,0x60,0x00}, // '/'
|
||||
{0x3C,0x66,0x6E,0x76,0x7E,0x66,0x66,0x3C}, // '0'
|
||||
{0x18,0x38,0x18,0x18,0x18,0x18,0x18,0x3C}, // '1'
|
||||
{0x3C,0x66,0x06,0x0C,0x18,0x30,0x60,0x7E}, // '2'
|
||||
{0x3C,0x66,0x06,0x3C,0x06,0x06,0x66,0x3C}, // '3'
|
||||
{0x0C,0x1C,0x3C,0x6C,0x7E,0x0C,0x0C,0x0C}, // '4'
|
||||
{0x7E,0x60,0x60,0x7C,0x06,0x06,0x66,0x3C}, // '5'
|
||||
{0x3C,0x60,0x60,0x7C,0x66,0x66,0x66,0x3C}, // '6'
|
||||
{0x7E,0x06,0x0C,0x18,0x30,0x30,0x30,0x30}, // '7'
|
||||
{0x3C,0x66,0x66,0x3C,0x66,0x66,0x66,0x3C}, // '8'
|
||||
{0x3C,0x66,0x66,0x66,0x3E,0x06,0x06,0x3C}, // '9'
|
||||
{0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00}, // ':'
|
||||
{0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30}, // ';'
|
||||
{0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00}, // '<'
|
||||
{0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00}, // '='
|
||||
{0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00}, // '>'
|
||||
{0x3C,0x66,0x06,0x0C,0x18,0x00,0x18,0x00}, // '?'
|
||||
{0x3C,0x66,0x6E,0x6A,0x6E,0x60,0x66,0x3C}, // '@'
|
||||
{0x18,0x3C,0x66,0x66,0x7E,0x66,0x66,0x66}, // 'A'
|
||||
{0x7C,0x66,0x66,0x7C,0x66,0x66,0x66,0x7C}, // 'B'
|
||||
{0x3C,0x66,0x60,0x60,0x60,0x60,0x66,0x3C}, // 'C'
|
||||
{0x7C,0x66,0x66,0x66,0x66,0x66,0x66,0x7C}, // 'D'
|
||||
{0x7E,0x60,0x60,0x78,0x60,0x60,0x60,0x7E}, // 'E'
|
||||
{0x7E,0x60,0x60,0x78,0x60,0x60,0x60,0x60}, // 'F'
|
||||
{0x3C,0x66,0x60,0x6E,0x66,0x66,0x66,0x3E}, // 'G'
|
||||
{0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x66}, // 'H'
|
||||
{0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x3C}, // 'I'
|
||||
{0x1E,0x0C,0x0C,0x0C,0x0C,0x0C,0xCC,0x78}, // 'J'
|
||||
{0x66,0x6C,0x78,0x70,0x78,0x6C,0x66,0x00}, // 'K'
|
||||
{0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7E}, // 'L'
|
||||
{0xC6,0xEE,0xFE,0xD6,0xC6,0xC6,0xC6,0x00}, // 'M'
|
||||
{0x66,0x66,0x76,0x7E,0x6E,0x66,0x66,0x00}, // 'N'
|
||||
{0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x3C}, // 'O'
|
||||
{0x7C,0x66,0x66,0x7C,0x60,0x60,0x60,0x60}, // 'P'
|
||||
{0x3C,0x66,0x66,0x66,0x66,0x6A,0x6C,0x3E}, // 'Q'
|
||||
{0x7C,0x66,0x66,0x7C,0x6C,0x66,0x66,0x00}, // 'R'
|
||||
{0x3C,0x66,0x60,0x3C,0x06,0x66,0x3C,0x00}, // 'S'
|
||||
{0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18}, // 'T'
|
||||
{0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7E}, // 'U'
|
||||
{0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00}, // 'V'
|
||||
{0xC6,0xC6,0xC6,0xD6,0xFE,0xEE,0xC6,0x00}, // 'W'
|
||||
{0x66,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00}, // 'X'
|
||||
{0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00}, // 'Y'
|
||||
{0x7E,0x06,0x0C,0x18,0x30,0x60,0x7E,0x00}, // 'Z'
|
||||
{0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00}, // '['
|
||||
{0x60,0x30,0x18,0x0C,0x06,0x06,0x06,0x00}, // '\'
|
||||
{0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00}, // ']'
|
||||
{0x38,0x6C,0x00,0x00,0x00,0x00,0x00,0x00}, // '^'
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, // '_'
|
||||
{0x30,0x18,0x0C,0x00,0x00,0x00,0x00,0x00}, // '`'
|
||||
{0x00,0x00,0x3C,0x06,0x3E,0x66,0x66,0x3E}, // 'a'
|
||||
{0x60,0x60,0x60,0x7C,0x66,0x66,0x66,0x7C}, // 'b'
|
||||
{0x00,0x00,0x3C,0x66,0x60,0x60,0x66,0x3C}, // 'c'
|
||||
{0x06,0x06,0x06,0x3E,0x66,0x66,0x66,0x3E}, // 'd'
|
||||
{0x00,0x00,0x3C,0x66,0x7E,0x60,0x66,0x3C}, // 'e'
|
||||
{0x1C,0x36,0x30,0x78,0x30,0x30,0x30,0x00}, // 'f'
|
||||
{0x00,0x00,0x3E,0x66,0x66,0x3E,0x06,0x66}, // 'g'
|
||||
{0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x00}, // 'h'
|
||||
{0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x3C}, // 'i'
|
||||
{0x0C,0x00,0x1C,0x0C,0x0C,0xCC,0x78,0x00}, // 'j'
|
||||
{0x60,0x60,0x6C,0x78,0x70,0x78,0x6C,0x00}, // 'k'
|
||||
{0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, // 'l'
|
||||
{0x00,0x00,0xEC,0xFE,0xD6,0xD6,0xD6,0x00}, // 'm'
|
||||
{0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x00}, // 'n'
|
||||
{0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C}, // 'o'
|
||||
{0x00,0x00,0x7C,0x66,0x66,0x7C,0x60,0x60}, // 'p'
|
||||
{0x00,0x00,0x3E,0x66,0x66,0x3E,0x06,0x0E}, // 'q'
|
||||
{0x00,0x00,0x7C,0x66,0x60,0x60,0x60,0x00}, // 'r'
|
||||
{0x00,0x00,0x3E,0x60,0x3C,0x06,0x7C,0x00}, // 's'
|
||||
{0x10,0x30,0x7C,0x30,0x30,0x30,0x18,0x00}, // 't'
|
||||
{0x00,0x00,0x66,0x66,0x66,0x66,0x3E,0x00}, // 'u'
|
||||
{0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00}, // 'v'
|
||||
{0x00,0x00,0xC6,0xD6,0xFE,0xEE,0xC6,0x00}, // 'w'
|
||||
{0x00,0x00,0x66,0x3C,0x18,0x3C,0x66,0x00}, // 'x'
|
||||
{0x00,0x00,0x66,0x66,0x3E,0x06,0x0C,0x78}, // 'y'
|
||||
{0x00,0x00,0x7E,0x0C,0x18,0x30,0x7E,0x00}, // 'z'
|
||||
{0x0E,0x18,0x18,0x18,0x18,0x18,0x0E,0x00}, // '{'
|
||||
{0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}, // '|'
|
||||
{0x70,0x18,0x18,0x18,0x18,0x18,0x70,0x00}, // '}'
|
||||
{0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00}, // '~'
|
||||
};
|
||||
// Ein bildschirmfüllender Buchstabe 'A' (128x64 Pixel)
|
||||
// Format: Vertikale Bytes, 1 Bit pro Pixel
|
||||
|
||||
|
||||
static inline void OLED_Draw_Char_Simple(int x0, int y0, char c) {
|
||||
if (c < ' ' || c > '~') return;
|
||||
uint8_t char_index = c - ' ';
|
||||
for (int row = 0; row < 8; row++) {
|
||||
uint8_t row_data = font8x8_basic[char_index][row];
|
||||
for (int col = 0; col < 8; col++) {
|
||||
if (row_data & (0x80 >> col)) {
|
||||
OLED_Set_Pixel(x0 + col, y0 + row, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static inline void OLED_Draw_String_Simple(int x, int y, const char *str) {
|
||||
int current_x = x;
|
||||
while (*str) {
|
||||
OLED_Draw_Char_Simple(current_x, y, *str);
|
||||
current_x += 8;
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
// --- Hauptfunktionen ---
|
||||
// Hauptfunktionen
|
||||
void oled_init(void) {
|
||||
printk("OLED Init (Raw-Modus)...\n");
|
||||
if (!device_is_ready(spi_dev) || !device_is_ready(oled_cs.port) || !device_is_ready(oled_dc.port) || !device_is_ready(oled_reset.port)) {
|
||||
@ -244,7 +121,6 @@ void oled_init(void) {
|
||||
printk("Initialisierung gesendet.\n");
|
||||
}
|
||||
|
||||
// Stelle sicher, dass diese Funktion in deinem Code existiert:
|
||||
void OLED_Draw_Fullscreen_Bitmap(const uint8_t *bitmap) {
|
||||
memcpy(framebuffer, bitmap, sizeof(framebuffer));
|
||||
}
|
||||
@ -252,10 +128,6 @@ void OLED_Draw_Fullscreen_Bitmap(const uint8_t *bitmap) {
|
||||
|
||||
void oled_draw_something(char toDraw) {
|
||||
OLED_Clear_Buffer();
|
||||
//OLED_Draw_String_Simple(0, 0, "Hallo!");
|
||||
//1. Zeichne die bildschirmfüllende Grafik in den Buffer
|
||||
create_fullscreen_char('M', framebuffer, 128, 64, 4);
|
||||
//set_pixel(framebuffer, 128, 0, 0);
|
||||
OLED_Refresh();
|
||||
|
||||
create_fullscreen_char(toDraw, framebuffer, 128, 64, 4);
|
||||
OLED_Refresh();
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
#include "utils/buttons.h"
|
||||
|
||||
const struct gpio_dt_spec button0 = GPIO_DT_SPEC_GET_OR(SW0_NODE, gpios, {0});
|
@ -22,7 +22,7 @@ void dc_init(const char *type_str, int slot) {
|
||||
if (strcmp(type_str, "EPD") == 0) {
|
||||
#if DT_NODE_EXISTS(DT_NODELABEL(epd))
|
||||
epd_init();
|
||||
epd_draw_something('4');
|
||||
epd_draw_something(' ');
|
||||
display_type = DISPLAY_EPD;
|
||||
printk("EPD Display initialisiert (Slot %d)\n", slot);
|
||||
#else
|
||||
@ -34,19 +34,20 @@ void dc_init(const char *type_str, int slot) {
|
||||
} else if (strcmp(type_str, "OLED") == 0) {
|
||||
#if DT_NODE_EXISTS(DT_NODELABEL(oled))
|
||||
oled_init();
|
||||
oled_draw_something('4');
|
||||
oled_draw_something(' ');
|
||||
display_type = DISPLAY_OLED;
|
||||
printk("OLED Display initialisiert (Slot %d)\n", slot);
|
||||
#endif
|
||||
} else {
|
||||
display_type = DISPLAY_NONE;
|
||||
printk("Unbekannter Displaytyp: %s\n", type_str);
|
||||
printk("Unbekannter Displaytyp: %s (Slot %d)\n", type_str, slot);
|
||||
}
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
void dc_draw_something(char to_draw) {
|
||||
void dc_draw_something(const char *message) {
|
||||
char to_draw = message[display_slot];
|
||||
switch (display_type) {
|
||||
case DISPLAY_EPD:
|
||||
#if DT_NODE_EXISTS(DT_NODELABEL(epd))
|
||||
|
@ -1,26 +0,0 @@
|
||||
#include "utils/leds.h"
|
||||
|
||||
const struct gpio_dt_spec led_green = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
|
||||
|
||||
void turnOutLEDS(void){
|
||||
gpio_pin_set_dt(&led_green, 0);
|
||||
// //gpio_pin_set_dt(&led_red, 0);
|
||||
//gpio_pin_set_dt(&led_blue, 0);
|
||||
|
||||
}
|
||||
|
||||
void updateLEDS(void){
|
||||
// if(synchronized){
|
||||
// gpio_pin_set_dt(&led_green, 1);
|
||||
// }
|
||||
/*if(!slave){
|
||||
gpio_pin_set_dt(&led_blue, 1);
|
||||
}else{
|
||||
gpio_pin_set_dt(&led_blue, 0);
|
||||
}*/
|
||||
/*if(error){
|
||||
gpio_pin_set_dt(&led_red, 1);
|
||||
}else{
|
||||
gpio_pin_set_dt(&led_red, 0);
|
||||
}*/
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user