début du code de réception des données côté device
This commit is contained in:
parent
148d53fa86
commit
0b492e91af
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -1,5 +1,7 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"stdio_usb.h": "c"
|
||||
"stdio_usb.h": "c",
|
||||
"error.h": "c",
|
||||
"messagerie.h": "c"
|
||||
}
|
||||
}
|
||||
@ -11,7 +11,9 @@ set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR})
|
||||
pico_sdk_init()
|
||||
|
||||
add_executable(Modele_RPiPico
|
||||
communication.c
|
||||
main.c
|
||||
messagerie.c
|
||||
)
|
||||
|
||||
target_link_libraries(Modele_RPiPico
|
||||
|
||||
111
main.c
111
main.c
@ -5,13 +5,18 @@
|
||||
*/
|
||||
#include "pico/stdlib.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "communication.h"
|
||||
#include "messagerie.h"
|
||||
|
||||
void stdio_usb_out_chars(const char *buf, int length);
|
||||
|
||||
#define NB_MORCEAUX 100
|
||||
|
||||
absolute_time_t envoie_nb_char(int nb_char);
|
||||
char message[10000];
|
||||
char chaine_envoie[10000];
|
||||
|
||||
|
||||
|
||||
void envoie_donnees(char * donnees, u_int16_t length){
|
||||
for (int i=0; i<length; i++){
|
||||
@ -19,12 +24,47 @@ void envoie_donnees(char * donnees, u_int16_t length){
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void envoie_structure(const void * donnees, size_t size){
|
||||
const unsigned char *byte;
|
||||
for ( byte = donnees; size--; ++byte )
|
||||
{
|
||||
printf("%02X ", *byte);
|
||||
}
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
absolute_time_t measured_time_us;
|
||||
absolute_time_t temps_moyen, temps_max, temps_m[NB_MORCEAUX];
|
||||
absolute_time_t current_time_us, start_time_us;
|
||||
absolute_time_t temps_message_detection;
|
||||
struct message_t message;
|
||||
struct message_requete_t message_requete_detection;
|
||||
unsigned char message_binaire[100];
|
||||
unsigned char message_requete_detection[10];
|
||||
|
||||
message_requete_detection.type = 'r';
|
||||
message_requete_detection.id_carte = 'D';
|
||||
message_requete_detection.adresse_registre = 0;
|
||||
message_requete_detection.taille_donnees = 19;
|
||||
message_requete_detection.fin_de_message = 0;
|
||||
|
||||
|
||||
message_binaire[0]='r';
|
||||
message_binaire[1]='A';
|
||||
message_binaire[2]= 0;
|
||||
message_binaire[3]= 5;
|
||||
|
||||
message_binaire[4]= 'a';
|
||||
message_binaire[5]= 'b';
|
||||
message_binaire[6]= 'c';
|
||||
message_binaire[7]= 'd';
|
||||
message_binaire[8]= 'e';
|
||||
|
||||
message_binaire[9]= 0;
|
||||
|
||||
|
||||
|
||||
for(int i=0; i<10000; i++){
|
||||
@ -32,30 +72,51 @@ void main(void)
|
||||
if(j>25){
|
||||
j=0;
|
||||
}
|
||||
message[i]= j + 'a';*/
|
||||
message[i]= i%26 + 'a';
|
||||
chaine_envoie[i]= j + 'a';*/
|
||||
chaine_envoie[i]= i%26 + 'a';
|
||||
}
|
||||
int nb_ech = 10;
|
||||
int taille_morceau = 60;
|
||||
stdio_init_all();
|
||||
while(1){
|
||||
temps_moyen = 0;
|
||||
temps_max = 0;
|
||||
for(int i = 1; i < NB_MORCEAUX; i++){
|
||||
temps_moyen = 0;
|
||||
temps_max = 0;
|
||||
start_time_us = get_absolute_time();
|
||||
temps_m[i] = envoie_nb_char(taille_morceau);
|
||||
//temps_m[i] = i;
|
||||
current_time_us = get_absolute_time();
|
||||
sleep_ms(1);
|
||||
}
|
||||
for(int i = 1; i < NB_MORCEAUX; i++){
|
||||
printf(">temps:%d:%lld#us\n", i, temps_m[i]);
|
||||
}
|
||||
printf(">temps_d:%lld\n", current_time_us - start_time_us);
|
||||
gpio_init(PICO_DEFAULT_LED_PIN);
|
||||
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
|
||||
gpio_put(PICO_DEFAULT_LED_PIN, 0);
|
||||
|
||||
temps_message_detection = get_absolute_time();
|
||||
|
||||
while(1){
|
||||
|
||||
if(get_absolute_time() - temps_message_detection > MESSAGE_TIMEOUT_US){
|
||||
envoie_structure(&message_requete_detection, sizeof(message_requete_detection) );
|
||||
temps_message_detection = get_absolute_time();
|
||||
}
|
||||
|
||||
start_time_us = get_absolute_time();
|
||||
envoie_donnees(message_binaire, 10);
|
||||
current_time_us = get_absolute_time();
|
||||
printf(">temps:%lld\n", current_time_us - start_time_us);
|
||||
|
||||
start_time_us = get_absolute_time();
|
||||
communication_reception_message();
|
||||
while(messagerie_message_disponible()){
|
||||
message = messagerie_get_message();
|
||||
if(message.type == 'r'){
|
||||
if(message.id_carte == 'D'){
|
||||
if(message.donnees[1] > 0 && message.donnees[1] < 30){
|
||||
gpio_put(PICO_DEFAULT_LED_PIN, 1);
|
||||
}else{
|
||||
gpio_put(PICO_DEFAULT_LED_PIN, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
current_time_us = get_absolute_time();
|
||||
|
||||
putchar('\n');
|
||||
printf(">temps:%lld\n", current_time_us - start_time_us);
|
||||
sleep_ms(50);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,14 +127,14 @@ absolute_time_t envoie_nb_char(int nb_char) {
|
||||
if (nb_char == 0){
|
||||
return 0;
|
||||
}
|
||||
message[nb_char - 1] = '\n';
|
||||
message[nb_char] = '\0';
|
||||
chaine_envoie[nb_char - 1] = '\n';
|
||||
chaine_envoie[nb_char] = '\0';
|
||||
start_time_us = get_absolute_time();
|
||||
printf("%s", message);
|
||||
envoie_donnees(message, strlen(message));
|
||||
printf("%s", chaine_envoie);
|
||||
envoie_donnees(chaine_envoie, strlen(chaine_envoie));
|
||||
|
||||
current_time_us = get_absolute_time();
|
||||
message[nb_char - 1] = 'a';
|
||||
message[nb_char] = 'a';
|
||||
chaine_envoie[nb_char - 1] = 'a';
|
||||
chaine_envoie[nb_char] = 'a';
|
||||
return current_time_us - start_time_us;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user