diff --git a/SampleSrc/_Upload_FactoryTest.sh b/SampleSrc/_Upload_FactoryTest.sh index 303d387..39a8f0e 100755 --- a/SampleSrc/_Upload_FactoryTest.sh +++ b/SampleSrc/_Upload_FactoryTest.sh @@ -1,5 +1,18 @@ #!/bin/bash +echo "*** Running _Upload_FactoryTest.sh ..." + +## mosi hikisuu(=port) ga areba, sokodake ni upload +if [ $# -eq 1 ] ; then + port=$1 + echo ${port} + arduino-cli upload --fqbn esp32:esp32:m5stick-c -p "/dev/${port}" -i ../M5StickCPlus_FactoryTest2022.ino.bin + exit +fi + + + + serials=`arduino-cli board list | grep USB | awk '{print $1}'` # echo ${serials} diff --git a/SampleSrc/espnow03.ino b/SampleSrc/espnow03.ino index 09db83b..c1f0d24 100644 --- a/SampleSrc/espnow03.ino +++ b/SampleSrc/espnow03.ino @@ -76,18 +76,20 @@ M5.Beep.update(); if (M5.BtnA.wasReleased()) { - uint8_t data[100] = {100}; // Data to be sent uint8_tは0〜255の数値(1Byte) + uint8_t data[100] = {234}; // 送信データ uint8_tは0〜255の数値(1Byte) float pi = 3.14159265f; double dpi = 3.14159265358979323; const void* ppi = π const void* pdpi = &dpi; + // data[0] は1byte char 234 を、宣言時に設定した。 + // そのあと、floatとdoubleを混載する。data[1]~data[4]はfloat (4byte) + // data[5]~data[12]はdouble (8byte) memcpy(data+1, ppi, sizeof(pi)); memcpy(data+5, pdpi, sizeof(dpi)); + // さらに、文字列をdata[13]から格納する sprintf((char *)data+13,"ABCDEFG_abcdefg"); // Store string (Line86) - // for (int i = 1; i < 80; i += 10) - // { - // sprintf((char *)data + i, "ABCDEFGHIJ"); - // } + // さらに、送信側プログラムのコンパイル時刻をdata[28]から格納する + sprintf((char *)data+28, __TIME__ ); // __TIME__はC言語のプリプロセッサが時刻に置き換える esp_err_t result = esp_now_send(peerInfo.peer_addr, data, sizeof(data)); // Really send } delay(20); @@ -95,7 +97,7 @@ // データを受け取った時に実行されるコールバック関数 void onESPNOWReceive(const uint8_t *mac_addr, const uint8_t *data, int data_len) { - if (data[0] == 100) // 100に深い意味はない。uint8_tは0〜255の数値 + if (data[0] == 234) // 234に深い意味はない。uint8_tは0〜255の数値 { M5.Beep.tone(2000, 1000); M5.Lcd.fillScreen(YELLOW); @@ -106,7 +108,9 @@ double *dppi = (double*)&data[5]; M5.Lcd.printf("%.8f\n", *ppi); M5.Lcd.printf("%.16f\n", *dppi); - // M5.Lcd.printf("%s\n", ?????[??] ); // Print string stored at Line86 + M5.Lcd.printf("%s\n", &data[13] ); // Print string stored at Line86 + M5.Lcd.printf("%s\n", &data[28] ); // 送信側プログラムのコンパイル時刻 } } +