diff --git a/page_web/index.html b/page_web/index.html
index ef3cad5..66c4e12 100644
--- a/page_web/index.html
+++ b/page_web/index.html
@@ -76,7 +76,6 @@ setTimeout('autoSend4();', 200);
}
function autoSend4(){
websocket.send('4');
-//setTimeout('autoSend0();', 500);
}
setInterval(autoSend0, 1000);
diff --git a/serveur/serial.h b/serveur/serial.h
new file mode 100644
index 0000000..e7eac5b
--- /dev/null
+++ b/serveur/serial.h
@@ -0,0 +1,18 @@
+/*
+ * Public definitions for serial library
+ */
+
+////
+// Constants
+////
+
+#define SERIAL_READ 0
+#define SERIAL_WRITE 1
+#define SERIAL_BOTH 2
+
+////
+// Public prototypes
+////
+int serialOpen(char *device,int mode);
+void serialConfig(int fd,int speed);
+void serialClose(int fd);
diff --git a/serveur/websocket_server.c b/serveur/websocket_server.c
index 65f1649..11c389a 100644
--- a/serveur/websocket_server.c
+++ b/serveur/websocket_server.c
@@ -38,56 +38,53 @@ static int callback_my(
struct libwebsocket *wsi,enum libwebsocket_callback_reasons reason,
void *user,void *in,size_t len)
{
-printf("boucle\n");
-static char *message=NULL;
+static char *mesage=NULL;
static int msize=0;
switch(reason)
{
- printf("%s\n",reason);
case LWS_CALLBACK_ESTABLISHED:
printf("connection established\n");
- message=NULL;
+ mesage=NULL;
// Declenchement d'un prochain envoi au navigateur
libwebsocket_callback_on_writable(this,wsi);
break;
+
case LWS_CALLBACK_RECEIVE:
- // Ici sont traites les messages envoyes par le navigateur
- printf("received data: %s\n",(char *)in);
- message=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);
- if(message==NULL)
- {
+ // Ici sont traites les mesages envoyes par le navigateur
+ char* recei=(char *)in;
+ int rec = *recei - 48; //réception de l'instruction, convertie en entier
+ printf("received data: %d\n",rec);
+ mesage=malloc(len+LWS_SEND_BUFFER_PRE_PADDING+LWS_SEND_BUFFER_POST_PADDING);
+ if(mesage==NULL)
+ {
perror("callback_my.malloc");
exit(EXIT_FAILURE);
- }
-
- int a=0;
- char value[3];
- sprintf (value, "%d", serial_read(&a)) ;
- printf("value = %s\n",value);
- //char* value = "0";
- // memcpy(message+LWS_SEND_BUFFER_PRE_PADDING,in,len);
- memcpy(message+LWS_SEND_BUFFER_PRE_PADDING,value,1 + strlen(value));
+ }
+ char value[3];
+ sprintf (value, "%d", (10*serial_read(&rec))+rec); //réception de la valeur demandée, sous forme de str
+ printf("value = %s\n",value);
+ memcpy(mesage+LWS_SEND_BUFFER_PRE_PADDING,value,1 + strlen(value));
// Declenchement d'un prochain envoi au navigateur
- //msize=len;
msize=strlen(value);
libwebsocket_callback_on_writable(this,wsi);
break;
+
case LWS_CALLBACK_SERVER_WRITEABLE:
-
- // Ici sont envoyes les messages au navigateur
- if(message!=NULL){
- char *out=message+LWS_SEND_BUFFER_PRE_PADDING;
+ // Ici sont envoyes les mesages au navigateur
+ if(mesage!=NULL)
+ {
+ char *out=mesage+LWS_SEND_BUFFER_PRE_PADDING;
printf("%s\n",out);
printf("%d\n",msize);
libwebsocket_write(wsi,(unsigned char *)out,msize,LWS_WRITE_TEXT);
- //libwebsocket_write(wsi,(unsigned char *)out,msize,LWS_WRITE_TEXT);
- free(message);
- message=NULL;
- }
+ free(mesage);
+ mesage=NULL;
+ }
break;
+
default:
break;
}
@@ -160,7 +157,7 @@ int n=0;
int value=0;
int sd=serialOpen(SERIAL_DEVICE,SERIAL_BOTH);
serialConfig(sd,B9600);
-if(write(sd,&c,sizeof(char))!=1){ perror("main.write"); exit(-1); }
+if(write(sd,&c,sizeof(char))!=1){ perror("main.write"); exit(-1); } //Envoi de l'instruction
//Read the number of decimals
if(read(sd,&n,sizeof(char))!=1){ perror("main.read"); exit(-1); }
--
libgit2 0.21.2