引入mqtt 引入cjson
This commit is contained in:
1 parent
a69c1a58d6
commit
f8591b8b99
86 files changed
+12141
-2157
No files matched your search
+82
-41
@@ -7,11 +7,16 @@
|
||||
#include <rtthread.h>
|
||||
#include <string.h>
|
||||
#include "usart-board.h"
|
||||
#include <MQTTPacket.h>
|
||||
#include "transport.h"
|
||||
#include "netdrv.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#if !defined(LOG_TAG)
|
||||
#define LOG_TAG "dtu"
|
||||
#define LOG_TAG "dtu"
|
||||
#endif
|
||||
#include <elog.h>
|
||||
|
||||
@@ -19,64 +24,101 @@ ALIGN (RT_ALIGN_SIZE)
|
||||
static char thread_stack[2048];
|
||||
static struct rt_thread dtu_thread;
|
||||
|
||||
static struct
|
||||
static char tx_buffer[512];
|
||||
static char rx_buffer[512];
|
||||
|
||||
|
||||
|
||||
netDrv_t g_dtuDrv =
|
||||
{
|
||||
uint32_t isConnected; // 连接成功
|
||||
|
||||
} g_dtuDrv ;
|
||||
0, // 信号值
|
||||
"", // iccid
|
||||
Init, // 状态
|
||||
tx_buffer, // 接受缓存
|
||||
0, // 接受数据长度
|
||||
rx_buffer, // 发送数据缓存
|
||||
0, // 发送数据长度
|
||||
};
|
||||
|
||||
|
||||
|
||||
static enum
|
||||
static void net_data_rxdone (void)
|
||||
{
|
||||
netDrvInit = 0, // 初始化网络驱动
|
||||
netDrvJoin = 1, // 等待网络注册成功
|
||||
netDrvSend = 2, // 发送数据
|
||||
netDrvRecv = 3, // 读取数据
|
||||
netDrvIdle = 4, // 读取数据
|
||||
} eDrvStatus;
|
||||
|
||||
|
||||
|
||||
static void net_data_rxdone(void)
|
||||
{
|
||||
rt_event_send(gUartEvents,EVENT_UART_ETH1_RX);
|
||||
rt_event_send (gUartEvents, EVENT_UART_ETH1_RX);
|
||||
//rt_kprintf("net_data_rxdone\r\n");
|
||||
}
|
||||
|
||||
|
||||
static void thread_entry (void * argument)
|
||||
{
|
||||
// eDrvStatus = netDrvInit;
|
||||
rt_kprintf ("%s was start!\r\n", __FILE__);
|
||||
// gnetEvents = rt_event_create("gnetEvents", RT_IPC_FLAG_FIFO) ;
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
|
||||
HAL_GPIO_WritePin(ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(ETH_PW_GPIO_Port, ETH_PW_Pin, GPIO_PIN_SET);
|
||||
g_ETH1Drv.rxdone = net_data_rxdone;
|
||||
MX_UART_Init(&g_ETH1Drv);
|
||||
|
||||
// // 注册网络驱动
|
||||
// 注册网络驱动
|
||||
// MX_UART_Init(&g_ETH1Drv);
|
||||
while (1)
|
||||
{
|
||||
//MX_UART_PutBuffer(&g_ETH1Drv,"20140524",8);
|
||||
if( RT_EOK == rt_event_recv( gUartEvents, EVENT_UART_ETH1_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
|
||||
MODE_RST:
|
||||
g_dtuDrv.State = Init;
|
||||
MX_UART_Init (&g_ETH1Drv);
|
||||
HAL_GPIO_WritePin (ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_RESET);
|
||||
rt_thread_mdelay (1000);
|
||||
HAL_GPIO_WritePin (ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_SET);
|
||||
rt_thread_mdelay (1000);
|
||||
HAL_GPIO_WritePin (GPIOA, ETH_PW_Pin, GPIO_PIN_SET);
|
||||
rt_thread_mdelay (8000);
|
||||
g_dtuDrv.State = Conn;
|
||||
while (1) // 判断是否链接成功
|
||||
{
|
||||
rt_kprintf("<<<<<<<<<<<<<<<<<<<<rx1:\r\n");
|
||||
for(int i =0; i < g_ETH1Drv.rx_size;i++)
|
||||
// 准备要上报数据
|
||||
if (RT_EOK == rt_event_recv (gTrigEvents, EVENT_TRIG_NETMODE_TX1, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL)) //
|
||||
{
|
||||
rt_kprintf("%02X ",g_ETH1Drv.rx_buffer[i]);
|
||||
//rt_kprintf("MODE_RST\r\n");
|
||||
MX_UART_PutBuffer (&g_ETH1Drv, g_dtuDrv.txbuff, g_dtuDrv.tx_size);
|
||||
// rt_kprintf("tx\r\n");
|
||||
// for(int i =0; i <g_dtuDrv.tx_size;i++ )
|
||||
// {
|
||||
// rt_kprintf("%02X ",g_dtuDrv.txbuff[i]);
|
||||
// }
|
||||
// rt_kprintf("\r\n");
|
||||
}
|
||||
rt_kprintf("\r\n");
|
||||
MX_UART_Clear(&g_ETH1Drv);
|
||||
// 接受到数据
|
||||
if (RT_EOK == rt_event_recv (gUartEvents, EVENT_UART_ETH1_RX, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, 0, RT_NULL))
|
||||
{
|
||||
// rt_kprintf ("ETH1Rx:%d\r\n", g_ETH1Drv.rx_size);
|
||||
// for (int i = 0; i < g_ETH1Drv.rx_size; i++)
|
||||
// {
|
||||
// rt_kprintf ("%02X ", g_ETH1Drv.rx_buffer[i]);
|
||||
// }
|
||||
// rt_kprintf ("\r\n");
|
||||
rt_memcpy (g_dtuDrv.rxbuff, g_ETH1Drv.rx_buffer, g_ETH1Drv.rx_size);
|
||||
g_dtuDrv.rx_size = g_ETH1Drv.rx_size;
|
||||
rt_event_send (gTrigEvents, EVENT_TRIG_NETMODE_RX1) ;
|
||||
MX_UART_Clear (&g_ETH1Drv) ;
|
||||
}
|
||||
if (RT_EOK == rt_event_recv (gTrigEvents, EVENT_TRIG_NETMODE_RST, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL))
|
||||
{
|
||||
goto MODE_RST;
|
||||
}
|
||||
rt_thread_delay (100);
|
||||
// 读取IO 状态
|
||||
}
|
||||
|
||||
|
||||
rt_thread_delay (100);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void dtu_service_tx (char * buff, int size)
|
||||
{
|
||||
rt_memcpy (g_dtuDrv.txbuff, buff, size);
|
||||
g_dtuDrv.tx_size = size;
|
||||
rt_event_send (gTrigEvents, EVENT_TRIG_NETMODE_TX1) ;
|
||||
}
|
||||
|
||||
void dtu_netreset (void)
|
||||
{
|
||||
rt_event_send (gTrigEvents, EVENT_TRIG_NETMODE_RST) ;
|
||||
}
|
||||
|
||||
void DTUThreadStart (void)
|
||||
@@ -88,7 +130,6 @@ void DTUThreadStart (void)
|
||||
sizeof (thread_stack),
|
||||
DTU_THREAD_PRIORITY, DTU_THREAD_TIMESLICE);
|
||||
rt_thread_startup (&dtu_thread);
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user