Aktywne Wpisy
JessePinkman38 +111
Minieri +226
Dzisiaj mój osobisty rekord na stacji bo aż 4 osoby prosiły o alkohol na krechę. W środku tygodnia, na stacji paliw a nie w osiedlowym u pani Krysi. Były propozycje zostawienia dowodu czy nawet telefonu "pod zastaw". Najgorsze że jak powiem "nie, nie mogę nic dać nawet jakbym chciał" (a nie chcę) to im nie wystarcza. Muszę się kurła tłumaczyć jakbym był winny że na Halne Mocne nie mają, ehh #alkoholizm
TL;DR: Jak przerobić dowolny plik na tablicę wartości hex prostą do użycia
Załóżmy że piszecie sobie program na #esp8266 i potrzebujecie tam zrobić mini serwer www z prostą stronką w HTMLu.
I teraz tak - praktycznie w każdym tutorialu zobaczycie mniej więcej takie coś:
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("
");
client.println("");
...
bla bla bla
...
client.println("");
https://www.arduino.cc/en/Tutorial/WebServer
Dopóki jest to prosta stronka typu "Hello World" to jest jeszcze w miarę łatwo, ale jak będziecie chcieli sobie ją ładnie przyozdobić .css-ami czy dodać jakieś skrypty w javascript to #!$%@? mieszając kod HTML/css/js z C/C++ w dodatku nie mając dobrego podglądu tego co piszecie w przeglądarce internetowej (╯°□°)╯︵ ┻━┻
Albo jak mamy inny przypadek:
Robimy sobie coś co będzie wydawało dźwięk - powiedzmy słynna grzałka w ePapierosie #pdk jak nagrzeje efajkę powie:
Mamy źródłowy plik .wav z nagranym dźwiękiem i co teras?
Znając amatorów wychowanych na windowsach będą szukali w internetach jakiegoś programu typu mati1488-wavhex-converter.exe zamieszczonego na blogu jakiegoś sprytnego Matiego w roku 2007 który przekonwertuje im ten plik o ile się uruchomi.
A co gdy chcemy zmienić komendę głosową? Znów odpalamy program mati1488-wavhex-converter.exe, kopiujemy wygenerowany kod w programie do naszego kodu źródłowego
I wiele wiele innych podobnych przypadków będzie wyglądało podobnie:
Internety -> konwerter by Seba69 -> wygenerowany kod -> kopiuj i wklej
Znany programista systemów embedded Mariusz Pudzianowski tak zareagował czytając kolejne tutoriale dla Arduino:
https://www.youtube.com/watch?v=GisG7HRk-3k
Da się prościej, automatycznie i bez instalacji czegokolwiek o ile jesteście elitą i korzystacie z systemu #linux a w windows trzeba doinstalować minGW
Otóż jest taki programik o nazwie xxd i mimo że wygląda jak komentarz wykopka pod śmiesznym memesem to ma on bardzo przydatną funkcję -i która wygeneruje dla Was mireczki tablicę w C gotową do wrzucenia w kod.
I tera tak:
Przypadek 1:
I pyk wypluje takie o coś:
unsigned char index_html[] = {
0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, 0x74,
0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65,
0x3e, 0x57, 0x79, 0x70, 0x6f, 0x6b, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c,
0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61,
0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, 0x79,
0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70,
0x3e, 0x55, 0x53, 0x55, 0xc5, 0x83, 0x20, 0x4b, 0x4f, 0x4e, 0x54, 0x4f,
0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x62,
0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e,
0x0a, 0x0a
};
unsigned int index_html_len = 134;
Możecie sobie ten output przekierować do pliku i jest fajnie da Was wtedy. A już najlepiej to dodać krok budowania w Makefile który wykona skrypt robiący tak:
I od tego momentu możecie sobie gdzieś w kodzie zaincludeować
Macie dostęp do tablicy unsigned char soundwav[] i możecie sobie z nią zrobić co tylko chcecie.
Trzeba zmienić dźwięk? Podmieniacie plik i kąpilujecie ponownie - tak trzeba żyć ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°)ノ⌐■-■ (⌐ ͡■ ͜ʖ ͡■)
#protip #ciekawostki #programowanie #jezykc #cplusplus #mikrokontrolery #arduino #esp8266 #esp32 #qbadev
@Analityk: na Windowsie tylko
@QBA__: z tego co pamiętam fat32 był tak prosty że mam ochotę zrzucić cała partycje do takiej tablicy (xd)
@janusz-lece: wiem, nie mam z czego być. Na elektrodzie by w assemblerze to napisali na 8051 ( ͡° ͜ʖ ͡°)
i tak spiFS był bardzo mocnym kandydatem (bo był jeszcze pomysł dać kartę SD)
@QBA__: #!$%@?ło ci się, tymi poleceniami usuniesz pragmę
3x na TAK, a tag leci od obserwowanych ( ͡° ͜ʖ ͡°)