Squashed commit of the following:
commita4632bb7ad
Author: A.M. Rowsell <amrowsell@frozenelectronics.ca> Date: Mon Jan 21 20:13:12 2019 -0500 Sanitizing key and wifi Signed-off-by: A.M. Rowsell <amrowsell@frozenelectronics.ca> commit5e3be0f561
Author: A.M. Rowsell <amrowsell@frozenelectronics.ca> Date: Mon Jan 21 19:53:42 2019 -0500 It's alive! New code all working. The OneWire library works. It's a bit hacked together, as neither the software timer or hardware timer APIs would have worked well, because they are implemented terribly by Espressif. The easiest way to get around this was to just use system_get_time() and work off of that for timing in one-wire comms. Split the publish function into two separate functions: one to publish floating point numbers, and one to publish integers. In a language like Lua or C++ you could have these as one function, but in C it's easier to just split them. The main.c has a new function called dataLog that deals with getting the DS18B20 data and then handing that off to pubfloat(). I updated the timer names to be more descriptive. I grabbed some code to convert integers and floats to strings, as I can't be bothered to write that code myself for the millionth time. If something goes wrong and we are disconnected from our TCP connection, all timers are halted so we don't blindly keep trying to send packets over a non-existent link. Unfortunately the onewire library is hardcoded to use pin 5. That will be the next update. Signed-off-by: A.M. Rowsell <amrowsell@frozenelectronics.ca> commit48702bf328
Author: A.M. Rowsell <amrowsell@frozenelectronics.ca> Date: Sun Jan 20 21:13:04 2019 -0500 First version that compiles with new file layout. Had to make many changes to get it to compile across many files, including removing the LOCAL specifier from almost all functions. Edited the Makefile to compile all three files and link them. Haven't tested on hardware yet, that's the next step. Lots of small changes to avoid warnings, now that I have turned -Wall on. This makes the code a bit "better". Signed-off-by: A.M. Rowsell <amrowsell@frozenelectronics.ca> commit1cd8191682
Author: A.M. Rowsell <amrowsell@frozenelectronics.ca> Date: Sat Jan 19 15:25:44 2019 -0500 New branch for my new AIO key. Will have to remember to sanitize before committing to master. Signed-off-by: A.M. Rowsell <amrowsell@frozenelectronics.ca> Signed-off-by: A.M. Rowsell <amrowsell@frozenelectronics.ca>
This commit is contained in:
parent
70cf55efdf
commit
627df20e53
8 changed files with 317 additions and 106 deletions
21
mqtt.h
21
mqtt.h
|
@ -82,7 +82,10 @@ typedef struct {
|
|||
uint32_t password_len; /**< The length of the password string */
|
||||
char validConnection; /**< Boolean value which indicates whether or not the TCP connection is established, set in tcpConnect() */
|
||||
struct espconn *activeConnection; /**< A pointer to the espconn structure containing details of the TCP connection */
|
||||
void *userData; /**< Used to pass data to the PUBLISH function */
|
||||
// Add pointers to user callback functions
|
||||
void (*publish_cb)(void *arg); /**< Pointer to user callback function for publish */
|
||||
void (*connack_cb)(void *arg); /**< Pointer to user callback function for connack */
|
||||
} mqtt_session_t;
|
||||
|
||||
/**
|
||||
|
@ -90,9 +93,9 @@ typedef struct {
|
|||
* @param arg A pointer to void, so it can be called from a timer or task
|
||||
* @return 0 on success
|
||||
*/
|
||||
LOCAL uint8_t ICACHE_FLASH_ATTR tcpConnect(void *arg);
|
||||
LOCAL void ICACHE_FLASH_ATTR disconnected_callback(void *arg);
|
||||
LOCAL void ICACHE_FLASH_ATTR reconnected_callback(void *arg, sint8 err);
|
||||
uint8_t ICACHE_FLASH_ATTR tcpConnect(void *arg);
|
||||
void ICACHE_FLASH_ATTR disconnected_callback(void *arg);
|
||||
void ICACHE_FLASH_ATTR reconnected_callback(void *arg, sint8 err);
|
||||
|
||||
/**
|
||||
* A callback function which is called when TCP connection is successful.
|
||||
|
@ -101,7 +104,7 @@ LOCAL void ICACHE_FLASH_ATTR reconnected_callback(void *arg, sint8 err);
|
|||
*
|
||||
* This function is called once the TCP connection to the server is completed. This allows us to register the callbacks for received and sent data, as well as enable TCP keepalive and set validConnection in mqtt_session_t to 1 to show the connection has been successful.
|
||||
*/
|
||||
LOCAL void ICACHE_FLASH_ATTR connected_callback(void *arg);
|
||||
void ICACHE_FLASH_ATTR connected_callback(void *arg);
|
||||
|
||||
/**
|
||||
* A callback function that deals with received data.
|
||||
|
@ -112,9 +115,9 @@ LOCAL void ICACHE_FLASH_ATTR connected_callback(void *arg);
|
|||
*
|
||||
* At this point the function does little more than detect what type of MQTT message is sent, and prints out debug info to the serial port. The next few versions should improve this so the user can register their own callback functions which will be called when the particular message type is receieved.
|
||||
*/
|
||||
LOCAL void ICACHE_FLASH_ATTR data_recv_callback(void *arg, char *pdata, unsigned short len);
|
||||
LOCAL void ICACHE_FLASH_ATTR data_sent_callback(void *arg);
|
||||
LOCAL void ICACHE_FLASH_ATTR pingAlive(void *arg);
|
||||
void ICACHE_FLASH_ATTR data_recv_callback(void *arg, char *pdata, unsigned short len);
|
||||
void ICACHE_FLASH_ATTR data_sent_callback(void *arg);
|
||||
void ICACHE_FLASH_ATTR pingAlive(void *arg);
|
||||
|
||||
/**
|
||||
* A function which takes a uint32_t and returns a pointer to a properly formatted MQTT length.
|
||||
|
@ -125,7 +128,7 @@ LOCAL void ICACHE_FLASH_ATTR pingAlive(void *arg);
|
|||
* The MQTT standard uses a very strange method of encoding the lengths of the various sections
|
||||
* of the packets. This makes it simpler to implement in code.
|
||||
*/
|
||||
LOCAL uint8_t ICACHE_FLASH_ATTR *encodeLength(uint32_t trueLength);
|
||||
uint8_t ICACHE_FLASH_ATTR *encodeLength(uint32_t trueLength);
|
||||
|
||||
/**
|
||||
* This function handles all the sending of various MQTT messages.
|
||||
|
@ -135,4 +138,4 @@ LOCAL uint8_t ICACHE_FLASH_ATTR *encodeLength(uint32_t trueLength);
|
|||
* @param msgType the type of message to be send, one of the mqtt_message_type
|
||||
* @return -1 in case of error, 0 otherwise
|
||||
*/
|
||||
LOCAL uint8_t ICACHE_FLASH_ATTR mqtt_send(mqtt_session_t *session, uint8_t *data, uint32_t len, mqtt_message_type msgType);
|
||||
uint8_t ICACHE_FLASH_ATTR mqtt_send(mqtt_session_t *session, uint8_t *data, uint32_t len, mqtt_message_type msgType);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue