From c524b034e161d2224b0de2ec8eb499cb8a9fc65d Mon Sep 17 00:00:00 2001 From: Sergey Yarkov Date: Tue, 20 Sep 2022 20:15:47 +0300 Subject: [PATCH] feat: reading data from serial port --- build/default/production/command.o | Bin 7784 -> 7916 bytes build/default/production/main.o | Bin 8044 -> 8044 bytes command.c | 2 + command.h | 1 + ...28da48_web-serial-example.X.production.elf | Bin 45572 -> 45632 bytes ...28da48_web-serial-example.X.production.hex | 122 +++++----- ...28da48_web-serial-example.X.production.map | 226 +++++++++--------- dist/default/production/memoryfile.xml | 4 +- nbproject/private/private.xml | 2 + web/app.js | 39 ++- 10 files changed, 207 insertions(+), 189 deletions(-) diff --git a/build/default/production/command.o b/build/default/production/command.o index 33ce210b2dbfe6932b97fbbc959015113a3a14b1..d7f46ff62b72b12c1cf6bd73589355511662f503 100644 GIT binary patch delta 1512 zcmZ9LU1(fY5XaA)-MjH_HrZseyGi#;n~k~HhNNqYh<3FhO}{L*CTYZ0OxEl+NzHD{ zW=kWqyGr9jL9{ybrKl}P5sP0j3iiQ|q7Mp!584;M`yez>AAC}wg8#WaDOU&1oZq=K zXU?3NbFXc_o)3XXX_`qt66^l~J1&t@l1WtA$Wy5pO&uR(FZwtN~J33#e*7|3}iXF3+X|U#C^YOdM4k+?zJLqa*vTyUS zR%GM;NX2ri;aksdHNU`{LtCi6d?GZYsm_;M2RbEm8^)3VWH&}c+1wO@! zri;HE8x@BCA@DX~^JsP%mN?^vqu~99w}PJ%j;V$kMq7^l#d_`La! z-$Pw8j3=bNGAvL22jf2m_TyQR`yZfQ!Y%j+*(4ml*`9kXbZT`mXbj>sy!>3pgS1A@ z{SiYhDg3M9I{y?M$nC|-M)qPAZZSLpj(a#^c#iY2Pf`4TV%wpI;~S~WPse|0NSSuR z=XS&y2k$W~9o}cS2tHs~%3Ux#2QC?w=YC8WZ3uu*7?#qXG@JpSGTZ}xkyO9CLCSr` z7^KAK3~vEnFuWD~CjZ{K2ai49wO;FdN zn5&;nI@Su}Oz_*utks5}=sI6XW@!ii4f`9sHs#O_-kEZ=6Xa^DS8s^(*;Fq*%9mkT zuWUdJSYn4k~vqKSdP!UIAgGsc)0q9#5%orwfOj1LAQ4`BS>-!5jnaFgG;pL@=^ z=bn4+`Tg(_#KM7M)fA}Md1U&s(GKykqbyudc%ftg-eIpDflYV6K0xSWZR__^|PWv^jyEk>mU)zqYunnuG zTE47~ged&Tee!QB;q33^2TzPI$~Di>pgSAq|1-AyUCcA}+EnFbGLyS+rQJ8bz3sNL zYs>l5P6;LY`4gG*o{7T0Ts^RUnsC7EOrcf>l8pG?=vB6t*rjZbBikX_R>U^0gQG2{ z7_L6K;rl>d@juD6`3wHM;+ov)9PHZZl*y*k=0rUO5jP(=m%69!d&jrz-ZQj+yi_gb zrwcU+1;6J}`7M~==n4=`V%r{k3Y@_F3_cIyJcRjKd~JrG1Bcg2H8jpy`6~1%l*x`+4(z&Zffp;5~CCC z!!f746kfsW4Qro`*8E?Q$9eTZ@Xz@4mHqzHt%^imIwPPzdVR%wL zi++hBmt)%@&&GziAXj6*Hg>^(2Yl8bj()K*!@9(K4Nrpi8P;w2l4g|K13qk6m-tn~ z8SoLqJ>a(u>#DwM*r_B_%n9@a3?CW8R`ADiI6j6ZU5NK9bv+<|CUzs~Ey=7khX?so z%E>GrmG_f5?w0eAi?W!^S&N8Jm8TOCNu`3$>R}m5Wvxp{^(Wbv%5qGOq;l45J5f{K zN=4*SD#$Il0^Q#>y2aV+PY2c4QOTrxtp~hlEl2r$I>>RUq;u9b=uSGDKTij(NxbE8 zSx9HCYd*B7<9i#vwsd52JR+MjId!W`CNjNNF;3LyY&?+(s&D;r8p=4Tens#44;n)1 AiU0rr diff --git a/build/default/production/main.o b/build/default/production/main.o index 8c9455b991a33b08280653add24cb15d1e873157..87fc2b265f29139d8ccf8ba181b545ebc3d3dce4 100644 GIT binary patch delta 20 bcmaE3_r`9694DjTWO+_4MuE* #include +#define EOT 0x04 #define COMMAND_SIZE 5 #define COMMAND_MAX_NAME_LENGTH 20 diff --git a/dist/default/production/avr128da48_web-serial-example.X.production.elf b/dist/default/production/avr128da48_web-serial-example.X.production.elf index 01cfe2b7f9a964d7e70a458360d51a892b9c75ca..4b7f985a17e4e6def6844790734dfabb7b2b8395 100644 GIT binary patch delta 3523 zcmc&$e{9p&5r6Od_19qPd=uN`2aMKn3=V~WaXL*cq>yZZwWBm^%POX^mMjE38J4xnZb&hfb$#d`|B(j|1rHrv+VE+IpB;4EiW^*! z+6gv1#%`(I5|EoHYFSp8uk8!f-ENqC?Pe!5ugaRKhRGw-d_DNrKMAs&45PxaM>9js z+MlHv+N-`zRBb#VZ&29SX1it)Vm8iigiLF$G|6XmJ4zudf@}bD7Up4k5mHkZVi(XG zIPx~kZLyzNHx?W0V1hn+Jl8P-j*&bqtF1yfuhOh1e*J<82|I-J%~?Xs8-2ksGreqLT=VQM^}u(jbnX0h=jYR=F8F$2dQ6#qHPh7f8^q$6 zbA?UwV$POTJL~Ey>$kpKyQ68hkVUc$8{jfw+v8Z^=mdWObOpeUVlAHom*;rPZ$Y}+ z*d)Y{p~Bv@4hY|Ykn;$$ESbk2c{9#))4KC1I_;n)%=5}qJi(PnxPuqcBkS_=?qKQc z?<1l`x z7c@6jHtt?tgY#$KJL=QTuhPDkW&>r3g_ z{t~*fe}RLy#aGnM{xC-9i~W0XRqI;49&Tv9s;uh;C9W*X7!Oml^;=l`MXOh~(YynX z$+p;r1D9Owe4Jw-tB7AU=4Zp1Rcs+yNs@WKrWWy;tO>)D8ds;SG_fMg78YeuOR|n| z`tia2T?$HgW_~S56T$5~?*ducm0M;TL5ZczbMiBTvO_ksiugN_bOImS!Vi4JwW&U~ zB{#k#>7$K zjGZ8^1JB&7SW*#Y=Dj%hZkU;i2~DCre3}!W#B2FE3dauz*N=&d&Zn9f%-4d{gN2z7 z&cllmLp?GOvXcZq9D9!3Qch4q$Sto?5Z@7s;%m}q$R9}f*F}!24))zQR*U>{0kg5*H}koy1;+IX51$}|se0_lR>;y7mBL>%Xfv%piahLe7+jO)xJUt|a!#;G_Hm}Bt|oKq|kIcfR= z#x(v@H>xO4`5mdYZP2w**{L-%BD|aC;c^=OAPs-Sn1)W_{h>SR>pATXq{gX5PN{e= zFxQt;Ef5}Yg!R;L+U?*fak5U~6TeW>9!OJd|DvR$kS2;%Ao7J3Cyo5N+?At?&k?wR?l z#r`HJ*zFE*N8#xNdBt|{d^w60cBz|_8ey-p8iy6%0e&T&xC6Z`1@Yi~`NxR+asjXt zeffLvBNPa`%Mx#~Q)CMMDNMEEx~AgSVV!8y0yOGf=uHZS-7|823_pyiR%;m3Xqa=p z6RyCw?2La#SM;V?oKM3NRXajGXLimw(}nm8lNx758ZJr0Po?3FX?P1`YUtr}?CF_# zHkY6qrqLc3er;~_T(-%J6ggXg@BOod#%I{BNzt<|D(TJAq?MlS^%*^|D5aKOuN`qmrV6ccoyuh6)N_)^*at}hFF`ct3R#?3Gn@*)aGTx9RJtN(|G z>EV8_jUPj9v2vx`3?09+6I9p#0-nU7ez%Q(vYy9^XVi*&{p>YkAReh+MS5nyZg4BS zM?W0!+PF~$5lvI;PeaF-`T|9urdFv$r delta 3524 zcmc&$du)`)5#QOn@8ZW{bLSdA8gf1#_BF)ram1}^D_h8bCuJYfm`@nGA zJGjuhkkWsRc*gQwdY-ea8|fNXSkp7M>O;4}ri-Kp#pU39O8-`V#pl>S!p+r+I#F*2Pr>bhpE zN+sZo&Vwg`e~JSe0*?$0{rU(1F92!fD^dyuj3O}6od916e%7K?nHZKv*#CM-#9za{ z6Sl*+903Ux2=&>vtuK^y%z|i$98_Q1*w|9BrzOx>qv-1-YZE(cwKk=kmpHBXmtC?l z$qwyn4=9!O0ZgJx5M6$@9qbPD>Ddq#Av_04v(+;-Fc}t!mu9PD+97D}KsP+|mpr?d zc}n&#JQu{%x!$UHbIJ3xl24SZrPR>xOY&@nET)q0fAhVyx9(>rN!5(1 znwo&JB#W$!=BlPzWwEop>`6mv8{q9_TWuwfKC|*Rvpx*_Uf6_;Yr3Ux|CU6f>u1WS~n{EGmuR+GBq(yJv`*b7Mc2R zWRZ(OTJ`P_UIVgrnPEk&14R}gvJ_x>QVA#%Z7TfUqd^d(ZuE;7VQXxRy6D0mipFSW zYC+F1r}5K$UdQJ+Dw}$dsRFx(thuMpopl8gsYYRc1zFS~8WrIVzt^|6OD^F{AgP0J zxukF@9~EIL47QAlFdeZ($|I*KoifrDrDIDkkopNp(dASl!)!~yW>W%}gL8{hWSDIO zN(mB?&xU@+E}~fu_Pc0?FXMZjZ{w?Z#emNriEmM>%qS9DhDBwVTyn^;s7#Y-!=gMUuZ-d~CO#d-c_zLR#raa7&{Kn@ z+AWK~c0n#R04|FN;~aGo_@hwpRi7@EI?KpWE0hJ3V{t05BP3=EWoEJ6t#<-xr2l{@6T?*i$Ut11$BG zt>!AXdRgoo9CA6NO0rp}%2%(O+Bs-r=l;pmt{8SXBE`y8Im(8U#{Py~Rk6N#qLpwM zQagVf-Vld3$Khw=aHU{=cUWpUXMPul&0UZ9+_8CX!Y|UnoVbhk%z2$7GH-Zf`F=KH zeY1Rd#O0S8h4u;Zs2z~yamarjCw{0K#S0`ucCtq>uO4-oZ$P@F6K`NF&TAT2?&X7~ zeU17RMD)&Vy8+~*W+g0io-w0?8rsU#YMdbyXMQIu4Q|E6hC^gD||vQuQ)1u zE<9R}Z|70pvRg40H)A>u6ROt1b4Od2o#`6{nIljeXUb@LuV_tpN;DclN#sK`X`4?jz z8t1=^d2N4aQ|hjbZNXf9aX+sO=2Hzn9rWsdALf0*e0{5rj|X!N$@~^iPG<0Ya3y_@ z{}J>Ua!$uN>(o<*^x0Rr0g~K{S$^k~7pbqC-^6i``L{2D{gCA5wexmJvi3ec07)9^ zEWbJa47%UqxXX}Vr%mjh2*=3a%88YT);i%aLug&mU~LoRI{7ekVZR>W11q#eD?J&@!%pTd^B`olN)%49wbF->_hZyi(WCTbKJ Hv?Tlo2u;ZP diff --git a/dist/default/production/avr128da48_web-serial-example.X.production.hex b/dist/default/production/avr128da48_web-serial-example.X.production.hex index 2ddd668..3bfbde7 100644 --- a/dist/default/production/avr128da48_web-serial-example.X.production.hex +++ b/dist/default/production/avr128da48_web-serial-example.X.production.hex @@ -1,24 +1,24 @@ -:100000000C9477000C946B020C946B020C946B02B2 -:100010000C946B020C946B020C946B020C946B02AC -:100020000C946B020C946B020C946B020C946B029C -:100030000C946B020C946B020C946B020C946B028C -:100040000C946B020C946B020C946B020C946B027C -:100050000C946B020C946B020C946B020C946B026C -:100060000C946B020C946B020C946B020C946B025C -:100070000C946B020C946B020C946B020C94FA00BF -:100080000C946B020C946B020C946B020C946B023C -:100090000C946B020C946B020C946B020C946B022C -:1000A0000C946B020C946B020C946B020C946B021C -:1000B0000C946B020C946B020C946B020C946B020C -:1000C0000C946B020C946B020C946B020C946B02FC -:1000D0000C946B020C946B020C946B020C946B02EC -:1000E0000C946B020C946B02400040848000809161 +:100000000C9477000C9471020C9471020C947102A0 +:100010000C9471020C9471020C9471020C94710294 +:100020000C9471020C9471020C9471020C94710284 +:100030000C9471020C9471020C9471020C94710274 +:100040000C9471020C9471020C9471020C94710264 +:100050000C9471020C9471020C9471020C94710254 +:100060000C9471020C9471020C9471020C94710244 +:100070000C9471020C9471020C9471020C94FA00AD +:100080000C9471020C9471020C9471020C94710224 +:100090000C9471020C9471020C9471020C94710214 +:1000A0000C9471020C9471020C9471020C94710204 +:1000B0000C9471020C9471020C9471020C947102F4 +:1000C0000C9471020C9471020C9471020C947102E4 +:1000D0000C9471020C9471020C9471020C947102D4 +:1000E0000C9471020C947102400040848000809155 :1000F00001108F7C806080688093011011241FBEE6 :10010000CFEFCDBFDFE7DEBFE8EEF0E040E019C0A3 :10011000B791A79137912791079107FD0EC097914D :100120008791EF01F92FE82F0BBF07900D92A217CF :10013000B307D9F7FE011BBE04C01D92A217B30777 -:10014000E1F7ED3EF40721F70E9401020C943E0214 +:10014000E1F7ED3EF40721F70E9407020C94440208 :04015000F894FFCF51 :100154005B4C4F475D3A20436F6D6D616E64206365 :100164006F6D706C65746564207375636365737318 @@ -38,54 +38,54 @@ :100234008240F0E0E259FF4B808315C08EE690E4E3 :100244000E94480110928240EEE6F0E40190002002 :10025400E9F73197AF014E56504460E070E08EE606 -:1002640090E40E944902FF91EF91BF91AF919F9159 +:1002640090E40E944F02FF91EF91BF91AF919F9153 :100274008F917F916F915F914F913F912F910F904B :0C0284000BBE0F900FBE0F901F9018953E :10029000CF92DF92EF92FF920F931F93CF93DF9352 :1002A0007C0102E010E4C0E0D0E0B801C7010E9488 -:1002B0003002892B91F486E18C9FF0018D9FF00D27 +:1002B0003602892BA9F486E18C9FF0018D9FF00D09 :1002C0001124E050F04C0190F081E02D099584E577 -:1002D00091E80E94DF0180E00BC021960A5E1F4F6B -:1002E000C630D10511F78AE891E80E94DF0181E06C -:1002F000DF91CF911F910F91FF90EF90DF90CF9002 -:0203000008955E -:10030200CF93DF93CDB7DEB76697CDBFDEBFFB01DC -:1003120001900020E9F73197E61BF70B759708F576 -:1003220020918340253010F01092834089839A8374 -:10033200CE0103960E945A02A091834081E08A0F67 -:100342008093834086E1A89FD0011124A050B04C35 -:1003520086E1FE01319601900D928A95E1F781E0E6 -:1003620001C080E06696CDBFDEBFDF91CF910895D8 -:100372000F931F93CF9388EA91E80E94DF0100E078 -:1003820010E4C1E3F80180819181892B71F08C2FF7 -:100392000E9452028CEC91E80E94DF01C801029691 -:1003A2000E94DF018AE00E9452020A5E1F4FCF5F65 -:0C03B200C63341F7CF911F910F910895C1 -:1003BE00EF92FF920F931F93CF93DF938C017C01EB -:1003CE00C0E0D0E006C0F70181917F010E94520289 -:1003DE002196F80101900020E9F73197E01BF10B0F -:1003EE00CE17DF0780F3DF91CF911F910F91FF9012 -:0403FE00EF900895DF -:1004020080E4809341040E941A0278946DED71E8B1 -:1004120087E692E00E94810168EE71E882E692E04E -:100422000E9481016EEE71E889EB91E00E948101E8 -:02043200FFCFFA -:10043400E0E2F8E083E896E08087918783E08783B1 -:10044400A0E4B4E081E011968C93119782E01296B7 -:0C0454008C9380E8858380EC86830895FB -:10046000DC01FB019D912191921303C09111FACF00 -:0C047000292F892F90E0821B910908952C -:10047C00EC010E9470020E946F02CE010E94710278 -:06048C00CE010E946D028A -:10049200FC01480F591FE417F50711F06193FBCFD8 -:0204A2000895BB -:1004A400E0E2F8E0948195FFFDCF8093220808955F -:1004B400FC01DB012D91BD0121932111FACF089597 -:0A04C4008FEC91E80E94DF0108951B -:0804CE0080E4809347040895C7 -:0404D6000C94000082 -:0404DA000E94A800D4 -:0204DE0008957F -:0204E00008957D -:0204E20008957B +:1002D00091E80E94E50184E00E94580280E00EC08F +:1002E00021960A5E1F4FC630D105F9F68AE891E8DB +:1002F0000E94E50184E00E94580281E0DF91CF91E5 +:0E0300001F910F91FF90EF90DF90CF90089526 +:10030E00CF93DF93CDB7DEB76697CDBFDEBFFB01D0 +:10031E0001900020E9F73197E61BF70B759708F56A +:10032E0020918340253010F01092834089839A8368 +:10033E00CE0103960E946002A091834081E08A0F55 +:10034E008093834086E1A89FD0011124A050B04C29 +:10035E0086E1FE01319601900D928A95E1F781E0DA +:10036E0001C080E06696CDBFDEBFDF91CF910895CC +:10037E000F931F93CF9388EA91E80E94E50100E066 +:10038E0010E4C1E3F80180819181892B71F08C2FEB +:10039E000E9458028CEC91E80E94E501C801029679 +:1003AE000E94E5018AE00E9458020A5E1F4FCF5F4D +:0C03BE00C63341F7CF911F910F910895B5 +:1003CA00EF92FF920F931F93CF93DF938C017C01DF +:1003DA00C0E0D0E006C0F70181917F010E94580277 +:1003EA002196F80101900020E9F73197E01BF10B03 +:1003FA00CE17DF0780F3DF91CF911F910F91FF9006 +:04040A00EF900895D2 +:10040E0080E4809341040E94200278946DED71E89F +:10041E008DE692E00E94870168EE71E888E692E030 +:10042E000E9487016EEE71E88FEB91E00E948701CA +:02043E00FFCFEE +:10044000E0E2F8E083E896E08087918783E08783A5 +:10045000A0E4B4E081E011968C93119782E01296AB +:0C0460008C9380E8858380EC86830895EF +:10046C00DC01FB019D912191921303C09111FACFF4 +:0C047C00292F892F90E0821B9109089520 +:10048800EC010E9476020E947502CE010E9477025A +:06049800CE010E94730278 +:10049E00FC01480F591FE417F50711F06193FBCFCC +:0204AE000895AF +:1004B000E0E2F8E0948195FFFDCF80932208089553 +:1004C000FC01DB012D91BD0121932111FACF08958B +:0A04D0008FEC91E80E94E501089509 +:0804DA0080E4809347040895BB +:0404E2000C94000076 +:0404E6000E94A800C8 +:0204EA00089573 +:0204EC00089571 +:0204EE0008956F :00000001FF diff --git a/dist/default/production/avr128da48_web-serial-example.X.production.map b/dist/default/production/avr128da48_web-serial-example.X.production.map index a55d66c..5d09153 100644 --- a/dist/default/production/avr128da48_web-serial-example.X.production.map +++ b/dist/default/production/avr128da48_web-serial-example.X.production.map @@ -410,12 +410,12 @@ END GROUP .debug_pubnames *(.debug_pubnames) -.debug_info 0x0000000000000000 0x401a +.debug_info 0x0000000000000000 0x4040 *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x0000000000000000 0x2c24 C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/AVR-Dx_DFP/1.10.124/xc8/avr/lib/avrxmega4/memx-const/mapped/crtavr128da48.o .debug_info 0x0000000000002c24 0x80b build/default/production/main.o .debug_info 0x000000000000342f 0x6b2 build/default/production/usart.o - .debug_info 0x0000000000003ae1 0x539 build/default/production/command.o + .debug_info 0x0000000000003ae1 0x55f build/default/production/command.o .debug_abbrev 0x0000000000000000 0x2e21 *(.debug_abbrev) @@ -424,12 +424,12 @@ END GROUP .debug_abbrev 0x0000000000002b76 0x14c build/default/production/usart.o .debug_abbrev 0x0000000000002cc2 0x15f build/default/production/command.o -.debug_line 0x0000000000000000 0x6f5 +.debug_line 0x0000000000000000 0x701 *(.debug_line .debug_line.* .debug_line_end) .debug_line 0x0000000000000000 0x222 C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/AVR-Dx_DFP/1.10.124/xc8/avr/lib/avrxmega4/memx-const/mapped/crtavr128da48.o .debug_line 0x0000000000000222 0x1bc build/default/production/main.o .debug_line 0x00000000000003de 0x175 build/default/production/usart.o - .debug_line 0x0000000000000553 0x1a2 build/default/production/command.o + .debug_line 0x0000000000000553 0x1ae build/default/production/command.o .debug_frame 0x0000000000000000 0x19c *(.debug_frame) @@ -514,151 +514,151 @@ LOAD data_init 0x00000000000001f4 __vector_31 .text.command_process - 0x0000000000000290 0x72 + 0x0000000000000290 0x7e .text.command_process - 0x0000000000000290 0x72 build/default/production/command.o + 0x0000000000000290 0x7e build/default/production/command.o 0x0000000000000290 command_process .text.command_define - 0x0000000000000302 0x70 + 0x000000000000030e 0x70 .text.command_define - 0x0000000000000302 0x70 build/default/production/command.o - 0x0000000000000302 command_define + 0x000000000000030e 0x70 build/default/production/command.o + 0x000000000000030e command_define .text.command_list - 0x0000000000000372 0x4c + 0x000000000000037e 0x4c .text.command_list - 0x0000000000000372 0x4c build/default/production/command.o - 0x0000000000000372 command_list + 0x000000000000037e 0x4c build/default/production/command.o + 0x000000000000037e command_list .text.USART1_SendString - 0x00000000000003be 0x44 + 0x00000000000003ca 0x44 .text.USART1_SendString - 0x00000000000003be 0x44 build/default/production/usart.o - 0x00000000000003be USART1_SendString + 0x00000000000003ca 0x44 build/default/production/usart.o + 0x00000000000003ca USART1_SendString -.text.main 0x0000000000000402 0x32 - .text.main 0x0000000000000402 0x32 build/default/production/main.o - 0x0000000000000402 main +.text.main 0x000000000000040e 0x32 + .text.main 0x000000000000040e 0x32 build/default/production/main.o + 0x000000000000040e main .text.USART1_Initialize - 0x0000000000000434 0x2c + 0x0000000000000440 0x2c .text.USART1_Initialize - 0x0000000000000434 0x2c build/default/production/usart.o - 0x0000000000000434 USART1_Initialize + 0x0000000000000440 0x2c build/default/production/usart.o + 0x0000000000000440 USART1_Initialize -.text.strcmp 0x0000000000000460 0x1c - .text.strcmp 0x0000000000000460 0x1c c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(strcmp.o) - 0x0000000000000460 strcmp +.text.strcmp 0x000000000000046c 0x1c + .text.strcmp 0x000000000000046c 0x1c c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(strcmp.o) + 0x000000000000046c strcmp -.text.exit 0x000000000000047c 0x16 - .text.exit 0x000000000000047c 0x16 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) - 0x000000000000047c exit +.text.exit 0x0000000000000488 0x16 + .text.exit 0x0000000000000488 0x16 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) + 0x0000000000000488 exit -.text.memset 0x0000000000000492 0x12 - .text.memset 0x0000000000000492 0x12 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(memset.o) - 0x0000000000000492 memset +.text.memset 0x000000000000049e 0x12 + .text.memset 0x000000000000049e 0x12 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(memset.o) + 0x000000000000049e memset .text.USART1_SendChar - 0x00000000000004a4 0x10 + 0x00000000000004b0 0x10 .text.USART1_SendChar - 0x00000000000004a4 0x10 build/default/production/usart.o - 0x00000000000004a4 USART1_SendChar + 0x00000000000004b0 0x10 build/default/production/usart.o + 0x00000000000004b0 USART1_SendChar -.text.strcpy 0x00000000000004b4 0x10 - .text.strcpy 0x00000000000004b4 0x10 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(strcpy.o) - 0x00000000000004b4 strcpy +.text.strcpy 0x00000000000004c0 0x10 + .text.strcpy 0x00000000000004c0 0x10 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(strcpy.o) + 0x00000000000004c0 strcpy .text.hello_world - 0x00000000000004c4 0xa + 0x00000000000004d0 0xa .text.hello_world - 0x00000000000004c4 0xa build/default/production/main.o - 0x00000000000004c4 hello_world + 0x00000000000004d0 0xa build/default/production/main.o + 0x00000000000004d0 hello_world .text.led_toggle - 0x00000000000004ce 0x8 + 0x00000000000004da 0x8 .text.led_toggle - 0x00000000000004ce 0x8 build/default/production/main.o - 0x00000000000004ce led_toggle + 0x00000000000004da 0x8 build/default/production/main.o + 0x00000000000004da led_toggle -.text 0x00000000000004d6 0x4 - .text 0x00000000000004d6 0x4 C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/AVR-Dx_DFP/1.10.124/xc8/avr/lib/avrxmega4/memx-const/mapped/crtavr128da48.o - 0x00000000000004d6 __vector_38 - 0x00000000000004d6 __vector_22 - 0x00000000000004d6 __vector_28 - 0x00000000000004d6 __vector_1 - 0x00000000000004d6 __vector_32 - 0x00000000000004d6 __vector_34 - 0x00000000000004d6 __vector_24 - 0x00000000000004d6 __vector_12 - 0x00000000000004d6 __vector_55 - 0x00000000000004d6 __vector_46 - 0x00000000000004d6 __bad_interrupt - 0x00000000000004d6 __vector_6 - 0x00000000000004d6 __vector_35 - 0x00000000000004d6 __vector_39 - 0x00000000000004d6 __vector_3 - 0x00000000000004d6 __vector_23 - 0x00000000000004d6 __vector_30 - 0x00000000000004d6 __vector_45 - 0x00000000000004d6 __vector_25 - 0x00000000000004d6 __vector_11 - 0x00000000000004d6 __vector_54 - 0x00000000000004d6 __vector_13 - 0x00000000000004d6 __vector_17 - 0x00000000000004d6 __vector_19 - 0x00000000000004d6 __vector_56 - 0x00000000000004d6 __vector_7 - 0x00000000000004d6 __vector_49 - 0x00000000000004d6 __vector_41 - 0x00000000000004d6 __vector_43 - 0x00000000000004d6 __vector_27 - 0x00000000000004d6 __vector_5 - 0x00000000000004d6 __vector_33 - 0x00000000000004d6 __vector_47 - 0x00000000000004d6 __vector_52 - 0x00000000000004d6 __vector_37 - 0x00000000000004d6 __vector_4 - 0x00000000000004d6 __vector_44 - 0x00000000000004d6 __vector_51 - 0x00000000000004d6 __vector_9 - 0x00000000000004d6 __vector_2 - 0x00000000000004d6 __vector_21 - 0x00000000000004d6 __vector_15 - 0x00000000000004d6 __vector_36 - 0x00000000000004d6 __vector_29 - 0x00000000000004d6 __vector_40 - 0x00000000000004d6 __vector_8 - 0x00000000000004d6 __vector_26 - 0x00000000000004d6 __vector_48 - 0x00000000000004d6 __vector_14 - 0x00000000000004d6 __vector_57 - 0x00000000000004d6 __vector_53 - 0x00000000000004d6 __vector_10 - 0x00000000000004d6 __vector_50 - 0x00000000000004d6 __vector_16 - 0x00000000000004d6 __vector_18 - 0x00000000000004d6 __vector_20 - 0x00000000000004d6 __vector_42 +.text 0x00000000000004e2 0x4 + .text 0x00000000000004e2 0x4 C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/AVR-Dx_DFP/1.10.124/xc8/avr/lib/avrxmega4/memx-const/mapped/crtavr128da48.o + 0x00000000000004e2 __vector_38 + 0x00000000000004e2 __vector_22 + 0x00000000000004e2 __vector_28 + 0x00000000000004e2 __vector_1 + 0x00000000000004e2 __vector_32 + 0x00000000000004e2 __vector_34 + 0x00000000000004e2 __vector_24 + 0x00000000000004e2 __vector_12 + 0x00000000000004e2 __vector_55 + 0x00000000000004e2 __vector_46 + 0x00000000000004e2 __bad_interrupt + 0x00000000000004e2 __vector_6 + 0x00000000000004e2 __vector_35 + 0x00000000000004e2 __vector_39 + 0x00000000000004e2 __vector_3 + 0x00000000000004e2 __vector_23 + 0x00000000000004e2 __vector_30 + 0x00000000000004e2 __vector_45 + 0x00000000000004e2 __vector_25 + 0x00000000000004e2 __vector_11 + 0x00000000000004e2 __vector_54 + 0x00000000000004e2 __vector_13 + 0x00000000000004e2 __vector_17 + 0x00000000000004e2 __vector_19 + 0x00000000000004e2 __vector_56 + 0x00000000000004e2 __vector_7 + 0x00000000000004e2 __vector_49 + 0x00000000000004e2 __vector_41 + 0x00000000000004e2 __vector_43 + 0x00000000000004e2 __vector_27 + 0x00000000000004e2 __vector_5 + 0x00000000000004e2 __vector_33 + 0x00000000000004e2 __vector_47 + 0x00000000000004e2 __vector_52 + 0x00000000000004e2 __vector_37 + 0x00000000000004e2 __vector_4 + 0x00000000000004e2 __vector_44 + 0x00000000000004e2 __vector_51 + 0x00000000000004e2 __vector_9 + 0x00000000000004e2 __vector_2 + 0x00000000000004e2 __vector_21 + 0x00000000000004e2 __vector_15 + 0x00000000000004e2 __vector_36 + 0x00000000000004e2 __vector_29 + 0x00000000000004e2 __vector_40 + 0x00000000000004e2 __vector_8 + 0x00000000000004e2 __vector_26 + 0x00000000000004e2 __vector_48 + 0x00000000000004e2 __vector_14 + 0x00000000000004e2 __vector_57 + 0x00000000000004e2 __vector_53 + 0x00000000000004e2 __vector_10 + 0x00000000000004e2 __vector_50 + 0x00000000000004e2 __vector_16 + 0x00000000000004e2 __vector_18 + 0x00000000000004e2 __vector_20 + 0x00000000000004e2 __vector_42 -.text._Exit 0x00000000000004da 0x4 - .text._Exit 0x00000000000004da 0x4 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(_Exit.o) - 0x00000000000004da _Exit +.text._Exit 0x00000000000004e6 0x4 + .text._Exit 0x00000000000004e6 0x4 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(_Exit.o) + 0x00000000000004e6 _Exit .text.__dummy_fini - 0x00000000000004de 0x2 + 0x00000000000004ea 0x2 .text.__dummy_fini - 0x00000000000004de 0x2 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) - 0x00000000000004de _fini + 0x00000000000004ea 0x2 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) + 0x00000000000004ea _fini .text.__dummy_funcs_on_exit - 0x00000000000004e0 0x2 + 0x00000000000004ec 0x2 .text.__dummy_funcs_on_exit - 0x00000000000004e0 0x2 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) - 0x00000000000004e0 __funcs_on_exit + 0x00000000000004ec 0x2 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) + 0x00000000000004ec __funcs_on_exit .text.__dummy_simulator_exit - 0x00000000000004e2 0x2 + 0x00000000000004ee 0x2 .text.__dummy_simulator_exit - 0x00000000000004e2 0x2 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) - 0x00000000000004e2 __simulator_exit + 0x00000000000004ee 0x2 c:/program files/microchip/xc8/v2.36/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega4/memx-const/mapped\libc.a(exit.o) + 0x00000000000004ee __simulator_exit diff --git a/dist/default/production/memoryfile.xml b/dist/default/production/memoryfile.xml index a0629c0..c453905 100644 --- a/dist/default/production/memoryfile.xml +++ b/dist/default/production/memoryfile.xml @@ -4,8 +4,8 @@ bytes 131072 - 1251 - 129821 + 1263 + 129809 bytes diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 630003a..d7a1bd5 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -3,7 +3,9 @@ + file:/D:/Apps/avr128da48_web-serial-example.X/command.h file:/D:/Apps/avr128da48_web-serial-example.X/main.c + file:/D:/Apps/avr128da48_web-serial-example.X/command.c diff --git a/web/app.js b/web/app.js index d2517df..406966e 100644 --- a/web/app.js +++ b/web/app.js @@ -6,8 +6,6 @@ class SerialPortHandler { this.onDisconnect = onDisconnect; this.options = options; this.port = null; - this.writer = null; - this.reader = null; this.isOpened = false; this.#setupListeners(); } @@ -19,8 +17,6 @@ class SerialPortHandler { await port.open(this.options); this.port = port; - this.writer = port.writable.getWriter(); - this.reader = port.readable.getReader(); this.isOpened = true; return this.port.getInfo(); @@ -35,22 +31,33 @@ class SerialPortHandler { async close() { await this.port.close(); + this.isOpened = false; } async write(data) { + const writer = this.port.writable.getWriter(); const encoded = this.encoder.encode(data); - await this.writer.write(encoded); + await writer.write(encoded); + writer.releaseLock(); } async read() { + const reader = this.port.readable.getReader(); + const chunks = []; while (true) { - const { value, done } = await this.reader.read(); - if (done) { - this.reader.releaseLock(); + const { value, done } = await reader.read(); + const decoded = this.decoder.decode(value); + + chunks.push(decoded); + + if (done || decoded.includes('\u0004')) { + console.log('done'); + reader.releaseLock(); break; } - console.log(this.decoder.decode(value)); } + + return chunks.join(''); } #setupListeners() { @@ -80,9 +87,9 @@ const serialPortHandler = new SerialPortHandler( async function onConnect() { try { + if (serialPortHandler.isOpened) return; const info = await serialPortHandler.open(); - console.log('Device connected: ', info); - console.log(serialPortHandler.port); + console.log('Port opened: ', info); $terminalForm.elements.input.removeAttribute('disabled'); $vendorId.textContent = '0x' + info.usbVendorId.toString(16); $productId.textContent = '0x' + info.usbProductId.toString(16); @@ -93,6 +100,7 @@ async function onConnect() { } async function onDisconnect() { + if (!serialPortHandler.isOpened) return; await serialPortHandler.close(); $vendorId.textContent = '-'; $productId.textContent = '-'; @@ -104,10 +112,15 @@ async function onSend(e) { const $form = e.target; const data = $form.elements.input.value; $form.reset(); - if (serialPortHandler.isOpened) { + if (serialPortHandler.isOpened && data) { + $serialLog.innerHTML += data + '\n'; await serialPortHandler.write(data + '\n'); - await serialPortHandler.read(); + const message = await serialPortHandler.read(); + $serialLog.textContent += message; + $serialLog.textContent += '\n'; + console.log(message); } + $serialLog.scrollTo(0, $serialLog.scrollHeight); } $connectButton.addEventListener('click', onConnect);