id & gid applied/arranged for all.
This commit is contained in:
parent
37e5ad8562
commit
899948a71a
8 changed files with 314 additions and 233 deletions
|
|
@ -126,7 +126,7 @@ void hello() {
|
|||
MONITORING_SERIAL.println(" ==(esp_now_send/0)==> ");
|
||||
//
|
||||
if (hello_delay > 0) {
|
||||
if (hello_delay < 20) hello_delay = 20;
|
||||
if (hello_delay < 100) hello_delay = 100;
|
||||
hello_task.restartDelayed(hello_delay);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ lib_ignore = Audio, SD
|
|||
lib_deps =
|
||||
721 ; TaskScheduler
|
||||
SPI
|
||||
; 322@1.0.7 ; SdFat
|
||||
322@1.0.7 ; SdFat
|
||||
|
||||
[env:teensy35]
|
||||
platform = teensy@3.6.0
|
||||
|
|
|
|||
|
|
@ -16,7 +16,17 @@
|
|||
// always broadcasting. everyone is 'talkative'.
|
||||
//
|
||||
|
||||
//==========<configurations>===========
|
||||
// then, let it save a value in EEPROM (object with memory=mind?)
|
||||
|
||||
//============<identities>============
|
||||
//
|
||||
#define MY_GROUP_ID (3000)
|
||||
#define MY_ID (MY_GROUP_ID + 1)
|
||||
#define MY_SIGN ("CRICKET")
|
||||
//
|
||||
//============</identities>============
|
||||
|
||||
//==========<list-of-configurations>===========
|
||||
//
|
||||
// 'HAVE_CLIENT'
|
||||
// --> i have a client. enable the client task.
|
||||
|
|
@ -28,24 +38,12 @@
|
|||
// 'DISABLE_AP'
|
||||
// --> (questioning)...
|
||||
//
|
||||
//==========</configurations>==========
|
||||
|
||||
//==========<preset>===========
|
||||
// 'HAVE_CLIENT_I2C'
|
||||
// --> i have a client w/ I2C i/f. enable the I2C client task.
|
||||
//
|
||||
// (1) standalone
|
||||
#if 1
|
||||
// (2) osc client (the ROOT)
|
||||
#elif 0
|
||||
#define SERIAL_SWAP
|
||||
#define HAVE_CLIENT
|
||||
//==========</list-of-configurations>==========
|
||||
//
|
||||
#endif
|
||||
//
|
||||
//==========</preset>==========
|
||||
|
||||
//============<identity key>============
|
||||
#define ID_KEY 126
|
||||
//============</identity key>===========
|
||||
// (EMPTY)
|
||||
|
||||
//============<parameters>============
|
||||
//
|
||||
|
|
@ -117,10 +115,18 @@ extern Task hello_task;
|
|||
static int hello_delay = 0;
|
||||
void hello() {
|
||||
//
|
||||
Hello hello = {
|
||||
ID_KEY,
|
||||
speed
|
||||
};
|
||||
byte mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
uint32_t mac32 = (((((mac[2] << 8) + mac[3]) << 8) + mac[4]) << 8) + mac[5];
|
||||
//
|
||||
Hello hello(String(MY_SIGN), MY_ID, mac32); // the most basic 'hello'
|
||||
// and you can append some floats
|
||||
static int count = 0;
|
||||
count++;
|
||||
hello.h1 = (count % 1000);
|
||||
hello.h2 = speed;
|
||||
// hello.h3 = 0;
|
||||
// hello.h4 = 0;
|
||||
//
|
||||
uint8_t frm_size = sizeof(Hello) + 2;
|
||||
uint8_t frm[frm_size];
|
||||
|
|
@ -128,17 +134,17 @@ void hello() {
|
|||
memcpy(frm + 1, (uint8_t *) &hello, sizeof(Hello));
|
||||
frm[frm_size - 1] = '}';
|
||||
//
|
||||
esp_now_send(NULL, frm, frm_size); // just broadcast.
|
||||
esp_now_send(NULL, frm, frm_size); // to all peers in the list.
|
||||
//
|
||||
MONITORING_SERIAL.write(frm, frm_size);
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/BROADCAST)==> ");
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/0)==> ");
|
||||
//
|
||||
if (hello_delay > 0) {
|
||||
if (hello_delay < 100) hello_delay = 100;
|
||||
hello_task.restartDelayed(hello_delay);
|
||||
}
|
||||
}
|
||||
Task hello_task(0, TASK_ONCE, &hello);
|
||||
Task hello_task(0, TASK_ONCE, &hello, &runner, false);
|
||||
|
||||
//task #0 : blink led
|
||||
extern Task blink_task;
|
||||
|
|
@ -171,15 +177,17 @@ Task blink_task(0, TASK_FOREVER, &blink, &runner, true); // -> ENABLED, at start
|
|||
// on 'Note'
|
||||
void onNoteHandler(Note & n) {
|
||||
//is it for me?
|
||||
if (n.pitch == ID_KEY) {
|
||||
if (n.id == MY_GROUP_ID || n.id == MY_ID) {
|
||||
//
|
||||
speed = n.velocity;
|
||||
// if (speed < 0) speed = 0;
|
||||
//
|
||||
if (n.onoff == 1) {
|
||||
set_speed_task.restartDelayed(10);
|
||||
} else if (n.onoff == 0) {
|
||||
rest_task.restartDelayed(10);
|
||||
if (n.pitch == 1) {
|
||||
speed = n.velocity;
|
||||
// if (speed < 0) speed = 0;
|
||||
//
|
||||
if (n.onoff == 1) {
|
||||
set_speed_task.restartDelayed(10);
|
||||
} else if (n.onoff == 0) {
|
||||
rest_task.restartDelayed(10);
|
||||
}
|
||||
}
|
||||
//
|
||||
}
|
||||
|
|
@ -188,16 +196,37 @@ void onNoteHandler(Note & n) {
|
|||
// on 'receive'
|
||||
void onDataReceive(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
|
||||
|
||||
//
|
||||
//MONITORING_SERIAL.write(incomingData, len);
|
||||
|
||||
//
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.write(incomingData, len); // we share it w/ the client.
|
||||
Serial.write(incomingData, len); // we pass it over to the client.
|
||||
#endif
|
||||
|
||||
// on 'Note'
|
||||
if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) {
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '{' && incomingData[len - 1] == '}' && len == (sizeof(Hello) + 2)) {
|
||||
Hello hello("");
|
||||
memcpy((uint8_t *) &hello, incomingData + 1, sizeof(Hello));
|
||||
//
|
||||
MONITORING_SERIAL.println(hello.to_string());
|
||||
//
|
||||
}
|
||||
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) {
|
||||
Note note;
|
||||
memcpy((uint8_t *) ¬e, incomingData + 1, sizeof(Note));
|
||||
onNoteHandler(note);
|
||||
|
||||
//is it for me?
|
||||
if (note.id == MY_GROUP_ID || note.id == MY_ID) {
|
||||
hello_delay = note.ps;
|
||||
if (hello_delay > 0 && hello_task.isEnabled() == false) {
|
||||
hello_task.restart();
|
||||
}
|
||||
}
|
||||
|
||||
MONITORING_SERIAL.println(note.to_string());
|
||||
}
|
||||
}
|
||||
|
|
@ -222,26 +251,21 @@ void setup() {
|
|||
Serial.println();
|
||||
Serial.println("\"hi, i m your postman.\"");
|
||||
Serial.println("-");
|
||||
Serial.println("- * info >>>");
|
||||
#if defined(ID_KEY)
|
||||
Serial.println("- identity (key): " + String(ID_KEY));
|
||||
#endif
|
||||
Serial.println("- mac address: " + WiFi.macAddress());
|
||||
Serial.println("- wifi channel: " + String(WIFI_CHANNEL));
|
||||
Serial.println("-");
|
||||
Serial.println("- * conf >>>");
|
||||
Serial.println("- my id: " + String(MY_ID) + ", gid: " + String(MY_GROUP_ID) + ", call me ==> \"" + String(MY_SIGN) + "\"");
|
||||
Serial.println("- mac address: " + WiFi.macAddress() + ", channel: " + String(WIFI_CHANNEL));
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
#endif
|
||||
#if defined(SERIAL_SWAP)
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
#endif
|
||||
#if defined(DISABLE_AP)
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
#endif
|
||||
#if defined(HAVE_CLIENT_I2C)
|
||||
Serial.println("- ======== 'HAVE_CLIENT_I2C' ========");
|
||||
#endif
|
||||
Serial.println("-");
|
||||
Serial.println("\".-.-.-. :)\"");
|
||||
Serial.println();
|
||||
|
||||
//wifi
|
||||
WiFiMode_t node_type = WIFI_AP_STA;
|
||||
|
|
@ -260,8 +284,7 @@ void setup() {
|
|||
esp_now_register_send_cb(onDataSent);
|
||||
esp_now_register_recv_cb(onDataReceive);
|
||||
//
|
||||
Serial.println("-");
|
||||
Serial.println("- we will broadcast everything. ==> add only the 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
Serial.println("- ! (esp_now_add_peer) ==> add a 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
uint8_t broadcastmac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||
esp_now_add_peer(broadcastmac, ESP_NOW_ROLE_COMBO, 1, NULL, 0);
|
||||
|
||||
|
|
@ -290,8 +313,6 @@ void setup() {
|
|||
//tasks
|
||||
runner.addTask(set_speed_task);
|
||||
runner.addTask(rest_task);
|
||||
runner.addTask(hello_task);
|
||||
|
||||
rest_task.restartDelayed(500);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,17 @@
|
|||
// always broadcasting. everyone is 'talkative'.
|
||||
//
|
||||
|
||||
//==========<configurations>===========
|
||||
// then, let it save a value in EEPROM (object with memory=mind?)
|
||||
|
||||
//============<identities>============
|
||||
//
|
||||
#define MY_GROUP_ID (4000)
|
||||
#define MY_ID (MY_GROUP_ID + 1)
|
||||
#define MY_SIGN ("GONGGONG")
|
||||
//
|
||||
//============</identities>============
|
||||
|
||||
//==========<list-of-configurations>===========
|
||||
//
|
||||
// 'HAVE_CLIENT'
|
||||
// --> i have a client. enable the client task.
|
||||
|
|
@ -28,25 +38,12 @@
|
|||
// 'DISABLE_AP'
|
||||
// --> (questioning)...
|
||||
//
|
||||
//==========</configurations>==========
|
||||
|
||||
//==========<preset>===========
|
||||
// 'HAVE_CLIENT_I2C'
|
||||
// --> i have a client w/ I2C i/f. enable the I2C client task.
|
||||
//
|
||||
// (1) standalone
|
||||
#if 1
|
||||
// (2) osc client (the ROOT)
|
||||
#elif 0
|
||||
#define SERIAL_SWAP
|
||||
#define HAVE_CLIENT
|
||||
// (3) sampler client
|
||||
#elif 0
|
||||
#define SERIAL_SWAP
|
||||
#define HAVE_CLIENT
|
||||
#define DISABLE_AP
|
||||
//==========</list-of-configurations>==========
|
||||
//
|
||||
#endif
|
||||
//
|
||||
//==========</preset>==========
|
||||
// (EMPTY)
|
||||
|
||||
//============<gonggong>============
|
||||
#define GONG_SIDE_KEY 1000 // X1 = start angle, X2 = hit angle
|
||||
|
|
@ -54,10 +51,6 @@
|
|||
#define GONG_HEAD_KEY 1002 // random (HEAD)
|
||||
//============</gonggong>===========
|
||||
|
||||
//============<identity key>============
|
||||
#define ID_KEY GONG_SIDE_KEY
|
||||
//============</identity key>===========
|
||||
|
||||
//============<parameters>============
|
||||
//
|
||||
#define LED_PERIOD (11111)
|
||||
|
|
@ -217,9 +210,18 @@ extern Task hello_task;
|
|||
static int hello_delay = 0;
|
||||
void hello() {
|
||||
//
|
||||
Hello hello = {
|
||||
ID_KEY
|
||||
};
|
||||
byte mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
uint32_t mac32 = (((((mac[2] << 8) + mac[3]) << 8) + mac[4]) << 8) + mac[5];
|
||||
//
|
||||
Hello hello(String(MY_SIGN), MY_ID, mac32); // the most basic 'hello'
|
||||
// and you can append some floats
|
||||
static int count = 0;
|
||||
count++;
|
||||
hello.h1 = (count % 1000);
|
||||
// hello.h2 = 0;
|
||||
// hello.h3 = 0;
|
||||
// hello.h4 = 0;
|
||||
//
|
||||
uint8_t frm_size = sizeof(Hello) + 2;
|
||||
uint8_t frm[frm_size];
|
||||
|
|
@ -227,17 +229,17 @@ void hello() {
|
|||
memcpy(frm + 1, (uint8_t *) &hello, sizeof(Hello));
|
||||
frm[frm_size - 1] = '}';
|
||||
//
|
||||
esp_now_send(NULL, frm, frm_size); // just broadcast.
|
||||
esp_now_send(NULL, frm, frm_size); // to all peers in the list.
|
||||
//
|
||||
MONITORING_SERIAL.write(frm, frm_size);
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/BROADCAST)==> ");
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/0)==> ");
|
||||
//
|
||||
if (hello_delay > 0) {
|
||||
if (hello_delay < 100) hello_delay = 100;
|
||||
hello_task.restartDelayed(hello_delay);
|
||||
}
|
||||
}
|
||||
Task hello_task(0, TASK_ONCE, &hello);
|
||||
Task hello_task(0, TASK_ONCE, &hello, &runner, false);
|
||||
|
||||
//task #0 : blink led
|
||||
extern Task blink_task;
|
||||
|
|
@ -270,51 +272,71 @@ Task blink_task(0, TASK_FOREVER, &blink, &runner, true); // -> ENABLED, at start
|
|||
// on 'Note'
|
||||
void onNoteHandler(Note & n) {
|
||||
//
|
||||
if (n.pitch == GONG_SIDE_KEY && n.onoff == 1) {
|
||||
side_start_angle = n.x1;
|
||||
side_hit_angle = n.x2;
|
||||
if (n.id == MY_GROUP_ID || n.id == MY_ID) {
|
||||
if (n.pitch == GONG_SIDE_KEY && n.onoff == 1) {
|
||||
side_start_angle = n.x1;
|
||||
side_hit_angle = n.x2;
|
||||
//
|
||||
if (side_start_angle < 0) side_start_angle = 0;
|
||||
if (side_start_angle > 180) side_start_angle = 180;
|
||||
//
|
||||
if (side_hit_angle < 0) side_hit_angle = 0;
|
||||
if (side_hit_angle > 180) side_hit_angle = 180;
|
||||
//
|
||||
ring_side_task.restartDelayed(10);
|
||||
}
|
||||
//
|
||||
if (side_start_angle < 0) side_start_angle = 0;
|
||||
if (side_start_angle > 180) side_start_angle = 180;
|
||||
if (n.pitch == GONG_HEAD_KEY && n.onoff == 1) {
|
||||
ring_head_task.restartDelayed(10);
|
||||
}
|
||||
//
|
||||
if (side_hit_angle < 0) side_hit_angle = 0;
|
||||
if (side_hit_angle > 180) side_hit_angle = 180;
|
||||
//
|
||||
ring_side_task.restartDelayed(10);
|
||||
if (n.pitch == GONG_SIDE_MOVE_KEY && n.onoff == 1) {
|
||||
side_set_angle = n.x3;
|
||||
//
|
||||
if (side_set_angle < 0) side_set_angle = 0;
|
||||
if (side_set_angle > 180) side_set_angle = 180;
|
||||
//
|
||||
ring_side_move_task.restartDelayed(10);
|
||||
//
|
||||
}
|
||||
}
|
||||
//
|
||||
if (n.pitch == GONG_HEAD_KEY && n.onoff == 1) {
|
||||
ring_head_task.restartDelayed(10);
|
||||
}
|
||||
//
|
||||
if (n.pitch == GONG_SIDE_MOVE_KEY && n.onoff == 1) {
|
||||
side_set_angle = n.x3;
|
||||
//
|
||||
if (side_set_angle < 0) side_set_angle = 0;
|
||||
if (side_set_angle > 180) side_set_angle = 180;
|
||||
//
|
||||
ring_side_move_task.restartDelayed(10);
|
||||
}
|
||||
//
|
||||
}
|
||||
|
||||
// on 'receive'
|
||||
void onDataReceive(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
|
||||
|
||||
//
|
||||
//MONITORING_SERIAL.write(incomingData, len);
|
||||
|
||||
//
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.write(incomingData, len); // we share it w/ the client.
|
||||
Serial.write(incomingData, len); // we pass it over to the client.
|
||||
#endif
|
||||
|
||||
// on 'Note'
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '{' && incomingData[len - 1] == '}' && len == (sizeof(Hello) + 2)) {
|
||||
Hello hello("");
|
||||
memcpy((uint8_t *) &hello, incomingData + 1, sizeof(Hello));
|
||||
//
|
||||
MONITORING_SERIAL.println(hello.to_string());
|
||||
//
|
||||
}
|
||||
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) {
|
||||
Note note;
|
||||
memcpy((uint8_t *) ¬e, incomingData + 1, sizeof(Note));
|
||||
//
|
||||
MONITORING_SERIAL.println(note.to_string());
|
||||
//
|
||||
onNoteHandler(note);
|
||||
//
|
||||
|
||||
//is it for me?
|
||||
if (note.id == MY_GROUP_ID || note.id == MY_ID) {
|
||||
hello_delay = note.ps;
|
||||
if (hello_delay > 0 && hello_task.isEnabled() == false) {
|
||||
hello_task.restart();
|
||||
}
|
||||
}
|
||||
|
||||
MONITORING_SERIAL.println(note.to_string());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -338,26 +360,21 @@ void setup() {
|
|||
Serial.println();
|
||||
Serial.println("\"hi, i m your postman.\"");
|
||||
Serial.println("-");
|
||||
Serial.println("- * info >>>");
|
||||
#if defined(ID_KEY)
|
||||
Serial.println("- identity (key): " + String(ID_KEY));
|
||||
#endif
|
||||
Serial.println("- mac address: " + WiFi.macAddress());
|
||||
Serial.println("- wifi channel: " + String(WIFI_CHANNEL));
|
||||
Serial.println("-");
|
||||
Serial.println("- * conf >>>");
|
||||
Serial.println("- my id: " + String(MY_ID) + ", gid: " + String(MY_GROUP_ID) + ", call me ==> \"" + String(MY_SIGN) + "\"");
|
||||
Serial.println("- mac address: " + WiFi.macAddress() + ", channel: " + String(WIFI_CHANNEL));
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
#endif
|
||||
#if defined(SERIAL_SWAP)
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
#endif
|
||||
#if defined(DISABLE_AP)
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
#endif
|
||||
#if defined(HAVE_CLIENT_I2C)
|
||||
Serial.println("- ======== 'HAVE_CLIENT_I2C' ========");
|
||||
#endif
|
||||
Serial.println("-");
|
||||
Serial.println("\".-.-.-. :)\"");
|
||||
Serial.println();
|
||||
|
||||
//wifi
|
||||
WiFiMode_t node_type = WIFI_AP_STA;
|
||||
|
|
@ -376,8 +393,7 @@ void setup() {
|
|||
esp_now_register_send_cb(onDataSent);
|
||||
esp_now_register_recv_cb(onDataReceive);
|
||||
//
|
||||
Serial.println("-");
|
||||
Serial.println("- we will broadcast everything. ==> add only the 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
Serial.println("- ! (esp_now_add_peer) ==> add a 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
uint8_t broadcastmac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||
esp_now_add_peer(broadcastmac, ESP_NOW_ROLE_COMBO, 1, NULL, 0);
|
||||
|
||||
|
|
@ -404,7 +420,6 @@ void setup() {
|
|||
randomSeed(analogRead(0));
|
||||
|
||||
//tasks
|
||||
runner.addTask(hello_task);
|
||||
runner.addTask(ring_side_task);
|
||||
runner.addTask(ring_side_move_task);
|
||||
runner.addTask(side_release_task);
|
||||
|
|
|
|||
|
|
@ -104,7 +104,9 @@ void hello() {
|
|||
//
|
||||
Hello hello(String(MY_SIGN), MY_ID, mac32); // the most basic 'hello'
|
||||
// and you can append some floats
|
||||
// hello.h1 = 0;
|
||||
static int count = 0;
|
||||
count++;
|
||||
hello.h1 = (count % 1000);
|
||||
// hello.h2 = 0;
|
||||
// hello.h3 = 0;
|
||||
// hello.h4 = 0;
|
||||
|
|
@ -220,11 +222,28 @@ void onDataReceive(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
|
|||
Serial.write(incomingData, len); // we pass it over to the client.
|
||||
#endif
|
||||
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '{' && incomingData[len - 1] == '}' && len == (sizeof(Hello) + 2)) {
|
||||
Hello hello("");
|
||||
memcpy((uint8_t *) &hello, incomingData + 1, sizeof(Hello));
|
||||
//
|
||||
MONITORING_SERIAL.println(hello.to_string());
|
||||
//
|
||||
}
|
||||
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) {
|
||||
Note note;
|
||||
memcpy((uint8_t *) ¬e, incomingData + 1, sizeof(Note));
|
||||
//
|
||||
|
||||
//is it for me?
|
||||
if (note.id == MY_GROUP_ID || note.id == MY_ID) {
|
||||
hello_delay = note.ps;
|
||||
if (hello_delay > 0 && hello_task.isEnabled() == false) {
|
||||
hello_task.restart();
|
||||
}
|
||||
}
|
||||
|
||||
MONITORING_SERIAL.println(note.to_string());
|
||||
|
||||
//-*-*-*-*-*-*-*-*-*-
|
||||
|
|
|
|||
|
|
@ -884,7 +884,7 @@
|
|||
#X connect 369 0 82 0;
|
||||
#X connect 370 0 165 0;
|
||||
#X restore 57 368 pd crickets nanokontrol2;
|
||||
#N canvas 133 398 1214 393 roundly 1;
|
||||
#N canvas 133 398 1214 393 roundly 0;
|
||||
#X msg 354 139 \$1 5000;
|
||||
#X obj 354 162 unpack f f;
|
||||
#X obj 354 185 s X1;
|
||||
|
|
@ -1071,7 +1071,7 @@
|
|||
#X obj 79 64 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
|
||||
;
|
||||
#X obj 408 177 s OSC;
|
||||
#N canvas 713 396 706 244 SAMPLER_NOTE-to-OSC 1;
|
||||
#N canvas 627 525 706 244 SAMPLER_NOTE-to-OSC 0;
|
||||
#X obj 35 142 spigot;
|
||||
#X obj 84 127 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,17 @@
|
|||
// always broadcasting. everyone is 'talkative'.
|
||||
//
|
||||
|
||||
//==========<configurations>===========
|
||||
// then, let it save a value in EEPROM (object with memory=mind?)
|
||||
|
||||
//============<identities>============
|
||||
//
|
||||
#define MY_GROUP_ID (20000)
|
||||
#define MY_ID (MY_GROUP_ID + 1)
|
||||
#define MY_SIGN ("ROUNDLY")
|
||||
//
|
||||
//============</identities>============
|
||||
|
||||
//==========<list-of-configurations>===========
|
||||
//
|
||||
// 'HAVE_CLIENT'
|
||||
// --> i have a client. enable the client task.
|
||||
|
|
@ -28,24 +38,12 @@
|
|||
// 'DISABLE_AP'
|
||||
// --> (questioning)...
|
||||
//
|
||||
//==========</configurations>==========
|
||||
|
||||
//==========<preset>===========
|
||||
// 'HAVE_CLIENT_I2C'
|
||||
// --> i have a client w/ I2C i/f. enable the I2C client task.
|
||||
//
|
||||
// (1) standalone
|
||||
#if 1
|
||||
// (2) osc client (the ROOT)
|
||||
#elif 0
|
||||
#define SERIAL_SWAP
|
||||
#define HAVE_CLIENT
|
||||
//==========</list-of-configurations>==========
|
||||
//
|
||||
#endif
|
||||
//
|
||||
//==========</preset>==========
|
||||
|
||||
//============<identity key>============
|
||||
#define ID_KEY 2000
|
||||
//============</identity key>===========
|
||||
// (EMPTY)
|
||||
|
||||
//============<parameters>============
|
||||
//
|
||||
|
|
@ -166,11 +164,18 @@ extern Task hello_task;
|
|||
static int hello_delay = 0;
|
||||
void hello() {
|
||||
//
|
||||
Hello hello = {
|
||||
ID_KEY,
|
||||
stepper.currentPosition(),
|
||||
stepper.distanceToGo()
|
||||
};
|
||||
byte mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
uint32_t mac32 = (((((mac[2] << 8) + mac[3]) << 8) + mac[4]) << 8) + mac[5];
|
||||
//
|
||||
Hello hello(String(MY_SIGN), MY_ID, mac32); // the most basic 'hello'
|
||||
// and you can append some floats
|
||||
static int count = 0;
|
||||
count++;
|
||||
hello.h1 = (count % 1000);
|
||||
hello.h2 = stepper.currentPosition();
|
||||
hello.h3 = stepper.distanceToGo();
|
||||
// hello.h4 = 0;
|
||||
//
|
||||
uint8_t frm_size = sizeof(Hello) + 2;
|
||||
uint8_t frm[frm_size];
|
||||
|
|
@ -178,17 +183,17 @@ void hello() {
|
|||
memcpy(frm + 1, (uint8_t *) &hello, sizeof(Hello));
|
||||
frm[frm_size - 1] = '}';
|
||||
//
|
||||
esp_now_send(NULL, frm, frm_size); // just broadcast.
|
||||
esp_now_send(NULL, frm, frm_size); // to all peers in the list.
|
||||
//
|
||||
MONITORING_SERIAL.write(frm, frm_size);
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/BROADCAST)==> ");
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/0)==> ");
|
||||
//
|
||||
if (hello_delay > 0) {
|
||||
if (hello_delay < 100) hello_delay = 100;
|
||||
hello_task.restartDelayed(hello_delay);
|
||||
}
|
||||
}
|
||||
Task hello_task(0, TASK_ONCE, &hello);
|
||||
Task hello_task(0, TASK_ONCE, &hello, &runner, false);
|
||||
|
||||
//task #0 : blink led
|
||||
extern Task blink_task;
|
||||
|
|
@ -221,17 +226,12 @@ Task blink_task(0, TASK_FOREVER, &blink, &runner, true); // -> ENABLED, at start
|
|||
// on 'Note'
|
||||
void onNoteHandler(Note & n) {
|
||||
//is it for me?
|
||||
if (n.pitch == ID_KEY) {
|
||||
if (n.id == MY_GROUP_ID || n.id == MY_ID) {
|
||||
//
|
||||
step_target = n.x1;
|
||||
step_duration = n.x2;
|
||||
if (step_duration < 1000) step_duration = 1000;
|
||||
//
|
||||
hello_delay = n.ps;
|
||||
if (hello_delay > 0 && hello_task.isEnabled() == false) {
|
||||
hello_task.restart();
|
||||
}
|
||||
//
|
||||
if (n.onoff == 1) {
|
||||
stepping_task.restartDelayed(10);
|
||||
} else if (n.onoff == 0) {
|
||||
|
|
@ -244,16 +244,37 @@ void onNoteHandler(Note & n) {
|
|||
// on 'receive'
|
||||
void onDataReceive(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
|
||||
|
||||
//
|
||||
//MONITORING_SERIAL.write(incomingData, len);
|
||||
|
||||
//
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.write(incomingData, len); // we share it w/ the client.
|
||||
Serial.write(incomingData, len); // we pass it over to the client.
|
||||
#endif
|
||||
|
||||
// on 'Note'
|
||||
if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) {
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '{' && incomingData[len - 1] == '}' && len == (sizeof(Hello) + 2)) {
|
||||
Hello hello("");
|
||||
memcpy((uint8_t *) &hello, incomingData + 1, sizeof(Hello));
|
||||
//
|
||||
MONITORING_SERIAL.println(hello.to_string());
|
||||
//
|
||||
}
|
||||
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) {
|
||||
Note note;
|
||||
memcpy((uint8_t *) ¬e, incomingData + 1, sizeof(Note));
|
||||
onNoteHandler(note);
|
||||
|
||||
//is it for me?
|
||||
if (note.id == MY_GROUP_ID || note.id == MY_ID) {
|
||||
hello_delay = note.ps;
|
||||
if (hello_delay > 0 && hello_task.isEnabled() == false) {
|
||||
hello_task.restart();
|
||||
}
|
||||
}
|
||||
|
||||
MONITORING_SERIAL.println(note.to_string());
|
||||
}
|
||||
}
|
||||
|
|
@ -278,26 +299,21 @@ void setup() {
|
|||
Serial.println();
|
||||
Serial.println("\"hi, i m your postman.\"");
|
||||
Serial.println("-");
|
||||
Serial.println("- * info >>>");
|
||||
#if defined(ID_KEY)
|
||||
Serial.println("- identity (key): " + String(ID_KEY));
|
||||
#endif
|
||||
Serial.println("- mac address: " + WiFi.macAddress());
|
||||
Serial.println("- wifi channel: " + String(WIFI_CHANNEL));
|
||||
Serial.println("-");
|
||||
Serial.println("- * conf >>>");
|
||||
Serial.println("- my id: " + String(MY_ID) + ", gid: " + String(MY_GROUP_ID) + ", call me ==> \"" + String(MY_SIGN) + "\"");
|
||||
Serial.println("- mac address: " + WiFi.macAddress() + ", channel: " + String(WIFI_CHANNEL));
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
#endif
|
||||
#if defined(SERIAL_SWAP)
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
#endif
|
||||
#if defined(DISABLE_AP)
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
#endif
|
||||
#if defined(HAVE_CLIENT_I2C)
|
||||
Serial.println("- ======== 'HAVE_CLIENT_I2C' ========");
|
||||
#endif
|
||||
Serial.println("-");
|
||||
Serial.println("\".-.-.-. :)\"");
|
||||
Serial.println();
|
||||
|
||||
//wifi
|
||||
WiFiMode_t node_type = WIFI_AP_STA;
|
||||
|
|
@ -316,8 +332,7 @@ void setup() {
|
|||
esp_now_register_send_cb(onDataSent);
|
||||
esp_now_register_recv_cb(onDataReceive);
|
||||
//
|
||||
Serial.println("-");
|
||||
Serial.println("- we will broadcast everything. ==> add only the 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
Serial.println("- ! (esp_now_add_peer) ==> add a 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
uint8_t broadcastmac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||
esp_now_add_peer(broadcastmac, ESP_NOW_ROLE_COMBO, 1, NULL, 0);
|
||||
|
||||
|
|
@ -353,10 +368,8 @@ void setup() {
|
|||
#endif
|
||||
|
||||
//tasks
|
||||
runner.addTask(hello_task);
|
||||
runner.addTask(stepping_task);
|
||||
runner.addTask(rest_task);
|
||||
|
||||
rest_task.restartDelayed(500);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,17 @@
|
|||
// always broadcasting. everyone is 'talkative'.
|
||||
//
|
||||
|
||||
//==========<configurations>===========
|
||||
// then, let it save a value in EEPROM (object with memory=mind?)
|
||||
|
||||
//============<identities>============
|
||||
//
|
||||
#define MY_GROUP_ID (1000)
|
||||
#define MY_ID (MY_GROUP_ID + 1)
|
||||
#define MY_SIGN ("TAAK")
|
||||
//
|
||||
//============</identities>============
|
||||
|
||||
//==========<list-of-configurations>===========
|
||||
//
|
||||
// 'HAVE_CLIENT'
|
||||
// --> i have a client. enable the client task.
|
||||
|
|
@ -28,29 +38,12 @@
|
|||
// 'DISABLE_AP'
|
||||
// --> (questioning)...
|
||||
//
|
||||
//==========</configurations>==========
|
||||
|
||||
//==========<preset>===========
|
||||
// 'HAVE_CLIENT_I2C'
|
||||
// --> i have a client w/ I2C i/f. enable the I2C client task.
|
||||
//
|
||||
// (1) standalone
|
||||
#if 1
|
||||
// (2) osc client (the ROOT)
|
||||
#elif 0
|
||||
#define SERIAL_SWAP
|
||||
#define HAVE_CLIENT
|
||||
// (3) sampler client
|
||||
#elif 0
|
||||
#define SERIAL_SWAP
|
||||
#define HAVE_CLIENT
|
||||
#define DISABLE_AP
|
||||
//==========</list-of-configurations>==========
|
||||
//
|
||||
#endif
|
||||
//
|
||||
//==========</preset>==========
|
||||
|
||||
//============<identity key>============
|
||||
#define ID_KEY 151
|
||||
//============</identity key>===========
|
||||
// (EMPTY)
|
||||
|
||||
//============<parameters>============
|
||||
//
|
||||
|
|
@ -116,9 +109,18 @@ extern Task hello_task;
|
|||
static int hello_delay = 0;
|
||||
void hello() {
|
||||
//
|
||||
Hello hello = {
|
||||
ID_KEY
|
||||
};
|
||||
byte mac[6];
|
||||
WiFi.macAddress(mac);
|
||||
uint32_t mac32 = (((((mac[2] << 8) + mac[3]) << 8) + mac[4]) << 8) + mac[5];
|
||||
//
|
||||
Hello hello(String(MY_SIGN), MY_ID, mac32); // the most basic 'hello'
|
||||
// and you can append some floats
|
||||
static int count = 0;
|
||||
count++;
|
||||
hello.h1 = (count % 1000);
|
||||
// hello.h2 = 0;
|
||||
// hello.h3 = 0;
|
||||
// hello.h4 = 0;
|
||||
//
|
||||
uint8_t frm_size = sizeof(Hello) + 2;
|
||||
uint8_t frm[frm_size];
|
||||
|
|
@ -126,17 +128,17 @@ void hello() {
|
|||
memcpy(frm + 1, (uint8_t *) &hello, sizeof(Hello));
|
||||
frm[frm_size - 1] = '}';
|
||||
//
|
||||
esp_now_send(NULL, frm, frm_size); // just broadcast.
|
||||
esp_now_send(NULL, frm, frm_size); // to all peers in the list.
|
||||
//
|
||||
MONITORING_SERIAL.write(frm, frm_size);
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/BROADCAST)==> ");
|
||||
MONITORING_SERIAL.println(" ==(esp_now_send/0)==> ");
|
||||
//
|
||||
if (hello_delay > 0) {
|
||||
if (hello_delay < 100) hello_delay = 100;
|
||||
hello_task.restartDelayed(hello_delay);
|
||||
}
|
||||
}
|
||||
Task hello_task(0, TASK_ONCE, &hello);
|
||||
Task hello_task(0, TASK_ONCE, &hello, &runner, false);
|
||||
|
||||
//task #0 : blink led
|
||||
extern Task blink_task;
|
||||
|
|
@ -169,7 +171,7 @@ Task blink_task(0, TASK_FOREVER, &blink, &runner, true); // -> ENABLED, at start
|
|||
// on 'Note'
|
||||
void onNoteHandler(Note & n) {
|
||||
//is it for me?
|
||||
if (n.pitch == ID_KEY) {
|
||||
if (n.id == MY_GROUP_ID || n.id == MY_ID) {
|
||||
//
|
||||
if (n.velocity < 0) n.velocity = 0;
|
||||
//taak_on && taak_off
|
||||
|
|
@ -191,20 +193,38 @@ void onNoteHandler(Note & n) {
|
|||
// on 'receive'
|
||||
void onDataReceive(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
|
||||
|
||||
//
|
||||
//MONITORING_SERIAL.write(incomingData, len);
|
||||
|
||||
//
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.write(incomingData, len); // we share it w/ the client.
|
||||
Serial.write(incomingData, len); // we pass it over to the client.
|
||||
#endif
|
||||
|
||||
// on 'Note'
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '{' && incomingData[len - 1] == '}' && len == (sizeof(Hello) + 2)) {
|
||||
Hello hello("");
|
||||
memcpy((uint8_t *) &hello, incomingData + 1, sizeof(Hello));
|
||||
//
|
||||
MONITORING_SERIAL.println(hello.to_string());
|
||||
//
|
||||
}
|
||||
|
||||
// open => identify => use.
|
||||
if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) {
|
||||
Note note;
|
||||
memcpy((uint8_t *) ¬e, incomingData + 1, sizeof(Note));
|
||||
//
|
||||
MONITORING_SERIAL.println(note.to_string());
|
||||
//
|
||||
onNoteHandler(note);
|
||||
//
|
||||
|
||||
//is it for me?
|
||||
if (note.id == MY_GROUP_ID || note.id == MY_ID) {
|
||||
hello_delay = note.ps;
|
||||
if (hello_delay > 0 && hello_task.isEnabled() == false) {
|
||||
hello_task.restart();
|
||||
}
|
||||
}
|
||||
|
||||
MONITORING_SERIAL.println(note.to_string());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -228,26 +248,21 @@ void setup() {
|
|||
Serial.println();
|
||||
Serial.println("\"hi, i m your postman.\"");
|
||||
Serial.println("-");
|
||||
Serial.println("- * info >>>");
|
||||
#if defined(ID_KEY)
|
||||
Serial.println("- identity (key): " + String(ID_KEY));
|
||||
#endif
|
||||
Serial.println("- mac address: " + WiFi.macAddress());
|
||||
Serial.println("- wifi channel: " + String(WIFI_CHANNEL));
|
||||
Serial.println("-");
|
||||
Serial.println("- * conf >>>");
|
||||
Serial.println("- my id: " + String(MY_ID) + ", gid: " + String(MY_GROUP_ID) + ", call me ==> \"" + String(MY_SIGN) + "\"");
|
||||
Serial.println("- mac address: " + WiFi.macAddress() + ", channel: " + String(WIFI_CHANNEL));
|
||||
#if defined(HAVE_CLIENT)
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
Serial.println("- ======== 'HAVE_CLIENT' ========");
|
||||
#endif
|
||||
#if defined(SERIAL_SWAP)
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
Serial.println("- ======== 'SERIAL_SWAP' ========");
|
||||
#endif
|
||||
#if defined(DISABLE_AP)
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
Serial.println("- ======== 'DISABLE_AP' ========");
|
||||
#endif
|
||||
#if defined(HAVE_CLIENT_I2C)
|
||||
Serial.println("- ======== 'HAVE_CLIENT_I2C' ========");
|
||||
#endif
|
||||
Serial.println("-");
|
||||
Serial.println("\".-.-.-. :)\"");
|
||||
Serial.println();
|
||||
|
||||
//wifi
|
||||
WiFiMode_t node_type = WIFI_AP_STA;
|
||||
|
|
@ -266,8 +281,7 @@ void setup() {
|
|||
esp_now_register_send_cb(onDataSent);
|
||||
esp_now_register_recv_cb(onDataReceive);
|
||||
//
|
||||
Serial.println("-");
|
||||
Serial.println("- we will broadcast everything. ==> add only the 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
Serial.println("- ! (esp_now_add_peer) ==> add a 'broadcast peer' (FF:FF:FF:FF:FF:FF).");
|
||||
uint8_t broadcastmac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||
esp_now_add_peer(broadcastmac, ESP_NOW_ROLE_COMBO, 1, NULL, 0);
|
||||
|
||||
|
|
@ -294,7 +308,6 @@ void setup() {
|
|||
pinMode(D6, OUTPUT);
|
||||
|
||||
//tasks
|
||||
runner.addTask(hello_task);
|
||||
runner.addTask(taak_on_task);
|
||||
runner.addTask(taak_off_task);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue