patdie421 / mea-edomus

Automatically exported from code.google.com/p/mea-edomus
0 stars 0 forks source link

MEA-EDOMUS : ajouter une interface HTTP de contrôle/commande pour OPENREMOTE #114

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
* Commander via des requestes HTTP les actionneurs.
Interface de type :
/NOM_ACTIONNEUR/action/parametre
ex :
http://ried3.local/R1/pulse/120
http://ried3.local/R1/set/high

* Voir comment remonter les changements d'état sans pooling.

Original issue reported on code.google.com by patrice....@gmail.com on 9 Sep 2014 at 9:22

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
pour l'url :

Transmettre en interne une commande de type control.basic :

/API/XPL-INTERNAL/ACTUATOR/DEVICE_RELAY1/TYPE_OUTPUT/CURRENT_HIGH
/API/XPL-INTERNAL/ACTUATOR/DEVICE_RELAY1/TYPE_OUTPUT/CURRENT_PULSE/DATA1_125

Transmettre en interne une commande de type sensor.request :

/API/XPL-INTERNAL/SENSOR/DEVICE_A3/TYPE_TEMP/REQUEST_CURRENT

Evolution : emettre une requete xpl depuis HTTP:
/API/XPL-EXTERNAL/<dest>/<schema>/K1_V1/K2_V2/...

Original comment by patrice....@gmail.com on 9 Sep 2014 at 2:00

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
            char* content = "Hello World!";
            char* mimeType = "text/plain";
            int contentLength = strlen(content);

            mg_printf(conn,
                "HTTP/1.1 200 OK\r\n"
                "Cache: no-cache\r\n"
                "Content-Type: %s\r\n"
                "Content-Length: %d\r\n"
                "\r\n",
                mimeType,
                contentLength);
            mg_write(conn, content, contentLength);

Original comment by patrice....@gmail.com on 10 Sep 2014 at 7:38

GoogleCodeExporter commented 9 years ago
Spec de la solution :

Utilisation de message xpl interne. L'adresse xpl interne sera 
"<mon_vendor_id>-internal.<id_request>". id_request sera un identifiant 
numérique permettant de retrouver le demandeur.
Lorsqu'un message est emis (à l'aide de mea_xplSendMsg ou dans les emissions 
"interface_type_001" vers une adresse interne, le résultat n'est pas émis 
vers le réseau mais transmis inséré dans une file de message. On utilise les 
même mécanisme que comio2/xbee pour récuperer la réponse attendu dans la 
file.

Pour simplifier et rendre le plus transparant possible, on remplacera 
simplement partout la fonction xPL_SendMessage (api xPLLib) par une fonction 
assurera le dispatching : sendXplMessage() (à mettre dans le bon fichier.c).

Original comment by patrice....@gmail.com on 11 Sep 2014 at 8:44

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Prévoir une fonction readInternalXplMessage(id_request) pour récupérer le 
résultat.

Exemple d'utilisation :

uint16_t id;
id=getXplInternalId();
char idStr[9];
sprintf(idStr,"%08d",id);

// construire une requete xpl
xPL_MessagePtr xplMsg;
xplMsg = ...
xPLsetSource(xplMsg, get_VendorID(), "internal", idStr);

sendXplMessage(xplMsg);

// si on attend un retour
xplMsg=readXplInternalResponse(id);

// et on traite la réponse en fonction du besoin ...

Original comment by patrice....@gmail.com on 11 Sep 2014 at 4:10

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
API finalisée, debugger ...
Voir si des contrôles supplémentaires sont nécessaire.

Original comment by patrice....@gmail.com on 12 Sep 2014 at 11:29

GoogleCodeExporter commented 9 years ago
Dev terminé

Original comment by patrice....@gmail.com on 12 Sep 2014 at 7:18