Het werkt bijna! hoop ik.
This commit is contained in:
parent
4a3eb3b56b
commit
b232b82ef5
@ -3,7 +3,7 @@
|
|||||||
#define DEBUG_H
|
#define DEBUG_H
|
||||||
|
|
||||||
#define IF_SEVERITY 0
|
#define IF_SEVERITY 0
|
||||||
#include "debug_if.h"
|
#include "./debug_if.h"
|
||||||
|
|
||||||
inline UART_Handle uartHandle;
|
inline UART_Handle uartHandle;
|
||||||
// UART_control(uartHandle, UART_CMD_RXDISABLE, NULL);
|
// UART_control(uartHandle, UART_CMD_RXDISABLE, NULL);
|
||||||
|
|||||||
@ -21,7 +21,7 @@ typedef struct {
|
|||||||
int8_t g;
|
int8_t g;
|
||||||
} pakketje;
|
} pakketje;
|
||||||
|
|
||||||
void * GSensorThread(void *args) {
|
void * GSensorTask(void *args) {
|
||||||
|
|
||||||
I2C_Handle speedyBoy;
|
I2C_Handle speedyBoy;
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ void * GSensorThread(void *args) {
|
|||||||
uint8_t buffer_send = ACCD_X_MSB;
|
uint8_t buffer_send = ACCD_X_MSB;
|
||||||
|
|
||||||
double timer = 0;
|
double timer = 0;
|
||||||
int sleeper;
|
uint32_t sleeper;
|
||||||
|
|
||||||
I2C_Transaction RW_Trans;
|
I2C_Transaction RW_Trans;
|
||||||
RW_Trans.slaveAddress = SPEEDYBOI_ADDR;
|
RW_Trans.slaveAddress = SPEEDYBOI_ADDR;
|
||||||
@ -48,18 +48,18 @@ void * GSensorThread(void *args) {
|
|||||||
}
|
}
|
||||||
// publish read into mailbox (defined in mqtt.c)
|
// publish read into mailbox (defined in mqtt.c)
|
||||||
timer += 0.1;
|
timer += 0.1;
|
||||||
|
|
||||||
|
pakketje pakket;
|
||||||
|
pakket.richting = (buffer_rcv < 0) ? Achteruit : Vooruit;
|
||||||
|
pakket.timestamp = timer;
|
||||||
|
pakket.g = abs(buffer_rcv);
|
||||||
|
|
||||||
|
// MQTTPublish(pakket);
|
||||||
|
|
||||||
sleeper = 6000000;
|
sleeper = 6000000;
|
||||||
|
while(sleeper) {
|
||||||
pakketje pakket;
|
sleeper--;
|
||||||
pakket.richting = (buffer_rcv < 0) ? Achteruit : Vooruit;
|
}
|
||||||
pakket.timestamp = timer;
|
|
||||||
pakket.g = abs(buffer_rcv);
|
|
||||||
|
|
||||||
// MQTTPublish(pakket);
|
|
||||||
|
|
||||||
while(sleeper) {
|
|
||||||
sleeper--;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
void * GSensorThread(void *args);
|
void * GSensorTask(void *args);
|
||||||
void * MQTTTask(void *args);
|
void * MQTTTask(void *args);
|
||||||
void * SocketTask(void *args);
|
void * SocketTask(void *args);
|
||||||
|
|||||||
32
src/main.c
32
src/main.c
@ -6,19 +6,27 @@
|
|||||||
#include <ti/drivers/I2C.h>
|
#include <ti/drivers/I2C.h>
|
||||||
#include <ti/drivers/i2c/I2CCC32XX.h>
|
#include <ti/drivers/i2c/I2CCC32XX.h>
|
||||||
|
|
||||||
#include "./header.h"
|
#include "header.h"
|
||||||
|
//#include "debug/debug.h"
|
||||||
|
//#include "network/network.h"
|
||||||
|
|
||||||
#define BIGOLTHREADSTACK 4096
|
#define BIGOLTHREADSTACK 4096
|
||||||
|
|
||||||
void Hardware_init(){
|
void Hardware_init(){
|
||||||
|
// int32_t ret;
|
||||||
|
|
||||||
Board_init();
|
Board_init();
|
||||||
GPIO_init();
|
GPIO_init();
|
||||||
I2C_init();
|
I2C_init();
|
||||||
|
|
||||||
|
// ret = WifiInit();
|
||||||
|
// if(ret < 0){
|
||||||
|
// while(1);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void){
|
int main(void){
|
||||||
|
|
||||||
pthread_t thread;
|
|
||||||
pthread_attr_t attrs;
|
pthread_attr_t attrs;
|
||||||
struct sched_param priParam;
|
struct sched_param priParam;
|
||||||
int retc;
|
int retc;
|
||||||
@ -34,19 +42,33 @@ int main(void){
|
|||||||
retc |= pthread_attr_setdetachstate(&attrs, PTHREAD_CREATE_DETACHED);
|
retc |= pthread_attr_setdetachstate(&attrs, PTHREAD_CREATE_DETACHED);
|
||||||
retc |= pthread_attr_setstacksize(&attrs, BIGOLTHREADSTACK);
|
retc |= pthread_attr_setstacksize(&attrs, BIGOLTHREADSTACK);
|
||||||
if (retc != 0) {
|
if (retc != 0) {
|
||||||
/* failed to set attributes */
|
// LOG_CRITICAL("main(): failed to set tread attributes");
|
||||||
while(1);
|
while(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ==============================================
|
/* ==============================================
|
||||||
=== tread for G sensor =======================
|
=== tread for G sensor =======================
|
||||||
==============================================
|
==============================================
|
||||||
*/
|
*/
|
||||||
retc = pthread_create(&thread, &attrs, GSensorThread, NULL);
|
pthread_t GSensorThread;
|
||||||
|
retc = pthread_create(&GSensorThread, &attrs, GSensorTask, NULL);
|
||||||
if (retc != 0) {
|
if (retc != 0) {
|
||||||
/* pthread_create() failed */
|
/* pthread_create() failed */
|
||||||
|
// LOG_CRITICAL("main(): failed to create tread for G-sensor");
|
||||||
|
while(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ==============================================
|
||||||
|
=== tread for MQTT ===========================
|
||||||
|
==============================================
|
||||||
|
*/
|
||||||
|
pthread_t MQTTThread;
|
||||||
|
retc = pthread_create(&MQTTThread, &attrs, MQTTTask, NULL);
|
||||||
|
if (retc != 0) {
|
||||||
|
/* pthread_create() failed */
|
||||||
|
// LOG_CRITICAL("main(): failed to create tread for MQTT");
|
||||||
while(1);
|
while(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
40
src/mqtt.c
40
src/mqtt.c
@ -1,6 +1,7 @@
|
|||||||
#include "mqtt/mqtt.h"
|
#include "mqtt/mqtt.h"
|
||||||
|
|
||||||
void MQTTTask(void* args){
|
void MQTTTask(void* args){
|
||||||
|
LOG_TRACE("MQTT task started.");
|
||||||
mq_attr attr;
|
mq_attr attr;
|
||||||
MQTTClient_Handle mqttClientHandle;
|
MQTTClient_Handle mqttClientHandle;
|
||||||
|
|
||||||
@ -19,10 +20,10 @@ void MQTTTask(void* args){
|
|||||||
while(1);
|
while(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = WifiInit();
|
// ret = WifiInit();
|
||||||
if(ret < 0){
|
// if(ret < 0){
|
||||||
while(1);
|
// while(1);
|
||||||
}
|
// }
|
||||||
|
|
||||||
ret = MQTT_IF_Init(mqttInitParams);
|
ret = MQTT_IF_Init(mqttInitParams);
|
||||||
if(ret < 0){
|
if(ret < 0){
|
||||||
@ -41,8 +42,7 @@ void MQTTTask(void* args){
|
|||||||
// ret |= MQTT_IF_Subscribe(mqttClientHandle, "cc32xx/ToggleLED3", MQTT_QOS_2, ToggleLED3CB);
|
// ret |= MQTT_IF_Subscribe(mqttClientHandle, "cc32xx/ToggleLED3", MQTT_QOS_2, ToggleLED3CB);
|
||||||
if(ret < 0){
|
if(ret < 0){
|
||||||
while(1);
|
while(1);
|
||||||
}
|
}else{
|
||||||
else{
|
|
||||||
LOG_INFO("Subscribed to all topics successfully\r\n");
|
LOG_INFO("Subscribed to all topics successfully\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,6 +57,7 @@ void MQTTTask(void* args){
|
|||||||
|
|
||||||
struct msgQueue queueElement;
|
struct msgQueue queueElement;
|
||||||
while(1){
|
while(1){
|
||||||
|
LOG_TRACE("Running MQTT loop.");
|
||||||
mq_receive(appQueue, (char*)&queueElement, sizeof(struct msgQueue), NULL);
|
mq_receive(appQueue, (char*)&queueElement, sizeof(struct msgQueue), NULL);
|
||||||
|
|
||||||
if(queueElement.event == APP_MQTT_PUBLISH){
|
if(queueElement.event == APP_MQTT_PUBLISH){
|
||||||
@ -67,9 +68,6 @@ void MQTTTask(void* args){
|
|||||||
"LED 1 toggle\r\n",
|
"LED 1 toggle\r\n",
|
||||||
strlen("LED 1 toggle\r\n"),
|
strlen("LED 1 toggle\r\n"),
|
||||||
MQTT_QOS_2);
|
MQTT_QOS_2);
|
||||||
|
|
||||||
// GPIO_clearInt(CONFIG_GPIO_BUTTON_0);
|
|
||||||
// GPIO_enableInt(CONFIG_GPIO_BUTTON_0);
|
|
||||||
}
|
}
|
||||||
else if(queueElement.event == APP_MQTT_CON_TOGGLE){
|
else if(queueElement.event == APP_MQTT_CON_TOGGLE){
|
||||||
|
|
||||||
@ -94,17 +92,17 @@ void MQTTTask(void* args){
|
|||||||
|
|
||||||
struct msgQueue queueElement;
|
struct msgQueue queueElement;
|
||||||
|
|
||||||
ret = detectLongPress();
|
// ret = detectLongPress();
|
||||||
if(ret == 0){
|
// if(ret == 0){
|
||||||
|
//
|
||||||
LOG_TRACE("APP_BTN_HANDLER SHORT PRESS\r\n");
|
//// LOG_TRACE("APP_BTN_HANDLER SHORT PRESS\r\n");
|
||||||
queueElement.event = APP_MQTT_CON_TOGGLE;
|
// queueElement.event = APP_MQTT_CON_TOGGLE;
|
||||||
}
|
// }
|
||||||
else{
|
// else{
|
||||||
|
//
|
||||||
LOG_TRACE("APP_BTN_HANDLER LONG PRESS\r\n");
|
//// LOG_TRACE("APP_BTN_HANDLER LONG PRESS\r\n");
|
||||||
queueElement.event = APP_MQTT_DEINIT;
|
// queueElement.event = APP_MQTT_DEINIT;
|
||||||
}
|
// }
|
||||||
|
|
||||||
ret = mq_send(appQueue, (const char*)&queueElement, sizeof(struct msgQueue), 0);
|
ret = mq_send(appQueue, (const char*)&queueElement, sizeof(struct msgQueue), 0);
|
||||||
if(ret < 0){
|
if(ret < 0){
|
||||||
@ -119,7 +117,7 @@ void MQTTTask(void* args){
|
|||||||
}
|
}
|
||||||
MQTT_IF_Deinit();
|
MQTT_IF_Deinit();
|
||||||
|
|
||||||
// LOG_INFO("looping the MQTT functionality of the example for demonstration purposes only\r\n");
|
LOG_INFO("looping the MQTT functionality of the example for demonstration purposes only\r\n");
|
||||||
// sleep(2);
|
// sleep(2);
|
||||||
// goto MQTT_DEMO;
|
// goto MQTT_DEMO;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
#include "mqtt_if.h"
|
#include "mqtt_if.h"
|
||||||
|
#include "../debug/debug.h"
|
||||||
|
#include "../network/network.h"
|
||||||
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -33,13 +35,6 @@
|
|||||||
mqd_t appQueue;
|
mqd_t appQueue;
|
||||||
int connected;
|
int connected;
|
||||||
int deinit;
|
int deinit;
|
||||||
//Timer_Handle timer0;
|
|
||||||
int longPress = 0;
|
|
||||||
|
|
||||||
/* Client ID */
|
|
||||||
/* If ClientId isn't set, the MAC address of the device will be copied into */
|
|
||||||
/* the ClientID parameter. */
|
|
||||||
char ClientId[13] = {'\0'};
|
|
||||||
|
|
||||||
enum{
|
enum{
|
||||||
APP_MQTT_PUBLISH,
|
APP_MQTT_PUBLISH,
|
||||||
|
|||||||
126
src/network/network.h
Normal file
126
src/network/network.h
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#ifndef __NETWORK__H__
|
||||||
|
#define __NETWORK__H__
|
||||||
|
|
||||||
|
#include <pthread.h>
|
||||||
|
|
||||||
|
#include "network_if.h"
|
||||||
|
|
||||||
|
extern char ClientId[13] = {'\0'};
|
||||||
|
|
||||||
|
int32_t SetClientIdNamefromMacAddress()
|
||||||
|
{
|
||||||
|
int32_t ret = 0;
|
||||||
|
uint8_t Client_Mac_Name[2];
|
||||||
|
uint8_t Index;
|
||||||
|
uint16_t macAddressLen = SL_MAC_ADDR_LEN;
|
||||||
|
uint8_t macAddress[SL_MAC_ADDR_LEN];
|
||||||
|
|
||||||
|
/*Get the device Mac address */
|
||||||
|
ret = sl_NetCfgGet(SL_NETCFG_MAC_ADDRESS_GET, 0, &macAddressLen,
|
||||||
|
&macAddress[0]);
|
||||||
|
|
||||||
|
/*When ClientID isn't set, use the mac address as ClientID */
|
||||||
|
if(ClientId[0] == '\0')
|
||||||
|
{
|
||||||
|
/*6 bytes is the length of the mac address */
|
||||||
|
for(Index = 0; Index < SL_MAC_ADDR_LEN; Index++)
|
||||||
|
{
|
||||||
|
/*Each mac address byte contains two hexadecimal characters */
|
||||||
|
/*Copy the 4 MSB - the most significant character */
|
||||||
|
Client_Mac_Name[0] = (macAddress[Index] >> 4) & 0xf;
|
||||||
|
/*Copy the 4 LSB - the least significant character */
|
||||||
|
Client_Mac_Name[1] = macAddress[Index] & 0xf;
|
||||||
|
|
||||||
|
if(Client_Mac_Name[0] > 9)
|
||||||
|
{
|
||||||
|
/*Converts and copies from number that is greater than 9 in */
|
||||||
|
/*hexadecimal representation (a to f) into ascii character */
|
||||||
|
ClientId[2 * Index] = Client_Mac_Name[0] + 'a' - 10;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*Converts and copies from number 0 - 9 in hexadecimal */
|
||||||
|
/*representation into ascii character */
|
||||||
|
ClientId[2 * Index] = Client_Mac_Name[0] + '0';
|
||||||
|
}
|
||||||
|
if(Client_Mac_Name[1] > 9)
|
||||||
|
{
|
||||||
|
/*Converts and copies from number that is greater than 9 in */
|
||||||
|
/*hexadecimal representation (a to f) into ascii character */
|
||||||
|
ClientId[2 * Index + 1] = Client_Mac_Name[1] + 'a' - 10;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*Converts and copies from number 0 - 9 in hexadecimal */
|
||||||
|
/*representation into ascii character */
|
||||||
|
ClientId[2 * Index + 1] = Client_Mac_Name[1] + '0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
int WifiInit(){
|
||||||
|
|
||||||
|
int32_t ret;
|
||||||
|
SlWlanSecParams_t security_params;
|
||||||
|
pthread_t spawn_thread = (pthread_t) NULL;
|
||||||
|
pthread_attr_t pattrs_spawn;
|
||||||
|
struct sched_param pri_param;
|
||||||
|
|
||||||
|
pthread_attr_init(&pattrs_spawn);
|
||||||
|
pri_param.sched_priority = 9;
|
||||||
|
ret = pthread_attr_setschedparam(&pattrs_spawn, &pri_param);
|
||||||
|
ret |= pthread_attr_setstacksize(&pattrs_spawn, 2048);
|
||||||
|
ret |= pthread_attr_setdetachstate(&pattrs_spawn, PTHREAD_CREATE_DETACHED);
|
||||||
|
ret = pthread_create(&spawn_thread, &pattrs_spawn, sl_Task, NULL);
|
||||||
|
if(ret != 0){
|
||||||
|
// LOG_ERROR("could not create simplelink task\n\r");
|
||||||
|
while(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
Network_IF_ResetMCUStateMachine();
|
||||||
|
|
||||||
|
Network_IF_DeInitDriver();
|
||||||
|
|
||||||
|
ret = Network_IF_InitDriver(ROLE_STA);
|
||||||
|
if(ret < 0){
|
||||||
|
// LOG_ERROR("Failed to start SimpleLink Device\n\r");
|
||||||
|
while(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// DisplayAppBanner(APPLICATION_NAME, APPLICATION_VERSION);
|
||||||
|
|
||||||
|
SetClientIdNamefromMacAddress();
|
||||||
|
|
||||||
|
security_params.Key = (signed char*)SECURITY_KEY;
|
||||||
|
security_params.KeyLen = strlen(SECURITY_KEY);
|
||||||
|
security_params.Type = SECURITY_TYPE;
|
||||||
|
|
||||||
|
ret = Network_IF_ConnectAP(SSID_NAME, security_params);
|
||||||
|
if(ret < 0){
|
||||||
|
// LOG_ERROR("Connection to an AP failed\n\r");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
|
SlWlanSecParams_t securityParams;
|
||||||
|
|
||||||
|
securityParams.Type = SECURITY_TYPE;
|
||||||
|
securityParams.Key = (signed char*)SECURITY_KEY;
|
||||||
|
securityParams.KeyLen = strlen((const char *)securityParams.Key);
|
||||||
|
|
||||||
|
ret = sl_WlanProfileAdd((signed char*)SSID_NAME, strlen(SSID_NAME), 0, &securityParams, NULL, 7, 0);
|
||||||
|
if(ret < 0){
|
||||||
|
// LOG_ERROR("failed to add profile %s\r\n", SSID_NAME);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// LOG_INFO("profile added %s\r\n", SSID_NAME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@ -535,7 +535,7 @@ long Network_IF_DeInitDriver(void)
|
|||||||
{
|
{
|
||||||
long lRetVal = -1;
|
long lRetVal = -1;
|
||||||
|
|
||||||
UART_PRINT("SL Disconnect...\n\r");
|
// UART_PRINT("SL Disconnect...\n\r");
|
||||||
|
|
||||||
/* Disconnect from the AP */
|
/* Disconnect from the AP */
|
||||||
lRetVal = Network_IF_DisconnectFromAP();
|
lRetVal = Network_IF_DisconnectFromAP();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user