From f38e121c94250ff6014299099a22aed06e856232 Mon Sep 17 00:00:00 2001 From: jjwbruijn Date: Thu, 15 Feb 2024 18:34:22 +0100 Subject: [PATCH] More OEPLFS stuff for 88MZ100 --- .../mkfsOEPL/compile_fs_tools.sh | 7 + .../mkfsOEPL/genprofile | Bin 0 -> 507160 bytes .../mkfsOEPL/genprofile.cpp | 61 +++++++++ .../mkfsOEPL/img_tbird.bin | Bin 7124 -> 0 bytes .../mkfsOEPL/mkbinaryimage.py | 95 ++++++++++++++ .../mkfsOEPL/mkfs.oepl | Bin 134320 -> 43816 bytes .../mkfsOEPL/mkfs.oepl.cpp | 13 +- .../mkfsOEPL/mkfs.oepl.sh | 10 +- .../mkfsOEPL/tagprofile.json | 8 ++ .../mkfsOEPL/testcompress.cpp | 57 -------- ARM_Tag_FW/common/assets/jet.png | Bin 0 -> 11282 bytes ARM_Tag_FW/common/assets/lowbat128.png | Bin 0 -> 960 bytes ARM_Tag_FW/common/assets/lowbat48.png | Bin 0 -> 339 bytes ARM_Tag_FW/common/assets/norf48.png | Bin 0 -> 485 bytes ARM_Tag_FW/common/assets/sadpanda.png | Bin 0 -> 13196 bytes ARM_Tag_FW/common/assets/tbird2.png | Bin 0 -> 25913 bytes ARM_Tag_FW/common/oepl-protocol.cpp | 123 ++++++++++++------ 17 files changed, 268 insertions(+), 106 deletions(-) create mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/compile_fs_tools.sh create mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/genprofile create mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/genprofile.cpp delete mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/img_tbird.bin create mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkbinaryimage.py create mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/tagprofile.json delete mode 100644 ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/testcompress.cpp create mode 100644 ARM_Tag_FW/common/assets/jet.png create mode 100644 ARM_Tag_FW/common/assets/lowbat128.png create mode 100644 ARM_Tag_FW/common/assets/lowbat48.png create mode 100644 ARM_Tag_FW/common/assets/norf48.png create mode 100644 ARM_Tag_FW/common/assets/sadpanda.png create mode 100644 ARM_Tag_FW/common/assets/tbird2.png diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/compile_fs_tools.sh b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/compile_fs_tools.sh new file mode 100644 index 00000000..afd6c07c --- /dev/null +++ b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/compile_fs_tools.sh @@ -0,0 +1,7 @@ +rm mkfs.oepl genprofile +g++ mkfs.oepl.cpp -lz -o mkfs.oepl +g++ genprofile.cpp -o genprofile +chmod +x mkfs.oepl +chmod +x genprofile + + diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/genprofile b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/genprofile new file mode 100644 index 0000000000000000000000000000000000000000..1bfffbac585ee4d4392450d71e22c2ad25b03b15 GIT binary patch literal 507160 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 +#include +#include +// #include +#include +#include +#include +#include +#include +using json = nlohmann::json; + +#include "../tagprofile_struct.h" + +struct tagHardwareProfile* getProfileFromJson(); + +int main() { + struct tagHardwareProfile* thwp = getProfileFromJson(); + printf("MAC: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X, xRes: %d\n", thwp->macAddress[0],thwp->macAddress[1],thwp->macAddress[2],thwp->macAddress[3],thwp->macAddress[4],thwp->macAddress[5],thwp->macAddress[6],thwp->macAddress[7], thwp->xRes); + FILE* wptr = fopen("tagprofile.bin", "wb"); + fwrite((uint8_t*)thwp, sizeof(struct tagHardwareProfile), 1, wptr); + fclose(wptr); +} + +struct tagHardwareProfile* getProfileFromJson() { + struct tagHardwareProfile* thwp = new struct tagHardwareProfile; + + std::ifstream f("tagprofile.json"); + json jsonData = json::parse(f); + + // Check if the 'mac' key exists in the JSON object + if (jsonData.find("mac") != jsonData.end()) { + std::string macString = jsonData["mac"]; + thwp->xRes = jsonData["xRes"]; + thwp->yRes = jsonData["yRes"]; + thwp->bpp = jsonData["bpp"]; + thwp->controllerType = jsonData["controllerType"]; + thwp->OEPLType = jsonData["OEPLType"]; + + // Attempt to parse the MAC address with ":" separators + int resultWithColons = sscanf(macString.c_str(), "%2hhx:%2hhx:%2hhx:%2hhx:%2hhx:%2hhx:%2hhx:%2hhx", + &thwp->macAddress[0], &thwp->macAddress[1], &thwp->macAddress[2], &thwp->macAddress[3], + &thwp->macAddress[4], &thwp->macAddress[5], &thwp->macAddress[6], &thwp->macAddress[7]); + if (resultWithColons != 8) { + int resultWithoutColons = sscanf(macString.c_str(), "%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx", + &thwp->macAddress[0], &thwp->macAddress[1], &thwp->macAddress[2], &thwp->macAddress[3], + &thwp->macAddress[4], &thwp->macAddress[5], &thwp->macAddress[6], &thwp->macAddress[7]); + + // Check if either format successfully parsed the MAC address + if (resultWithoutColons != 8) { + std::cerr << "Error parsing MAC address from JSON string." << std::endl; + delete thwp; + return nullptr; + } + } + return thwp; + } else { + std::cerr << "Error: 'mac' key not found in JSON." << std::endl; + delete thwp; + return nullptr; + } +} diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/img_tbird.bin b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/img_tbird.bin deleted file mode 100644 index 72798458ea9bab17402c604d734def5304a0049e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7124 zcmZ{JZ)hu7cBgD?ur&m1A@%Nl2w0jDSk>FfhL8;*U-X2WRaF?UYwMP0RO@FF639qX z7FpJIc*d6Bi<{Vj1-rI1ELj%(j5KTA>XNceS5=UZH4GWZOjuZkDT%07t^{_VN2083 zGm^Tck#3IsI-7jSH3rqyt>5``&-tBmuc8YddkkCBHT2I9uE=AI5o=3Ev-$L7OBy`> z(@`kM3?+wHJ}1X-5+w<~(-BHxUHt!`3@nIqc|^+$ii9|ZW{ZAoSQ2`N^G%1|-ujxln4AMX4;C{tiqJ)x<1lz7zscXRtW5Jh{yvGV zFBbt6%^-%wH=KMG34(7DMK20c%!|+uyvwTatlxYs&4OaMAoDo}#gzhP!oIgFid;|> z>g~3k(vkj*$YERrDI8)EpTKNjostWDG0gbb7`zI)eQ5+Pawx(fx=>8~m+*RcyC5eR z@AfrS3Pz|mI~o$6_klxUnpKJshVg9{6LR4?Co^H{t(TRTlnXiHO?~O$JOggylphE_M^=Vi#|pO@&Pbca(OR2s5`&<}X>6iBQ+MCEtn?4_)~= z|1%y#LBtjV0lFCGs1n62qF^|*l-LS#SMgZrIv!iOn+E{wzFdmX1@N(Q#l_`9X;Hbp z;zHNT#&%@g&jushIxJJ*AB9l@-_Qw;zoHX9mXEO%b;-tZAI1`|7yL`qCFsXtj^Qzj zLhQ}^;Sm2i%mhP`;5rjtSc`A0`*<9C%Y^6p6uco=FUOUuc%l$W+_S+z zBK~G!)4y^3Y;S}`%%*%_++o=mFEg7lDirozhL#un=b_-{{oUH{&-fi+r2$;_~XsV$^qef9J(se#QGXy0wiMj+0UNUj;%8E3@IC z=Ter}w&UD=J{nqFk9uwwwxWLe8t^b?7!ER&DlpWwg1LAi_hE2pX(N!hzofDEeuI9! z#=eEP3nS`^<`c57AhWUH>bftwq3m$E+r`DO$8);q!WD-6m=vVF% z7qqgtva;bVeba++VEY^|uH|BEi7WAPDEW4cDl(LE7hCu3L}R6`Sk5|r_?c%Rx`Y<^ zTrk2HX%_N};<3C=UB}k_h4>1+wzRSNRZ&9~oeyy5IP`*z7lDm-s7pDwRAL#gl8gC5 zcdyyEfvxunLf1;Yj;`vYh^11mr>CU&@`AhjLa*}Pg?r#JlPYpM^MN1f9Ex5{5$ zC<)jNxxj?O-Uz2$d6kQ$?IIh^-68fDOFsPH((0$LV=M8{Vu<6ytgmn_zl|qi)NL%n zU97zhY$R501f>*3#?buM=AC?9S^;|_kP-<#Br7+8%?pYv(orDF#BYWaD3X& z7RAL&)WyxKzf``z^(%p0SNPns;xoZa7VDp9;! z+wI0K*VwDgf>H_wnRtW=MSPdBr9_-%f~&zpr}@3&@8*}2R_F9K6ytfBWtS91iNvXV zJOP0%mx7d1$d`M6`x^`YW|MMFwMT}W2%#NHQEnoe+{I=-F3W`?RSLzg5_wJi9S{9yF9c4>R>^l4ODj1*OXR@J z4`XzK@%dyQpi%=PO3i=4U}Zu!8SaiECVM0NnioTjEb+g}ndPrxKO?-ZZVj_3Xb z`FwSq1ChXyY<`p3@P}>|!l7bl2kL$N+oRdfd>gs-;KqNie|*QTFf^x>r~>yPEx%r2 z`E@=IoDQ0Zd*a8J7aaEIGozobQ$@bSvWm%rmj#{9#l)i_4hbotwKhC|GNBT)aez77WFoI?Hw+q2IySQ-$L`_q!Y$d)3IArwpF%eA%pTo`CrN7zuY_EP^W7i1D|ew&Q85F}+W zoG7Bub#yCs?g=JwTN5P-Tawu$f3)ML&Lh7xefXpR9fyJul!anoZ6(ZJ&??e3-LUtJ zc0;u2AJD-i)tNyH!UNN@5h~|<^CIY>KVHPRsSB!*d=2sicNO$

Qy= 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 diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkbinaryimage.py b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkbinaryimage.py new file mode 100644 index 00000000..12a92659 --- /dev/null +++ b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkbinaryimage.py @@ -0,0 +1,95 @@ +import sys +from PIL import Image +import struct +import math + +def convert_image_to_binary(input_image_path, output_file_path): + # Open the image + img = Image.open(input_image_path) + + # Calculate the padded X size + new_x_size = math.ceil(img.size[0] / 8) * 8 + + # Create a new image with the padded X size + img_padded = Image.new("RGB", (new_x_size, img.size[1]), (255, 255, 255)) + img_padded.paste(img, (0, 0)) + + # Convert the padded image to grayscale and invert + img_bw = img_padded.convert('L').point(lambda x: 255 - x) + + # Check if the image has a red channel + has_red_channel = 'R' in img.getbands() + pixel_data_red = img_padded.split()[0].point(lambda x: 255 - x).tobytes() + if any(pixel_data_red): + has_red_channel = 1; + else: + has_red_channel = 0; + + # Calculate unpadded resolution + unpadded_resolution = (img.size[0], img.size[1]) + + # Create binary file + with open(output_file_path, "wb") as binary_file: + # Write header: 0x06, unpadded X size, Y size, bits-per-pixel + binary_file.write(b'\x06') + binary_file.write(unpadded_resolution[0].to_bytes(2, byteorder='little')) + binary_file.write(unpadded_resolution[1].to_bytes(2, byteorder='little')) + + # Determine bits-per-pixel + bits_per_pixel = 2 if has_red_channel else 1 + binary_file.write(bits_per_pixel.to_bytes(1, byteorder='big')) + + # Extract pixel data + pixel_data_bw = img_bw.tobytes() + + # If there's a red channel, extract red pixels + if has_red_channel: + pixel_data_red = img_padded.split()[0].point(lambda x: 255 - x).tobytes() + + # Process pixel data in chunks of 8 and pack into bytes for black/white + packed_data_bw = bytearray() + packed_data_red = bytearray() + for i in range(0, len(pixel_data_bw), 8): + chunk_bw = pixel_data_bw[i:i + 8] + packed_byte_bw = 0 + for j, pixel_value in enumerate(chunk_bw): + packed_byte_bw |= (pixel_value >> j) & 1 << (7 - j) + + packed_data_bw.append(packed_byte_bw) + + chunk_red = pixel_data_red[i:i + 8] + packed_byte_red = 0 + for j, pixel_value in enumerate(chunk_red): + packed_byte_red |= (pixel_value >> j) & 1 << (7 - j) + + packed_byte_red = packed_byte_red ^ packed_byte_bw + + packed_data_red.append(packed_byte_red) + + + # Write packed pixel data to binary file + binary_file.write(bytes(packed_data_bw)) + binary_file.write(bytes(packed_data_red)) + else: + # Process pixel data in chunks of 8 and pack into bytes for black/white + packed_data_bw = bytearray() + for i in range(0, len(pixel_data_bw), 8): + chunk_bw = pixel_data_bw[i:i + 8] + packed_byte_bw = 0 + for j, pixel_value in enumerate(chunk_bw): + packed_byte_bw |= (pixel_value >> j) & 1 << (7 - j) + + packed_data_bw.append(packed_byte_bw) + + # Write packed pixel data to binary file + binary_file.write(bytes(packed_data_bw)) + + print(f"Conversion completed. Output saved to {output_file_path}") + +if __name__ == "__main__": + if len(sys.argv) != 3: + print("Usage: python script_name.py input_image_path output_file_path") + else: + input_image_path = sys.argv[1] + output_file_path = sys.argv[2] + convert_image_to_binary(input_image_path, output_file_path) diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl index fb5ef57e2d48f89623ddce8ff2d9f44d6037e1a3..bb104bdad165bfe73b553dc7f195831003e6b644 100644 GIT binary patch delta 7810 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 pLJ6)~;NJ4c)L)x>xx-skAMdNFKOx3CM{KRO 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 XSDWrP&()9Ui08DHexzZ(yr=hnlS~4P diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.cpp b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.cpp index b6cfd50d..9722dac7 100644 --- a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.cpp +++ b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.cpp @@ -14,6 +14,7 @@ Jelmer Bruijn 2024 */ + #define PROGMEM #define WINDOW_SIZE 12 // 4096 bytes #define FILENAME_LENGTH 32 @@ -108,7 +109,7 @@ unsigned long doCompress(uint8_t* in, uint32_t in_len, uint8_t* out) { fprintf(stderr, "Error finalizing compression\n"); return 1; } - dump(out, 16); + //dump(out, 16); return stream.total_out+4; } @@ -232,7 +233,6 @@ void saveFontData(const GFXfont* font, char* name){ #include "../../common/fonts/FreeSans9pt7b.h" #include "../../common/fonts/FreeSansBold18pt7b.h" #include "../../common/fonts/FreeSansBold24pt7b.h" -#include "../../common/bitmaps.h" int main(){ wptr = fopen("../build/fs.img","wb"); // w for write, b for binary @@ -243,11 +243,14 @@ int main(){ saveFontData(&FreeSans9pt7b, (char*)"font/FreeSans9pt7b"); /* OTHER STUFF */ - addFile((uint8_t*)sadpanda, sizeof(sadpanda), "img/sadpanda", true); - //addFileFromFS("img_tbird.bin", true); + addFileFromFS("tagprofile.bin", false); + addFileFromFS("norf.bin", true); + addFileFromFS("lowbat.bin", true); + addFileFromFS("sadpanda.bin", true); + addFileFromFS("tbird2.bin", true); + addFileFromFS("jet.bin", true); printFAT(); fwrite(buffer,curOffset,1,wptr); fclose(wptr); - return 0; } diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.sh b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.sh index 343a0699..b8c585d3 100644 --- a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.sh +++ b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/mkfs.oepl.sh @@ -1,4 +1,8 @@ -rm mkfs.oepl -g++ mkfs.oepl.cpp -lz -o mkfs.oepl -./mkfs.oepl +python3 mkbinaryimage.py ../../common/assets/norf48.png norf.bin +python3 mkbinaryimage.py ../../common/assets/lowbat48.png lowbat.bin +python3 mkbinaryimage.py ../../common/assets/sadpanda.png sadpanda.bin +python3 mkbinaryimage.py ../../common/assets/tbird2.png tbird2.bin +python3 mkbinaryimage.py ../../common/assets/jet.png jet.bin +./genprofile +./mkfs.oepl diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/tagprofile.json b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/tagprofile.json new file mode 100644 index 00000000..54320263 --- /dev/null +++ b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/tagprofile.json @@ -0,0 +1,8 @@ +{ + "mac":"0000021ECA8C743F", + "xRes":640, + "yRes":384, + "bpp":2, + "controllerType":0, + "OEPLType":5 +} diff --git a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/testcompress.cpp b/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/testcompress.cpp deleted file mode 100644 index 110ccbd5..00000000 --- a/ARM_Tag_FW/88MZ100_OpenEpaperLink_7.4/mkfsOEPL/testcompress.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include -#include -#include - -int main() { - // Input string to compress - const char* inputString = "This is a sample string to compress and add a gzip header.werugweroiguie;wroigj;eworijg;oewirjg;oeiwrjg;oiewrj;goiewjr;ogiejw;rojig;ewoirjg;oewijrg;oewirj;goeiwj;roiwheg;orihg"; - - // Length of the input string - size_t inputLength = strlen(inputString); - - // Allocate memory for compressed data - size_t compressedBufferSize = compressBound(inputLength) + 18; // Additional space for gzip header - char* compressedBuffer = (char*)malloc(compressedBufferSize); - - // Compression parameters with reduced window size (8 bits) - z_stream stream; - stream.zalloc = Z_NULL; - stream.zfree = Z_NULL; - stream.opaque = Z_NULL; - stream.avail_in = (uInt)inputLength; - stream.next_in = (Bytef*)inputString; - stream.avail_out = (uInt)compressedBufferSize; - stream.next_out = (Bytef*)compressedBuffer; - - // Initialize compression with gzip header and reduced window size (8 bits) - if (deflateInit2(&stream, Z_DEFAULT_COMPRESSION, Z_DEFLATED, 8, 8, Z_DEFAULT_STRATEGY) != Z_OK) { - fprintf(stderr, "Error initializing zlib for compression\n"); - free(compressedBuffer); - return 1; - } - - // Perform compression - if (deflate(&stream, Z_FINISH) != Z_STREAM_END) { - fprintf(stderr, "Error compressing data\n"); - deflateEnd(&stream); - free(compressedBuffer); - return 1; - } - - // Finalize compression - if (deflateEnd(&stream) != Z_OK) { - fprintf(stderr, "Error finalizing compression\n"); - free(compressedBuffer); - return 1; - } - - // Display results - printf("Original string length: %zu bytes\n", inputLength); - printf("Compressed data length: %lu bytes\n", (unsigned long)stream.total_out); - - // Clean up - free(compressedBuffer); - - return 0; -} diff --git a/ARM_Tag_FW/common/assets/jet.png b/ARM_Tag_FW/common/assets/jet.png new file mode 100644 index 0000000000000000000000000000000000000000..27861a49a26826a417554dc04ebe19db7f197a0f GIT binary patch literal 11282 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 d@ay$gaer-|z@{hFLcm?&%o;m;k literal 0 HcmV?d00001 diff --git a/ARM_Tag_FW/common/assets/lowbat48.png b/ARM_Tag_FW/common/assets/lowbat48.png new file mode 100644 index 0000000000000000000000000000000000000000..b5399dc66e0efdcb1b390ea3dd4d60a673589c54 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^20$#u!2~4h!aW**6k~CayA#8@b22Z19F}xPUq=Rp zjs4tz5?O(K&H|6fVg?4;b`WOlfBG>MDEPwD#WBRg`|7m2e1{Zx+!FgAY`wShd%c4G z-fQ6p`ltE`Z8>_WwQADDzbSVYE=@69D&kZT7uHj3c{g7|Tt+U3A@j)bpI+DfD!2oW zrELt?oPI{MUR7kRW?^ItPh#+fMJ`h=OyS}FaNF;o%_|pWm%lgaX1p`F8>Mypn%~Y9 z(drl3zFhIsWXW1CH{0)v(}FUijf~Dt?glC$&)d!&zsP;ntj*7BVcFd;7M-^ICQfU4 z6|DkqHy8coeD|Gs^TYUmoOZYDcom(a`*Jk|RV^0k?w&Sfht4lOYmRcKcXgkpZ`-NH iG&9CX-7iwPMZ72XuVeoFS)YM^X7F_Nb6Mw<&;$UAgM?rJ literal 0 HcmV?d00001 diff --git a/ARM_Tag_FW/common/assets/norf48.png b/ARM_Tag_FW/common/assets/norf48.png new file mode 100644 index 0000000000000000000000000000000000000000..f527955267f16f2bd4a732202dacda474e4f5f69 GIT binary patch literal 485 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGxhX4Q_hXIe}@nrx20eVS9K~z{r?U+q+ zgD?z*O^(oYyKC=%pe(y?uRtGtLRGQ+lL;C;3Ez;6^uXw0YY1eT=Q*YH{q}+HV|n?! z;`@Tn2yOsvOkc0>%m?Am5NGTtbd{DR8;TG^(|<(m<2h#N9v;q+w8@I7cW^FQi_=hx z8w^R`u86ufPqt+E<;I2|PHv)Bi84ehlC1RD@(oFwtcco8ZpBjfwEqmT9-gkaQ3O`0 zcnWW7I}<%rbk|L3lA>m)RIjpFByh>{+D$jWH-wip%dH~GSE{FzqGqU6yXk3X zL;d|*au(P_gl>AehlIQ+Hp}O=bV$ey)vv9-H?XPm!mhaCe7A4m7}Dnr8)!_Z0LE6- zI1h3$$DbiP05R{v_HM%#|J=|0yq|mDbI$Xe^StZccq0Q%3Q}fLJUl!KZ7nquJUsluyZgZh1b5fyAZ9H* zyeD|tYRbUiyd#^%pshB_(%t3TTj#Yn9rS;ACXJrj5F27f`~S7vbFi?>*tZFo%O4NoK;Nfd^lF7jE_7%(Z);txA2LE4!Y2wO+dL zu_|Jbj*$9#EtIpu3{RVWHx=NjPWRI zkLy8EggD)mh`cKT$qv9XrgrCq+B}m^fP>PD9(+DEc9{T*XC$}R%>?klrZ;C|5BAo9 z;^rJUglMp8!MGG#;++*&l}|hC+$k&0T!bh{DI{n0v|kLaS$yYg)KnN`ef38h?|+H& zp9Ex=yM#9D4~soEBhJEG2P^Hj>6XVFDlHeevA=Y$Wc&N4!&(P5IXcKL_!_v4jvMC+ z5h-t#p^KFWc-Yh-=JLMRTHAG}qT)wA->2bDRQD^`GjMO-N9KNGgWh>@tl_J4vwl2< zu}E%~pQUR$xop)4CI0pNpD7>p@YI{ASIcfldG>A>@cw}N{7(KIO`E^$x3A-Ojr&LE zEg01HbwfVKbkN+vv-b8%?u<#aWnTa-(gmOQoY~lr998^C!4x<{+QUh&4D}0Xb!OM;JD&;p1pbDwCkaeEBUeWp_npPu z^0s-p1$lM?=#_e2>tDM*Zr-T9q|@j>VG5M$wRzrTwVA1Wd~n;wER7bWVyJPU2b8YF z--Rct`gt~l8Yfy;VNo%U?k6S_4QBZp@~8JB4$&{54ex0Ae`wSzUzA^Y z4o}pHUuT^)daI>fXI~TE5xh#f=(>CSX5e7`X6Cm{ZGmU2$P=>Xkt=QitNi`~_eIGWZW%`|J=uTlxdgtu30UX8%W5Ck z;mGEaZQ-+vCH_Cab>s0H&8f=h!9NZSv7%c)QWw^p=g{+&g8%Ri7elUUrng=@viY21 ze>^{)pD4LY6HJx+wlSey=YU2%+BWGY-vCaj3vKkzTUH&x4=dX1{&-ijssUBs+MYtb z!@4zR?n|rR0rd*ceY=52k*xqbi9CZp#7!&hpOEKWi+4ZzMBBYt5~TipSyK z;@@9v=$oG0y!2TUzw0!zYfbkTcv3? zC%|pp*T}S2peVAc?iWW#xp!7e*Skr~qGv(P`(Z>lMR4S2qoPIR^fw!;Hl^vPO}mi( zgkixyfA~I!o8FmWw)=SB-cF-|%F?dXG$U4nxWv7+j2r&H zU4Bhc|E&tzid8bsF16laB>7OZi$M5eiRy`0@jtvLdsM$mU(3`lb}ReotDIdR?|4lf z?xNy(l6lt(GMf|!{$wucHgkJT+4$;9W9E(B-^xYOsk);Z!>-k#W_GnZTZJUc6mz1H zw2{_(A-Hvcix1AL)#G-&Em5m?%0${6-m!ZS?RvZ4Om_IGib^r?x(Tp)rx;H+3y28~ zuVc~@r0;9rs;m5M3edQ7@HHjdCF@?=n*t8{*1R+ATWGh*BFp?C#*I;7^C*eGe&3Fh zN%OcEtMunV%N>J1f}ilyTA`xnrG5=fG0+`!pVQw(r4j3Dw_f*ynX;n(>LBoF&HL(K z@k)}jsSvj$rMosRUO>XnyF0@@?;364zNVsK@tHv$=e5HF0)qX|81H&eic8-ue&rp4 zBbzyidu|@k)5~Dn+wtS$x#K_DRHqn(Y)Pz`Hhe@1$z^|cMdR=#vTq-P%lzA-a_lUk)ryO zPVDwy>y;y2v6n1}&ag*@F0EJTHsM5a;RQdEtlri)T(3;s0XO7uyZWQ^@FLZjGyEK} z+BO|me);q8;>afj`}`mC(Eh=voDre(F0Jr{KY%NF_VbAVo6p^*r~e$h*U;lBqI+XX;3Bw8Yb~FDQ%_OIYe_R6XAGscPxpqi>9u#`^L{S0Hck-c#1iEGD5&OUK z%2kELJ2(ATOY1u9my$}5liWf?#v47?-MXJX!n;lX>ckR}if)^Y%$OIKDhtO@e0e3u zn}{|&{Dx89yhUFikMB}~eE?qL*;;aFqtHQ^uxTTe6ZTv9VPAkDEUi8NHt!&Fqkdu0 zZTa_j^4q;IHa??P_u0ylv!-CW?|m`QV($Hm#XZ5dTXq z0JFK;simjrqVU3S)2&9-vH!u>)q~eRsE=Q`mYy(MhoOUYUR+O^R;o23<)KXY8r_dHJcP})z7Z{cUOk*c$8u8afG7^aEfAQV^e4Ml1b1Aj2&3=2+ zSq&f5P5K;n@-Ql4QdRVDx)GH5%kG22Z%@V!6vZ#^N#oLAcliqQq%&LASxQl=lg|)j z3#W%)H5>xI&a;y$(FZHTMiutITivOkFTn*{cUP{tf-Hrm-atpkNfDCbbjMIJj7K7t z+7MiKS5Yz)oDa6d+sEiNJxV=C2IRe!!i0bGvDik&FRYKAY5xnKL;>gS-mo}Qr9*6) zI2&trI*KY8)@M z{StotSs@6G{8{l_VLQF`PF`+U3R*cv&3j+DRkJ@HP?XQ{yAAJW=%)31;#-2MtiDS~ zH=$nd#vh@nT`&8{=J@vO+jLsm;wTZ~^&x#fCiRvZSIj5ZXgZ1S(q#zmxZ)Q5vyGf; zT2mJKy;@kO%BMNsH3?k0!6gy;HaUZburS)_2T`4^ZaD10ducALJ`dVTq7d%_lNr+PPRvZR$^j&qjm zy9t4Bbu0r2!FDgO8t)>-*H%BUhkX1o3cX8OUsAyq&3U`Co6N+>NObFM(@F+Umv4aY zhYJO}&o{l%pEDwHxVuozgjT6aaxtOq7Y@taRkjgz%K=R^aXMFT?Q3xN;=dVF@l9+D zxZmkj+dCT{mF<=*-lf*vxu$Ti&OIai@V=tp0@Rh))~h0UuJZcn=Eus8d7EEtq;7qx&z$bYmJ?Vx@)Gn6V;bLMtS{V?j_+o z{mOc7jb+v323-eeX>f8`$Ju#E6nQBVXE~~y%L!zr$FkrgoK=P~o{AWg(*pg(&wRtD6 zMe~zin+b@;X)V$lV$n$Y6=))lu7s^s>j}YpxA^F!ORKA>@}2Un!RFTl8>Cat_)PA> z8_XoV2N~c^IQ~S5YlMdZK+;?u_nKM4^Ncf;R z#3&@tw-CO^kHr~Tw5@dUFSSaE&5V3RaY|i{4jc0bsvQP|r$sR9qEs zv>2C3tN6=x29O)f`s{6{5zeIso7G&1FXkv~XE zJSAEaH$4c9vg$w8eLlBONswt?!mYxcPd0%1>t(2jlY|I4`2TURaY#0OXKN+~OSH)$ zH+FU5f_zXM>LmJL(=g$oXW{W}8XqPKA^Wi=##SlWk-sC(!#u{C@vIr9^+F@jyn>Rg z57Mwcog@boME^)v)%mK1?RwG^_<+zP?q_^R56rn9qGyh>zaYP!HsG42xRXpR~ z#Ou5CM7pG}8IyK{m=i3*zH`*4XD<0Ir3gF)DZ~f3!IvV_!`)sSnQ-!hoLZGDHForJ z!6*;loYD!fx59-*Fz<$fKP!F0fy1Ho{bl2)cFAgcy3+l?(jvy%Vm6yN1LF%(>^X;g zR;O{y#Qlr$=8`SNV10X$0ycyV$_YkFs(phn7Ic|io!M~xzH&&(llTm~#g@_jOwi>> zjl@^zsY1;cxjWK2ItT_LJX~SPDG5yPLp^S$D>NW^Qio}QI>^*j<~kfm6iH*M;aa0z z+@J5rMquOSG~dHmo$osi7ZV?IvPodZ8kQ&Tf0&aailpqIn1DG>@Xzk6<(3AgRjJ7b z4%is%f2l!bG#T{ z^O+i4@&lR&DCV?JHTh4zF^# z+5mMX{+(FCS6}WfElWqDv>ziV@TzQJTz*X>FHfBiTrOXZD{R2 zhP$LPH0y|6DIt{Y8W=`LI6S;>&HNgrWYzBN$+lJmI^Tvt$TD9BdBfA~Wp)nz4zv@W z<<)h#*}ylxNDwW5QiDMfwrcFglp_VsU4Q%duksckWd!XGjG=#XKIbZian)~XEfek; zF0)R#7gxc>UgYH%iOooGC38#_L>|gMbX|Yr<-p?4C;w+XK%eVyd?MAilb7e!wDru_ zD|#w-D+-GSkXh9;kId-hssn>e!8hW7$J)DpWF<`<_*C2N=PU`eAdg-Tzsz~(_%ZcV zqG+#?xfkSud|JT7hVO|iP?Ve`%^1mAtxIXp_C<{}k7iT^K?0GkpU;4eZ0)_|mv@tB zoQ!kM>x;dD<8*rB1+yQO1+psEl4hb!ty4O?BBA^eTM?EOAKhiYhCmqlAVHuYK@aZP zAj#EN$5Mx75+syGO@aj)!^kgJzGs(i-!9)U8bz}7mkK(3U`5yu&ZdEF_Nuq-d7M%t zEK-d@pEUg59gfi_C; zWhP{O!w;#R^2ilF2|COOkvbKW$t$3{m0=#jd#~=RAouEv_NSN~`m?C^#iY{b`6VFe zcTQP>Y`^4j3sob-^VQ3fK)1D#Y^Hfy*_>pc)?UIsN_i^clo6!7U&$;&%_*mJ+Q)m1 zv}%<2dQW-ZJ_O>H#mXG(Bx`3#uKgIf9UbIz&_&h((wTWX6|E+<*gYAnL(23Rd(u*{ zfC5uA45!FFqFNu8*}3l zedqaAyA0lko5xVg?Z@{?qemEoHldu}zRMtTBlGP?oi+QH?j1T(gSCLpA|B)6Tr; zWq#rBag)#E1-ew(DV5BHIRSZHon?_^e|{2Qc+;v-2*8z}h^1PcR~8WW89!rV)-YvVT@ky7$@{!eUSn=&OEeThWun_(=Zh>Dr@%0Bbk7*fQjOhixNX zVw(Pmk~|U;{7(!60<2Zfb&1zs16n>m*G~*&s;LsH2r3?L1rfXr?#H~N413gZT^r}f zN|a?^%i08apzPkVsD=-Gnt^t67c@G6$Q8`w1Q@vy6_tLRrB~%;{}Vqio(X2{iilni zp47^Jwyk{r25?J&4$CkPpmPZ-MmE9h#Y3a#;$h zP!}42;BCWR!UFtskUBe1dLZyUVl0J^h-@&Uj(T=DQ1Id0>_c#3Kh!J7V3vx}AY@F~s*K2C5L7kNFyFs_bVHR5x?4AFaSEe;-Kh})q8wb6m zs~a(T>T3Qf1&AvEpU^#@JSTL#I{*ck|E=J}ALu!Gwg*Yy6&- zfSQPa4(Lt5M=upbvb#*WUZ{h>H(LD%DH?JQXRCjMWRnxT0zr`*!*pywC?wzkZp({% zv=w3Tejd-c(Za3ZsSMgNb-Cyd z*=Qtxml|9&4y#JijswCG?Xcto@IIrbOT;cS*LGA@OCeSu{OD_sx;`TlCd?5A0J0=U@tjZ!s zNf*WPG!E9MyK4D zQwv}ci7^AaxU)Fsgs8giU*waLG%afKS>Isk6TWq}cn2#jYkF0%vfT6}9pikY zJ=}z_5gV%0B6CK?338j5?K*tGA-YUb0rD+b$SQX#k>Z)d%lwE@sKkhZ%%|mftNtN8 zo|c!n)%*$S8(ZXR{vH+?RhSt9lnCOPX?p`T%sz-t7?NX)_7nbl5++?@ZzAbws#E+> zPuvDdkR+TOQYaov@Tt!($at*j!qr9I!?JCHH(WzHJCpQWt32i)PX|OrQQ)@>5u;D3 zr134py=daIZZ~mzdBxAh|E}JRwgf1c)6!R#5j1i;5O1IPlU<-5B2f5#47G)LLH0GH zOll+QP@~3E>9=#03O`gk!+4xefzv2Z*?br0X7$_D&Znna$0}&0m~D}I2w`H3dCV~a zsV4nU(XkDx4BIB zTQ0fGJt)~p2c0ylN>3nggjBGv3RKtja11*Pm*ydBG5w@hNlQQ2kQB?bB}$h_0HEex zqgV1!X`0e-E__4F@fgx8D4jfurnj+3(BaV}XcqZtLSIpma-Ot(R!?-j{EM;fWtbc+ z5viRcPGowyvFDLno4pV!i}YA}o&Xe^VHYc(_QFG^P@wpA<|_AV94A6!#O-X-WRLLg z;;$X^ig+T;58&g;hlgjR4SPbn#WU%^i;PKp}>WP~|L;AI+nK z%87uPo2%&ew#lXBq-zt*HE?u&WzJ?7H=?cDZCr4u6RF%h2;yFnCjH9qp~?z;)~^1z z^}_MO+asl2TlZa7AEw(m^~5yafk~&bikPgiKfZ>DbTKMt+6mB`@&NUVYix-q9Z4bl|wkw}N_qpszM?Y!T09TK+DUQ6$MDnB|gj8*Uu=E z`7}yvEJrQ#a(OuTpX1N*tBW%{Dwe4+ z#yApQZ0Wf}O-bebcdadAn0IMo`3}*#cQ4g%(kU@|7x#N(AOJtG7D`x`mfS z2+|gfHpfY(VRQiyC>bWJ?fCYlhh=m`$3oYa6b>%dW6A%>I;kp^->8nP35+$0eWnre9-#Jzph0&#FdpMV% zxZz$xjr4Qo&U`Rc)pNtx;y3hf+6_jaonl{6!>QwPH1cy{RVj(wW+NWw_edu-*b;X- zqz+*1F!Mw(?e;^FQk7-fws$)HH$pPLu%o8noL9!fqtX2LEkI*LB@%35nM0@N8<0%n`7j?u<)q}>nQtpv zMj;vHwYU{Q%j7mIUQ1SEcjc}dOt@4nXo|EKkY&!ECgo)>?+}4KGYfZv@iMivv=57v zSBmi_eispN1*>C(+eowZ1lAeVGvoxhrsXK;p}FFW12s$425tlEEEIf!Y`nZ`6*;vj z2_l@%X?;f6jkFT1SsHz&jki((n^6}yAMo=1Imuu$x~be=TW2m&;XbaJUv^`d=Ft4@ zY$F@8%-k4f<*4zts`({eT?&uUx+#z=v3P*I=kRVbgsi18hMy5dtJ#e$_!Q3EivYWw z_bs^zF*^j7im63&fXehLBe+D@i&eUEtmlaUq#xYB04mhMHAC;j`$DWf;VHV9wbVLo zHlaBk<9^}Dg~%)UXN#tcg-O$zM!gqnIMS208-(9`jkcSEiOhdi%cpHNi?wM`JPm{R zZj@kjt5hMh_?d#tPQfmvgNfLzq3rvkq=>krzs5xTHBbTJG6StdR!2pnHiK+W9nLf& zT3-PkPoVKF?%`5oO@)@#sdk%;i+?2ra55+UV&<%xt~C6*T1A;Bh^NM?j5;9uN-RaL zEKnHmf>Efxm^t|{j!6rh6$HRm+ihX$P0 zH$G-oVtG4fmin$;!$yG>!IR%W4%IwJx=*d|WWJ!fn8nFhGoIz_UW*3E+L(gn*gxYhc<$;q>@PVpTp53Yac(;RMj#uE5C@Cf& zKEw$k=!$^KdL0a43;5Z6FLPf(?^}EF>B(89H_DZtw(4N9trTYvDHAI7?4ET32G`>b zX}OI9K1@PsRMv zR*BYzvtkjYa%2jDOp1>9sh4O5Bb=lI@;y@ z+obI`Q;~Wi;W6;G@3kj(>WjfsCxfwN2cA8Ztd7wq?N`bnKURuyJ(A6GT(onum{@p@ zhkkYWg06!J>QO&Q$gjh;O zV(_cqC#pV%`I*T#0c%N0p26g-Zn3zQmahXl6HBN*2@6AgEmcCly{F8H`N>YPHp!Ix z)HryxE}(-*>vInnhKo#e&XgkXZ+rr1?4vySU=~Bo#U+~ioBQP-q9AN%V|K-b2O3zI zp4K!~^3jn~yYJ;bGg;+sc&Ib1!sOiJ#4@k}6~80o>n8OL(RBZjiC-06U9_Xue;Sd- zOCTVy9HD~yhLq;xK)>{J+0l;X5jv+^tOA2l0jid~fQx#iJt++V|6&&FaInFGB~vV! zy{m>R^gx`7mPHJwJGa`cT!;EzLf#wCKyC817x>;$-}$V}0CR>JWc+Wf1D^Br7IP+s z`B=xn;IqY^riSEbU8dQI#7JU|)uM6x;lGDoeV{I+{q4MHrN59b|Vq17KKEjf!-A4(7FEJJE7O9(-9H=~p5Y3D^r#7P+0`>d9Hovu_ z;>7#=2ZX@r3Tes;$qKO52#p`v=+N9;KVWh06p;NW_45)8hBhMMn%8z0#=cL z`2oay)Eh^L&f03e`4SsS z!Jy)^aFW9WdO#*Jg_leR0vQBW(FrzwC2gpwv1kfSbgY<(s)t*Bf$v;wnGnvGqj*u2 zPbf=Z`QjG6&Qg&GV)3CAD)%zX1S2Yo3cuPa$tAf;=XDul2tZH}@RVE6NuIa=$Te_H z*s4G-T}SI)&GU0{l;}$%b6Ir~=Mqwjz2$0xcC{!645=}u&%HQIrf$l9x)7{{(Z#NI zy@D(u!}Xp9JQ1#B>roBFU-A>q@)WxUrWTJEmAx!BhE%h)fEytG>6}_z{XDKaB67ez zADW11pS_-SX{1iSH%=57EvHF!!DU#?!^E}hSRi8a&`wLM%6PuAebRux#GAoPQ=f!0 zqZN$K3O!AG8-3~Z-Q~Q=!Kckj;VkX!tzyO}wB%e|jSV5TkY2|m`#!)`cfup%vg*;u z1Rht_-}1z{%bEg^Fzp$0%70MVtrGj`J-h3PwB@L@ct43i_xCoOPy7z(u~i65C#pF@ z1g{f-T?DtsGDeV%3L52S&T*M684vvnJDt@^ZjR(p{==+LzC!uws9@$kD|SFBPThx# zhLbBwfLIJS0IuAz3M%rN4;_E!Ln>e*s61^N7+lCW&*}> zl9cvlse0)?{h-H=f}obK8DlI+C)$St?VW+#0;LlTB=(u|+ewFftYE!TI%khb%OrNM zEVP90dsbX~{JlWf&d5B+F6T`)4O0{^XKD4@q*>WUI+E(rQb*FK#KH23+4Xm)5Gl1s zQqn*)&>+@byGAu@<)xc4sky`%1GApEHXWe!0SO4eEaejPDd+i7dmuS_42#k(6*6-A zQKCw}LMOtY-9L^CO&^!Q(6xIH`T`nzF|AG!%8}~wr--ThP3i`>0>W6Qi5l@It)5R0 zsH@`XX%j_HC3N=@64s$r360CVtm4e}LAliT>(tIGII7S4`9t67A!`Yiab1Bbg5dFL*;5rm!d;+LL2J!bUC4 z*!Sa%NU6n|8siCpCQOoe6sPz?Z$s1%ioxajCZp*pvi z#w-bNJ5E)AEo|83Rwv-0d{4XBPbp?MRxJ_E0XJFweVGiZ^LhNyvmrgc!M9EZ$yGQH zIsgU!^_PH_j8*JhE9tsP@e5)YjSAf27`@}{oKfx6{}LwMLLk9Anzr_h+_HeM;q27OMZF})Vi97D15WgukA zCxMCs)%(BN+-!EPV1cjulaur12i-yrN3tD1R6RK4Q>H7uiH;SQkg$Tm`U|t~AJh_8 zyrp;l`d(cGd8RiznPayXqj+m?!6HpIJX9)CtE#USZNQSpO2)#l`^wUg(7BTWkIBKT zTnzsi&>s`8dQX$aj2Q5rH5y0fzAxwW=fq1d0bE~GuvHg%Erwrl#pkXUX7ZjzMp8`` z7}?^imi_k)o6)g5v)hpyx?=e)L4%mEs!7{NZz1C?E1Qp6YVGuM3>!+cVjACM;GpL! zLha(UlhqI%iWV{$xPAF!Na}Ane?^UVDe3Qp^Im)gyB@(hs+7nw0HdUphm*?*_q-hR z^eqoru4B@TPMfh1XP0%ZS<>yfTa1$W?Wpk#gr^9~;XJ#&2^tjz+AA4v&j7d;G5o9ePmMs12xY{+wOg zFSSPnG8#7i*~Z&vJwVXEIeBc**po|GvBI$*TXMH(PK}%MDT_UtS0@|7UKLV4535uJ zVZZs&wz)@x6n*#gju5Z^LZ#hb(5#>)rASRj;ujoaey?BQU7$_i45ouo5QxZ4}g#{j!oKq*DK3tSY zW6rI`6m(JP{9G~BO?)3YHL{so*bgtOZw}5wWPLn|KuoB;RKzZjL?|)u3PWCXFWcCU z_X?aW6#7Z3L+hR1NEjj*$gTAg!RXPSa4HCF`409yZs!$L@NN-U*kuc9GZh+iR=*)M zth@iqiyGG+w7^ea8#q-sFCJq2;<@#I4{za)Aad{g*1?N#b@~zE5B%O_&YD94j_;3p z0|U$IviLz;XAY#;6E_#JX%B-Ek2M!;B0uzKtFF(fwycHcaZ$UmNU?d)r$?R#h6)}w zQTKpC6i*t=mxLA@jZD@TX6C-(-lWe6&b;Ad(`Lh_6s(^DKrZU@u~7djTe zbq!#uQjDlES7qMT;9mUTANZQyjq^cmBz~S}2*+$B&o5vbMG5a4WD6a|5iVyzMq^-u z_N{P+mwN7`?^4J56FNzFZ)oX*$Q|dUQeO9Tm&B@kH(}%l+tPbSKzAuPq9>`%1?7q; zma}xaaCuf8xRls|bPp4vO*&J9s)|!+0A6yAXx3vs73aGqM6fw(rcX66>)&4Ds z_&B_*;^DdBEJfdhSm5lv1KBwSHeP$L!q({4C8XXKr8xTuq-dD$76WFV!&|E1qwe$j z0*aE-gR;kVV8R{BtNWYY&DT{3RYvIY(GvX4E|&*G=-3hrWO@82Li@2<@bSJ!)T8aB z9+QS}likfX4u45)lA2Ybze={CBjeTYj_m&vM$!>|Il(PsSAxojtimg`E9!=86i>D0 zfmI&g)DAcW1O%BrXP#sVICAL{x!e>dw;64bIGt<5WOAj7gw@y`#PR4ldf0-v5d2w3kBS zxRFrJ7mxHwS`^BaZ33q|tFfp&CYxeCN-b|aVY$~XwU?bLksTC|c-?q&iw>{KLm{OB zni3pPFtn-aDt!yq~j)tW^8}UE<}PoV++qx6`QnRL}IGjXp_|Y}t!! zu@zj?GhanaWl8oUQk~(~DF8`}rsuV{BeLN0;51w&XNo$gmT`!-1{+E~k_{$KxV^Xe YCW~LRf{yX-FB?21^@s6bjBo3001BWNkl8jktozvo>4_w%2){lDY~w%6Z!&CT0f`z^a>%(rW_;FwZiYHiHQvp`M0Gb#jeh=9V{mV6QZ+td zI&@n7Z_?tmkH+S0ezLi@uetHfwe5O|IiHxXp5qU%|J~8u`56=Q6aSuVrt3UE)hIXJ z>a|wtQd>~9<4$AqbsvKL>fqfT)Ow$=m)SGzbkJ-;!t7M*PVlJxo%$cOsdRj2{{Or8 z|D7kBSEtQDv;kNn%mleccxY$3r|Fm&z|!8giN}h{c8#=GRwPx?+s@_2Z#qr~{G`FA zXuHmub=hoR?Hrr=&_~z3>h+|_PsZ=gTC9Moy{YEGy*_Pg*J659g}&}?zn}Kq+|9lj zkCMG;;}hC08Im|ycXYQC+upCh+{}Z5!9-L*YLaf+)e5c^Y3d9ckgByXiPb*ld3(}{ zip8mZ@V;xmDSpll=F>Kz)DZ#Gi2}%fgy(yp3U&DD0FDX!QMu?8v4q2hLWU!w!n2)Ry?K@7pA#<)Gs*fkAB3sam|!Bpi{ zqmf3>X$<=2$MHxDwUpG2Fn(*yZ_V34xfyfEzV@lY6&og!)+RP@o8X%@wm@nM3R^!F zI`$;sz~!Dw)HSq$!NdV3jZaWWPdlkIR8UpxVi9k~VV92acGr_OnE$svYxmIRfO?XA z#^N!_H;c!tL^pOY}|Ghx480OluD-bd3!z7nBxVKHe!7?Xix_^Q2*? z)l?KzQTnp`$6NjyKwQat{r~2kJB8s?gem!(WNqP|0J#ClcE8HEse@|Qnek?^ZugdS z(umx}gTbVklldv_^Q0JW^)~Hlp~lXQ6Cm7P6+D_b9aI_cQv4cQ($N`fK-waDH|9xG z>CFGNw}&CG57(rmO4YQ5z&{n>uBvXK-1?H8_cA}SBvJM<$ewhl8|Y7PJ6ka^S)!ik zh^>D*Px7?`sDfFWkXvvu_-(X$*WT0^CD5hyT@g|cSH)35(`iuYRTX*_50xLz)+>+E z2mg9Z_P>|ouR#hpr%BL?sF@$Ty6wMljk};u&`H%*C27-@;oK9}c>l(?ZP7R>Ozx<` zb?i;Yoa}DSMU|g61uSVw?d7^pfv$O7L2z4$Qpet0cg3xRy#h0X`sI{|RW@PVO|mserJ3qjO^`=^q#~1wXaicerrP%g)J<+Q z>-_M=zo_6a-S|+ZJO5 zGIcC~eqyn6$$tugjYc-QXu7oqL@vG#^vVAz&IumP+NlsVbGTy8w3v!c1KAedTg}b! zDn8AgP!shhB2(pRl3_bWbxaJ5DIr*~NqbTNRWMY^d?cZ{%?{@&52I{ zpYo-OSyN~e*j$lF_crUhuC?hLm0lVkyIe~5GrzPDa(-jlNjc$~B4?B1gIlxl`L&P4 zAQpq>9<<@@OgnXfcamNKh>6{;bAgdT7@^q!MeUi{+w9+U%Fe!Y-}ZVVHr0J!_on?S z$T1OPmx8`f9h2%{6==|Qx0mE2cJFCNof-`UdTZPE391EK+wo(bC{4KdvU^&{x)`PW zcU?V;hx1)}Qc*>dxo9oS(RuIltn?S31ocPn) z3CgK+WS~wRCC0DWR|0rilY!VJQ=|XXRXN|ai9Gk6?rGts;F{)dw7_Ef$)eL9UtDW8 z1uW(IslVEy#Qb{et67tHH%XsBuM*3_`|Fw#3KKjFdRswNu}DF0iVu!qbE2=?*fevy zWN@~$Hnh-808i_wBI1q*8ql}|bRBCd?CvQ;>Bc=RJ4huvRW2g{RUSAvHwA$`sj%E^ z=4x^^J%zd_UuA3al$M^jo^w1lP<@|vn-DCqw%~MYHP>2zVK>z5v4wEzVqMWlaJlxk zg?H2arQ~Qj#8l`SJ+KZY!O=Z}BbeP>%{mR_wrjLtV*pJ+R!?oIQ*;H*6`d0s9q^m@ zxqMFhRLpRGRo7C-@0yRsj{11SRq(b;PEd5!oF$0@AA>?#`)(K4I2&Q>;H$cbrc1cS zI8h~kwD%@ZrbKiA|GIYlZwrX@)YQPp?M=ly!JKK9>3{*eiT%drtxq?QO8!knhG{s# z@Y0Hkee0V~X+N!(e4q;LEolD+$Q4Xd2bci3ePl@xcYALW+6mJo{|1E4pYHLpflm`F z^%%(nn~IHs8v_Kh&BbM_uQuUatZ+YQpL(3$KJBC@AGUWF9|y$-tVvtU4|j4Z6~&ZK zsY`F;k&Z{09V`wXJ03Yrs0RF31#QNrWk);^h%{Y^Kh z;N5mbZRgzXs~zV$MptyV&})Hx?vsOhULBc^N!8KiX1&3*l!S|EJv0=;!sJCEdT1oJ~ z3X%1xg7yZ)*FtS4jDg%FsRB>xuo)ngQx%{bm|A}|b~I4hcBtFLbI?_OV0LfjNrJxn zSe;x3Ws_>;aCt%;b&YFjlqY;(k@pwc5 zl^KzonC8Okv+AVIOs&ll-F1zvjT>RNwz;(#C{yyLLZ&))SDaGZFPj>GyY6ZWMO@d} zkrJrsO4HNe1Q&~|16Ati7!(yCuXU0?HlRwjCk`lGHl69F`PjmHsI`iX+UY;{kW$sg*vgRsl@~$S|@>$wT6E9gH9v6Nbk1&H~ zrAgh016^{UO2!GQ^mydJ>}+>Q=bk*8u9J0v3FrwDIHyX~PbAQ$t4elXu}lSaJ_T)( zMCs1~`m{?&-?BAuzikd|y0y)mtjlcUtF*L<4?f+pe>d~FeKhw^rk!eW-q)<@o~+yZ z<+uDfNN!+*Ai;#fbv^-HCcri*${w|k1WH`DNpcq0jnCV?rXvW~Ei_hiE-*8?sTaL`^KIoQ8$Hh>es=W zB|mDF!5Zgh_pqYZcBz|WZ~c7&wrNLmzw(39_$O^wvAouBwlxJgoTPMXat+VlMI(kTcaBH!BG<(~E`Of&Q{Vm`fr`R0ryzO33=fnG6XWA_3S<*Ft zYCxe9)7in+M)0eIb9+(8F<6{j0dYqsN_opeG9?_T?c^{5N(lgdv3bSq_wTRTd-|?$?S1?eq#Tpee&a}=3&(HcqCOf z1s0ZYE(s@ORRKU-nxuB1K_|8VXCQV#cZDbcWA1rVEYeu@ON}k?R18{CU;AfC$$W#_ zX#CDJs$#9Qr~H!k*}!89q||YzBb8*coBu=~$(~b~sr$D3Q`%ESw~6UyPn)r7Z(noJ zUqm{nv11nQn}+L$(pmkPzHMjX^q z=je)o12MbilItXqoxhwW)6t*0eqv)&+#3yk0`>`R>H5~EIR4Vo-6H#``+w}`tIbZ8 zW(yeCDbI~Ca65Ra1Z$E)6^Rt!#y3qzgpb(H4{4uGVl)6`dv`Hu#Byg5X3k*Uu>bMbZ}=L^wB5g+Qd^8k5f>e=0VfEY{q;7;ICYHO!nukBVRw5 zV-f{Zm*nnPVhg&H!g1Ngl2z?T*){iq$&!4d#-Bit`5_g_2AWNB-bozyh^yBA6yT-~ z8i+byG=BOm@NL%K07Ys0lk2r}CAhWoG*4zH4Oy~pquFLJbiUbXyT|Kv^xy!UpwCxxlq2D)2KH}T#i{T4{SIsP~2c7AJp z%E0EH;+p-OuDxkKwre=M<==>85Nm*{#-!Jq#8Dl&1OI73!o+X7bLXFv`K}nSBFH-G z6M(z9lV4fPT;Wa$wCT1Q0JtKxO``4iwAbx?e`9>()2Yd(IJ4rlS?8bN$5enn85@?5 zKjz2d5q1R89F5#b5WF`9YWoz>I8{N_t(Ahwx@!m47J_L%&Y!K#&7;}|vL|CJ0YBaX zg+9IZ==Pd4Hs@%@{u9O|U2M*|KRMS)C#+!q3E*!FNfX=F-e&Ejz4~~h>EhVqf_m)& z3nu0SPFn~R5H@pd0kN?S_qws`laF8u=1!FDK7S+0)6<{mgMssoecRkhzIFvU+1cnh&9N;2 zHg=DTU)+AK=|I&2nI+lvnu3Ds%CCFWCgyr+51YU?@I~<8J0 zCUG|1>Lv+ry%d+Em&QNa1p5>aSb=m!^Av0+K2X|b@nAW*$-Shp(|tGEOlyC7j!iDS z^7aeb3N8#16TB_RnMk(xretIwn(MX&X=_*0-Lo!41wR2*L0{Q%H-VZ$gnr&6=%Ks#N#Lin4XxLf|7)|h-0B!+^{&Ke60i6ndyQikmsHEJiu^HTJDq4zB>N;F)5epx#2RnP2$~%glDgH@U$v5==$BWN1ZA?^`xJrQY z_0#)LlAf)_3If|B3vNoVHp!A*&c^K;+wo0;{L{uT0b>%Yq`Q-FO;fM|K=LcQ?ivQ? zm!v^9Z{yPjZfr~wpHws)TUw~Af|ek9qN9_7>hvW42*P#Kgqr$=W$Lh%BNXJXHJJ@) zkE*b4O&2gs03~XbSjk^oxc=YxKOdfH;_2Yp`jHjV_TB{JQ?P#mL~LyZXKY%U{cpg8 zd98BJ6_2JMIGa*oNbp9RTU%Q{*{1ig*juN~M9bispuPqCNr&AOgH~_~w(POGsq{^7 zwn^R;sJnB1G7d@jcWhNUJ?Wsfb|{D@D5rIlW>mMVK%Bbk6c+}hro&8KbOYL^Xe!{g z_og_U0GJiJ#?Dkssn42UM7neCEu0-38z`k@WmWrHvk59XKLyxbXY0B`^QpJ=HHGSL zjA_?s$2oAQ&PRbH0k#EKtCt3pEf}Y+(!5E(>3&t9J_Tq8txwwC%#~u^_-Yo+HcpOv z*P3rExuEUdGPb=o!R)|=*Amd1xm-1G1Gg<6Z86w(v8mWJuxs}GPaC5W`P9xfkv2)m zVAj|-?`t64LNj%-u6Q|{TuwH?#dT*a7*`N<$%DyUFno19 zf`Hmo69?S{v=&fp!BAaoa$dUL+L`wIiFF!V{#(bmglk~Z?z6s&fDY#+h-fcrl>L-)c%vb={mFL^@~WXsLf=mgHfB>{K9fN0q0}Y zA1m_Kes?sX0=`+J6-_Jf-(I_!-*q`EA>IDcdc^R8eS)k!yC}u00ld9gno)KB*)P02Oq%4sX^aPF1aw)=Ej}@}TvF1KlJ%c%+_y<#k6s< z%ju?NESuxCUiw8O6ZWP8C6PGcu`WJU`@aE5Ra`!`cAM~b)@y*(!g6cJ-`HP*LE3+_ zr_@=d+)>vtVG*QP&fxmk!Ls|BG0rzwNF1Qk(=D?f_vU<*3U&kJR*SCi&ua|INhe#a zy?wX_VVr_~jYmV15voG5`_f!!LmPzCN`5+jyN{FZX=~HT_>+6ujwJyU!O$iv0*d*z z0c%sPlWV% zgayAjd)|P9ZE!;Ny57v0#M~xOTd*3NHo$4%)rjW=R%za38zyk_wMrsqyMuzdkHvCZ zq^1Tjp2;s8jcfp!{LAcO4Hny51DUihRczSY6Uf^_Fz0h!{wL$4G=+O}Aa+G06~C7T zA3wZ~M_AR}fRu?tRSg$>2fR-OVLQ*?f^ZA3O@T?iR*9Yf;RML`;W`l)4+R3Jtpt~} zx7H_H9i@D_atISR9gn2_Yzl*FnA{x7->j(P9@!Z;>U#tAqzhKOS$?N+PR|MCnv6+L^q%ACx)6ubR-aCnr#OxrM66`m?kmh6wwe`;i;!L=z<4|_A0={$qreSFO zm5OwVQ_`LCE5`S-gMn?@s6eZV&m4aeA6$Fd+4%0-{{-K(gB|ankJzY%~6%o~l& zIaF?_qR{y22TPxA_7}as-)rjt-gY02pqtLBndfhe`5S9EU^Otq;`5)h8SUKwMcJM9 z=aQmHKvtkXsrMER4qVJP$+uX{5SGlYjlU4y42sAXv>CxYfvuo^t(%@e8kn==6?Pxf zpqu{`;K}B%FATW2Ek6~>9E0akYRpCysp@RSv>D%wy$eE>xLY4FF*NqKg`wSNJMNBc zssN-p({&e%-`*E{DnJM&SRve<%?JUt{(L%^>$9g~1zrSnb5z0XL%yIr*B;Oh3Y1us z6BuVaTz)nURm$&HZ!bQk;}O?2sl^;rRQEDP&~9Rzn4cP-5~N+{H}=dDGCiud_MXo3 ziDI0Df2S*Efck{Z+aigecHnBEgT=rdvuu6L?45QcT_xZtEi)!H{&3A_bAKw7Ofzg= z*0HD8-u679ogmy)QI|Z8h*O|{3+ToZr~XNB*?hxN-xah| zKu}yKT^I`#J9cS+`kx&0H`e~-8lRl2(aDK6?%0@YV$jC~+0N09|60c#Hz;VMeXI*- zNuGc(!N%5@zETZ>D|8Oj%wE<-vpq1Vrx>)pRlYt2cq*){h|@;x>+5g7{+{mzZ6&63 zCUrSV{r{AFY~6Iv--bXEUJ}c1?1!!SpRnUM_V$T6m9E&_*Vy0opDGrqyH;Ix(|sps zE1)=-qrVW^b57T3A~RfUobTN4(_CR_AU=IO=W2YvWm^sRFKDZ3I-NQLHH~4;Y{b6} z>?acWw_xAw_n$ImE2Mvl-J968+WIGGih+ZHLcv27oXZF9c;p1=$==lDA(%GZJKL*@ zA$H=(GPDDI!N$87IN-8llON;1yXfcZ>gVs9yFYD<>*||s zX#?C(*q-K4ongA~Hz40Y5WC(459|V6F0*D#fz*LXb>{3CM;&({+^{*sVyyVX?A$;& z`IpV_I&W1RUBQx|e*oQn%U^ozK#?;i{zg)}b$%nU{%_8I{WypHZ}rKQaQ_KFGkCg3 zbc9E9Ofoxc289;Ln74ReGY;3IyJhk)GFTd5bB0O-NjbAsN`DWfbK6A~(-?G8w)dt=w!PEIG zgT8}k@{4+6NdP+S$~R9)4BpNzRv@oz9@G7*tG{d4U5#w*-j1L7qqK(}}lNU}$u6iDR=w*MJ) ze2h$XZo5?06|f?rUQ_lrh4tj#Cc)bx)oNoC+kg6;3KlcTQ&+9VGSH_OH}Pa+t~_wC z!aQ=ht^mD-ITjA)lZzk9Uk>`}D2mxX3l!szgE{kS{qB*b6ITJ;0_;>^6XH$bLFhN& zRsw8bdYTySOiWhe#UI<NXzR`%w)<`Nmg1@Qt#X9HqXoDE+1;nW z(_-oJmKCT^#{aUpfqOIN1lDW473bN{eSNjr3R+2!rxl$Eb~>)P|>&iq4R{t3;@L_YyYvo~BLb%V+eOgA{z4aU= zGxxvgl$+ex=<3?HgR%0JDw?wZse=27;>a}ggH?|gp2s6hOblq#;FGS$!S zCV{p`IvW9<*r5v86i$MQD}u9Y*zTo?jZ0X(mcZf~3iL-?IJe`}elQo>eKRmPz$8GY zd)qul&CGmMYi#x73IkqC;CE|J(6Pdp07u&g001BWNkl@=T6aM0C7)y4)8A5X1D1c?OhYZ3N(XBI}X=EoimNQdz^k+D5r6%Il{Q4ChATB z!uZ+akpu!v5>*{kCqILh)=FYQ;kda~BF}2p2BAsx26!l*Q-3HwwXdsgr`@L#Clk2> zSn50`kfz@z#1!ms%ys|WW`p^MX)x`%u}AG+`9d`~b9{m~({QU5r#+{uRF%l7-@-Y2mi|3gQAy{3*E(s;aAB{hoVx-U6_&A&Ms*$6U;rU7u%#i(E< zfHQa{o0<;E>0$a`{k#R5i|GcO2<~KS(wcib#8!dUZUafPtFBanI}G zoervSVhmGGD2+0kRUDXZ8lbb20Tvs@NXO15_pY@V55MlWe*{4Z+6CJgg&TLBUkd&P zyv_+5n@$tlCC!iXs>O$5(4GeH8yF*m6j+%LS^OA$nhx7RL^TBI^_kG@$Ru^M>c~L> zHtiDuljh&rr*z(ErUh;bq)*Mq^vOWId5xVGU{P>moK}%TDi_%tlM_Gw8avWGRSi`Q zP^9XyG(EDbq3FYFfpv=Uq3c7k?QFAybHTEb- z;=O4P+d`vs-mb$6$ObxW>|4TrHw9SK+9IHu3>M!;hbgC&E)%d%{KzwVfR8C-Q}#;58s9mN7PorIfm5KP5p18V0?W*PRA%gC3{^r;~=P@ z$?U*2RH131t2#^sJ)7^cyYVvv=1H}~epV6$n2)I6yn*@Bwo zhdOq0epI?wPfv{wPZ~JKpt&aQTQc~o(^keN;5Aj+i55lBfWswrs?e&7Xo7`fSP{Y3 z9Gn%<**a4w4YVhal@QqDabr{4$toDQy)+<8a7)*x|J>Ls4h?iSYqFe4K205T0$NiH z(;l3rurRBJU<-Hj6~=-URi|O4ua+sU`$b*3JWe^zI5p>gd&}Q+5(AmKo*oMtC{E$I zPLqM&RVW76#@H{kn}Kju6tag`vMfL$TNwN#?E07~5-OHj7vo%I}$-4gD(JQDW_%%RgxsR`*rc%?=LOjLT<(w;cjbBuAlN#DoD3#64yz~>1u4=GJm1vXU zsxxK)X8}&|Z5+@5)Q#C(V}W9@Wl)&+HXWi8E9-(>!BmN;I_5iIMcuJ(y#b^u2r2o| zXUfma&h%Piw;OZC;k4K#og=_f?&5sSzo(XH?vlUelAa=1P9;#gTuS?35NCUFjU>w* z<{QPl2yGV31j}pV4(6(YO{ck}O|ZP2(At_r+RVe&{1J@D3*V17Z|{v~`%WTv;AH+m zfxE{rwf5ZO7DNfA4on*@{nl6obyq|;g`zDQ3`*(=^c429_@3rc(l6=}^{n8^K+QNc zIi$3&II@MaYi4b3e-|p%VB+h~xgP&L;`8Sdk#plLIdO64s4WC%qPfSlHX&6oKJ~it z7ZWN=T(%D;vhB@ImLCY z4$2M~+amFa@lDWOF+2g7gE%IcDh#tAHyxVt`xF)0h5k)R))c2t0`FulEQTj@e4=nT zfUttBo@!N0n6B+!9~b|$e2)&${QPJSr<4Y_|MmRzHPaKlfxL)-SHPb+GWUslW_(Ee z!IJ@%A8K9q`kX5skFaD+M+HtK4XBv$Of)#I*>r++1VcL$(6_pl%m^=y&X})wFZFyn!COQwrX1E>x?y*4bA;-F4eKKe0kdO3zQ+f#yK0=t4X1~CQ01v@2Z=yN$l_cZ7aqmQMVAC!aV8raZjxKSN6BI zVt3HmsRGKNihh`Zp7W^J*}gG(5!`bh(~na)EV-K^HTTo}jKxXCk`{;=kx(KXBI=WAckRuxArhOofNU8kDhneKH!O)%Va&?z`BxaiNB zJPMF%Ofz1IHUY+UXX%;~KLcobs=$J$=1?HocG&3e7T(UM3>YZ}?LN~y^ZJZU^E&hW zOH->t6C#(OI)`VuRC=gESTm z*JwTWIibzqi{NJTR|YW%=dpH@Vg98|PuU+dx{4arZVkkG@A8spe(wtNukK18}McQ$*^1gv$gG`&n(8B^gVg zc0IMX%XtVZ6pISr#wO=8eA;O{O-yVBe%z;edQi#6p3+)iop#+VFx8�$)8vwuR>M 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 literal 0 HcmV?d00001 diff --git a/ARM_Tag_FW/common/oepl-protocol.cpp b/ARM_Tag_FW/common/oepl-protocol.cpp index 4c0d3da7..a8c7f6b9 100644 --- a/ARM_Tag_FW/common/oepl-protocol.cpp +++ b/ARM_Tag_FW/common/oepl-protocol.cpp @@ -77,7 +77,6 @@ static bool checkCRC(const void *p, const uint8_t len) { for (uint8_t c = 1; c < len; c++) { total += ((uint8_t *)p)[c]; } - // printf("CRC: rx %d, calc %d\n", ((uint8_t *)p)[0], total); return ((uint8_t *)p)[0] == total; } static void addCRC(void *p, const uint8_t len) { @@ -229,7 +228,6 @@ static bool processBlockPart(const struct blockPart *bp, uint8_t *blockbuffer) { uint16_t size = BLOCK_PART_DATA_SIZE; // validate if it's okay to copy data if (bp->blockId != curBlock.blockId) { - // printf("got a packet for block %02X\n", bp->blockId); return false; } if (start >= BLOCK_XFER_BUFFER_SIZE - 1) @@ -335,7 +333,9 @@ static struct blockRequestAck *performBlockRequest() { case PKT_CANCEL_XFER: return NULL; default: - printf("pkt w/type %02X\n", getPacketType(inBuffer)); +#ifdef DEBUG_PROTO + printf("PROTO: pkt w/type %02X\n", getPacketType(inBuffer)); +#endif break; } } @@ -374,30 +374,42 @@ static void sendXferComplete() { int8_t ret = HAL_PacketRX(inBuffer); if (ret > 1) { if (getPacketType(inBuffer) == PKT_XFER_COMPLETE_ACK) { - printf("XFC ACK\n"); +#ifdef DEBUG_PROTO + printf("PROTO: XFC ACK\n"); +#endif return; } } } } - printf("XFC NACK!\n"); +#ifdef DEBUG_PROTO + printf("PROTO: XFC NACK!\n"); +#endif return; } static bool validateBlockData(uint8_t *blockbuffer) { struct blockData *bd = (struct blockData *)blockbuffer; - printf("expected len = %d, checksum=%d\n", bd->size, bd->checksum); +#ifdef DEBUG_PROTO + printf("PROTO: expected len = %d, checksum=%d\n", bd->size, bd->checksum); +#endif if (bd->size > BLOCK_XFER_BUFFER_SIZE - sizeof(blockData)) { - printf("Impossible data size; size = %d\n", bd->size); + printf("PROTO: Impossible data size; size = %d\n", bd->size); return false; } uint16_t t = 0; for (uint16_t c = 0; c < bd->size; c++) { t += bd->data[c]; } - printf("calculated checksum = %04X, %d\n", t, t); - if (t != bd->checksum) dump(blockbuffer, BLOCK_XFER_BUFFER_SIZE + sizeof(blockData)); +#ifdef DEBUG_PROTO + printf("PROTO: calculated checksum = %04X, %d\n", t, t); + if (t != bd->checksum) printf("PROTO: Checksum failed!\n"); +#endif + +#ifdef DEBUG_DONTVALIDATEPROTO return true; +#else return bd->checksum == t; +#endif } // EEprom related stuff @@ -406,19 +418,22 @@ static uint32_t getAddressForSlot(const uint8_t s) { } static void getNumSlots() { uint32_t eeSize = eepromGetSize(); - printf("eeSize = %lu, image = %lu\n", eeSize, tag.imageSize); - +#ifdef DEBUG_PROTO + printf("PROTO: eeSize = %lu, image = %lu\n", eeSize, tag.imageSize); +#endif uint16_t nSlots = (eeSize - EEPROM_SETTINGS_SIZE) / (tag.imageSize >> 8) >> 8; if (!nSlots) { - printf("eeprom is too small\n"); + printf("PROTO: eeprom is too small\n"); while (1) ; } else if (nSlots >> 8) { - printf("eeprom is too big, some will be unused\n"); + printf("PROTO: eeprom is too big, some will be unused\n"); imgSlots = 254; } else imgSlots = nSlots; - printf("EEPROM reported size = %lu, %d slots\n", eeSize, imgSlots); +#ifdef DEBUG_PROTO + printf("PROTO: EEPROM reported size = %lu, %d slots\n", eeSize, imgSlots); +#endif } static uint8_t findSlotVer(uint64_t ver) { #ifdef DEBUGBLOCKS @@ -485,7 +500,7 @@ static void eraseImageBlock(const uint8_t c) { } static void saveUpdateBlockData(uint8_t blockId, uint8_t *blockbuffer) { if (!eepromWrite(FW_LOC + (blockId * BLOCK_DATA_SIZE), blockbuffer + sizeof(struct blockData), BLOCK_DATA_SIZE)) - printf("EEPROM write failed\n"); + printf("PROTO: EEPROM write failed\n"); } static void saveImgBlockData(const uint8_t imgSlot, const uint8_t blockId, uint8_t *blockbuffer) { @@ -494,7 +509,7 @@ static void saveImgBlockData(const uint8_t imgSlot, const uint8_t blockId, uint8 length = 4096; if (!eepromWrite(getAddressForSlot(imgSlot) + sizeof(struct EepromImageHeader) + (blockId * BLOCK_DATA_SIZE), blockbuffer + sizeof(struct blockData), length)) - printf("EEPROM write failed\n"); + printf("PROTO: EEPROM write failed\n"); } void eraseImageBlocks() { for (uint8_t c = 0; c < imgSlots; c++) { @@ -517,7 +532,9 @@ static uint32_t getHighSlotId() { } } } - printf("found high id=%lu in slot %d\n", temp, nextImgSlot); +#ifdef DEBUG_PROTO + printf("PROTO: found high id=%lu in slot %d\n", temp, nextImgSlot); +#endif return temp; } @@ -527,7 +544,7 @@ static uint8_t *getDataBlock(const uint16_t blockSize) { uint8_t *blockbuffer = (uint8_t *)malloc(BLOCK_XFER_BUFFER_SIZE); if (!blockbuffer) { - printf("failed to allocate block buffer\n"); + printf("PROTO: failed to allocate block buffer\n"); return nullptr; } @@ -566,7 +583,9 @@ static uint8_t *getDataBlock(const uint16_t blockSize) { powerUp(INIT_RADIO); struct blockRequestAck *ack = performBlockRequest(); if (ack == NULL) { - printf("Cancelled request\n"); +#ifdef DEBUG_PROTO + printf("PROTO: Cancelled request\n"); +#endif free(blockbuffer); return nullptr; } @@ -621,7 +640,7 @@ static uint8_t *getDataBlock(const uint16_t blockSize) { curBlock.requestedParts[c / 8] |= (1 << (c % 8)); } requestPartialBlock = false; - printf("blk failed validation!\n"); + printf("PROTO: blk failed validation!\n"); } } else { #ifndef DEBUGBLOCKS @@ -631,7 +650,7 @@ static uint8_t *getDataBlock(const uint16_t blockSize) { requestPartialBlock = true; } } - printf("failed getting block\n"); + printf("PROTO: failed getting block\n"); free(blockbuffer); return nullptr; } @@ -696,7 +715,9 @@ static bool downloadImageDataToEEPROM(const struct AvailDataInfo *avail) { // check if we already started the transfer of this information & haven't completed it if (!memcmp((const void *)&avail->dataVer, (const void *)&xferDataInfo.dataVer, 8) && xferDataInfo.dataSize) { // looks like we did. We'll carry on where we left off. - printf("restarting image download"); +#ifdef DEBUG_PROTO + printf("PROTO: restarting image download"); +#endif // curImgSlot = nextImgSlot; // hmmm } else { // new transfer @@ -707,7 +728,7 @@ static bool downloadImageDataToEEPROM(const struct AvailDataInfo *avail) { if (nextImgSlot == startingSlot) { // looped powerDown(INIT_EEPROM); - printf("no slot available...\n"); + printf("PROTO: no slot available...\n"); return true; } struct EepromImageHeader eih; @@ -739,7 +760,9 @@ static bool downloadImageDataToEEPROM(const struct AvailDataInfo *avail) { #endif NVIC_SystemReset(); eraseSuccess: - printf("new download, writing to slot %d\n", xferImgSlot); +#ifdef DEBUG_PROTO + printf("PROTO: new download, writing to slot %d\n", xferImgSlot); +#endif // start, or restart the transfer. Copy data from the AvailDataInfo struct, and the struct intself. This forces a new transfer curBlock.blockId = 0; memcpy(&(curBlock.ver), &(avail->dataVer), 8); @@ -761,7 +784,7 @@ static bool downloadImageDataToEEPROM(const struct AvailDataInfo *avail) { // succesfully downloaded datablock, save to eeprom powerUp(INIT_EEPROM); #ifdef DEBUGBLOCKS - printf("Saving block %d to slot %d\n", curBlock.blockId, xferImgSlot); + printf("PROTO: Saving block %d to slot %d\n", curBlock.blockId, xferImgSlot); #endif saveImgBlockData(xferImgSlot, curBlock.blockId, blockbuffer); powerDown(INIT_EEPROM); @@ -784,7 +807,7 @@ static bool downloadImageDataToEEPROM(const struct AvailDataInfo *avail) { eih.argument = xferDataInfo.dataTypeArgument; #ifdef DEBUGBLOCKS - printf("Now writing datatype 0x%02X to slot %d\n", xferDataInfo.dataType, xferImgSlot); + printf("PROTO: Now writing datatype 0x%02X to slot %d\n", xferDataInfo.dataType, xferImgSlot); #endif powerUp(INIT_EEPROM); @@ -806,7 +829,9 @@ bool processImageDataAvail(struct AvailDataInfo *avail) { struct imageDataTypeArgStruct arg = *((struct imageDataTypeArgStruct *)avail->dataTypeArgument); if (arg.preloadImage) { - printf("Preloading image with type 0x%02X from arg 0x%02X\n", arg.specialType, avail->dataTypeArgument); +#ifdef DEBUG_PROTO + printf("PROTO: Preloading image with type 0x%02X from arg 0x%02X\n", arg.specialType, avail->dataTypeArgument); +#endif powerUp(INIT_EEPROM); switch (arg.specialType) { // check if a slot with this argument is already set; if so, erase. Only one of each arg type should exist @@ -831,11 +856,14 @@ bool processImageDataAvail(struct AvailDataInfo *avail) { break; } powerDown(INIT_EEPROM); - - printf("downloading preload image...\n"); +#ifdef DEBUG_PROTO + printf("PROTO: downloading preload image...\n"); +#endif if (downloadImageDataToEEPROM(avail)) { // sets xferImgSlot to the right slot - printf("preload complete!\n"); +#ifdef DEBUG_PROTO + printf("PROTO: preload complete!\n"); +#endif powerUp(INIT_RADIO); sendXferComplete(); powerDown(INIT_RADIO); @@ -848,8 +876,9 @@ bool processImageDataAvail(struct AvailDataInfo *avail) { // check if we're currently displaying this data payload if (avail->dataVer == curDispDataVer) { // currently displayed, not doing anything except for sending an XFC - - printf("currently shown image, send xfc\n"); +#ifdef DEBUG_PROTO + printf("PROTO: currently shown image, send xfc\n"); +#endif powerUp(INIT_RADIO); sendXferComplete(); powerDown(INIT_RADIO); @@ -882,10 +911,14 @@ bool processImageDataAvail(struct AvailDataInfo *avail) { } else { // not found in cache, prepare to download - printf("downloading image...\n"); +#ifdef DEBUG_PROTO + printf("PROTO: downloading image...\n"); +#endif if (downloadImageDataToEEPROM(avail)) { // sets xferImgSlot to the right slot - printf("download complete!\n"); +#ifdef DEBUG_PROTO + printf("PROTO: download complete!\n"); +#endif powerUp(INIT_RADIO); sendXferComplete(); powerDown(INIT_RADIO); @@ -919,8 +952,9 @@ bool processAvailDataInfo(struct AvailDataInfo *avail) { case DATATYPE_FW_UPDATE: powerUp(INIT_EEPROM); if (uint32_t fwsize = downloadFWUpdate(avail)) { - printf("firmware download complete, doing update.\n"); - +#ifdef DEBUG_PROTO + printf("PROTO: firmware download complete, doing update.\n"); +#endif powerUp(INIT_EPD); // showApplyUpdate(); @@ -954,11 +988,14 @@ bool processAvailDataInfo(struct AvailDataInfo *avail) { powerDown(INIT_RADIO); return true; } - - printf("NFC URL received\n"); +#ifdef DEBUG_PROTO + printf("PROTO: NFC URL received\n"); +#endif if (xferDataInfo.dataSize == 0 && !memcmp((const void *)&avail->dataVer, (const void *)&xferDataInfo.dataVer, 8)) { // we've already downloaded this NFC data, disregard and send XFC - printf("this was the same as the last transfer, disregard\n"); +#ifdef DEBUG_PROTO + printf("PROTO: this was the same as the last transfer, disregard\n"); +#endif powerUp(INIT_RADIO); sendXferComplete(); powerDown(INIT_RADIO); @@ -995,7 +1032,9 @@ bool processAvailDataInfo(struct AvailDataInfo *avail) { memcpy(&xferDataInfo, (void *)avail, sizeof(struct AvailDataInfo)); #ifdef LEDSENABLED if (avail->dataTypeArgument == 4) { - printf("LED CMD"); +#ifdef DEBUG_PROTO + printf("PROTO: LED CMD"); +#endif setled(xferDataInfo.dataVer, xferDataInfo.dataSize); } #endif @@ -1009,7 +1048,9 @@ bool processAvailDataInfo(struct AvailDataInfo *avail) { break; case DATATYPE_TAG_CONFIG_DATA: if (xferDataInfo.dataSize == 0 && memcmp((const void *)&avail->dataVer, (const void *)&xferDataInfo.dataVer, 8) == 0) { - printf("this was the same as the last transfer, disregard\n"); +#ifdef DEBUG_PROTO + printf("PROTO: this was the same as the last transfer, disregard\n"); +#endif powerUp(INIT_RADIO); sendXferComplete(); powerDown(INIT_RADIO);