ESP8266 part of the f105-motor-demo project (see f105-motor-demo_stm32)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
f105-motor-demo_esp/user/page_home.c

84 lines
1.7 KiB

#include <esp8266.h>
#include <httpd.h>
#include "fw_version.h"
#include "sbmp.h"
#include "datalink.h"
#include "serial.h"
httpd_cgi_state FLASH_FN cgiMotorStart(HttpdConnData *connData)
{
if (connData->conn == NULL) {
//Connection aborted. Clean up.
return HTTPD_CGI_DONE;
}
info("Motor start!");
int suc;
bool fwd = true;
uint32_t speed = 6144*2;
char buf[64];
suc = httpdFindArg(connData->getArgs, "dir", buf, 64);
if (suc != -1) {
fwd = (buf[0] == 'f'); // dir=f or dir=r
}
suc = httpdFindArg(connData->getArgs, "speed", buf, 64);
if (suc != -1) {
speed = (uint32_t)atoi(buf);
}
dbg("Speed = %d, rev = %d", speed, fwd);
sbmp_ep_start_message(dlnk_ep, DG_MOTOR_START, 5, NULL);
sbmp_ep_send_u8(dlnk_ep, fwd ? 1 : 0);
sbmp_ep_send_u32(dlnk_ep, speed);
httpdStartResponse(connData, 200);
httpdHeader(connData, "Content-Type", "text/json");
httpdEndHeaders(connData);
httpdSend(connData, "{\"success\":true}\n", -1);
return HTTPD_CGI_DONE;
}
httpd_cgi_state FLASH_FN cgiMotorStop(HttpdConnData *connData)
{
if (connData->conn == NULL) {
//Connection aborted. Clean up.
return HTTPD_CGI_DONE;
}
info("Motor stop!");
sbmp_ep_start_message(dlnk_ep, DG_MOTOR_STOP, 0, NULL);
httpdStartResponse(connData, 200);
httpdHeader(connData, "Content-Type", "text/json");
httpdEndHeaders(connData);
httpdSend(connData, "{\"success\":true}\n", -1);
return HTTPD_CGI_DONE;
}
/** "Home" page */
httpd_cgi_state FLASH_FN tplHome(HttpdConnData *connData, char *token, void **arg)
{
// arg is unused
(void)arg;
(void)connData;
if (token == NULL) return HTTPD_CGI_DONE;
// if (streq(token, "vers_fw")) {
// httpdSend(connData, FIRMWARE_VERSION, -1);
// }
return HTTPD_CGI_DONE;
}