11.12:添加信号量同步机制;完成网关节点对环境节点的执行器控制功能。
This commit is contained in:
@@ -84,7 +84,112 @@ void vLoRaToGateExeIdPkt(uint8_t ucExeId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void vLoRaReceivedMesg(void)
|
eLoRaMsgRecStatus xLoRaMessageReceived(uint8_t *pucData)
|
||||||
{
|
{
|
||||||
|
switch (*pucData)
|
||||||
|
{
|
||||||
|
case 0xD1:
|
||||||
|
/* code */
|
||||||
|
return statusNode1;
|
||||||
|
|
||||||
|
case 0xD2:
|
||||||
|
return statusNode2;
|
||||||
|
|
||||||
|
case 0xFA:
|
||||||
|
return statusExeLed;
|
||||||
|
|
||||||
|
case 0xFB:
|
||||||
|
return statusExeFan;
|
||||||
|
|
||||||
|
case 0xFC:
|
||||||
|
return statusExeHumidifier;
|
||||||
|
|
||||||
|
case 0xFD:
|
||||||
|
return statusExeBuzzer;
|
||||||
|
|
||||||
|
case 0xFE:
|
||||||
|
return statusExeServo;
|
||||||
|
|
||||||
|
case 0x01:
|
||||||
|
return statusExeOn;
|
||||||
|
|
||||||
|
case 0x00:
|
||||||
|
return statusExeOff;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return statusNode1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeId, uint8_t ucDataRecExeSta)
|
||||||
|
{
|
||||||
|
switch (xLoRaMessageReceived(&ucDataRecNodeId))
|
||||||
|
{
|
||||||
|
case statusNode1:
|
||||||
|
/* code */
|
||||||
|
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOn)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeLed)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusLedOn;
|
||||||
|
} else if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeFan)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusFanOn;
|
||||||
|
} else if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeHumidifier)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusHumidifierOn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOff)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeLed)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusLedOff;
|
||||||
|
} else if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeFan)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusFanOff;
|
||||||
|
} else if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeHumidifier)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusHumidifierOff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case statusNode2:
|
||||||
|
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOn)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeBuzzer)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusBuzzerOn;
|
||||||
|
} else if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeServo)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusServoOn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (xLoRaMessageReceived(&ucDataRecExeSta) == statusExeOff)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeBuzzer)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusBuzzerOff;
|
||||||
|
} else if (xLoRaMessageReceived(&ucDataRecExeId) == statusExeServo)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
return statusServoOff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return statusNode1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "USART3.h"
|
#include "USART3.h"
|
||||||
|
|
||||||
#define LORA_MODE
|
// #define LORA_MODE
|
||||||
|
|
||||||
/* LoRa<52>ľ<EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD> */
|
/* LoRa<52>ľ<EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD> */
|
||||||
#define LORA_MODE_INIT 1
|
#define LORA_MODE_INIT 1
|
||||||
@@ -36,6 +36,29 @@
|
|||||||
|
|
||||||
/* LoRa<52><61>ֲ<EFBFBD><D6B2> */
|
/* LoRa<52><61>ֲ<EFBFBD><D6B2> */
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
statusGatawayNode = 1,
|
||||||
|
statusNode1,
|
||||||
|
statusNode2,
|
||||||
|
statusExeLed,
|
||||||
|
statusExeFan,
|
||||||
|
statusExeHumidifier,
|
||||||
|
statusExeBuzzer,
|
||||||
|
statusExeServo,
|
||||||
|
statusExeOn,
|
||||||
|
statusExeOff,
|
||||||
|
statusLedOn,
|
||||||
|
statusLedOff,
|
||||||
|
statusFanOn,
|
||||||
|
statusFanOff,
|
||||||
|
statusHumidifierOn,
|
||||||
|
statusHumidifierOff,
|
||||||
|
statusBuzzerOn,
|
||||||
|
statusBuzzerOff,
|
||||||
|
statusServoOn,
|
||||||
|
statusServoOff
|
||||||
|
}eLoRaMsgRecStatus;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t ucLoRaGateAddrHigh;
|
uint8_t ucLoRaGateAddrHigh;
|
||||||
uint8_t ucLoRaGateAddrLow;
|
uint8_t ucLoRaGateAddrLow;
|
||||||
@@ -129,6 +152,8 @@ void vLoRaConnectionPkt(uint8_t ucNodeId);
|
|||||||
void vLoRaToGateIdPkt(uint8_t ucNodeId);
|
void vLoRaToGateIdPkt(uint8_t ucNodeId);
|
||||||
void vLoRaToGateSenIdPkt(uint8_t ucSensorId);
|
void vLoRaToGateSenIdPkt(uint8_t ucSensorId);
|
||||||
void vLoRaToGateExeIdPkt(uint8_t ucExecutorId);
|
void vLoRaToGateExeIdPkt(uint8_t ucExecutorId);
|
||||||
void vLoRaReceivedMesg(void);
|
eLoRaMsgRecStatus xLoRaMessageReceived(uint8_t *pucData);
|
||||||
|
eLoRaMsgRecStatus xLoRaMsgProcess(uint8_t ucDataRecNodeId, uint8_t ucDataRecExeId, uint8_t ucDataRecExeSta);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<EFBFBD><EFBFBD>Ŀʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD>Ŀʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㣺=
|
һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㣺
|
||||||
1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>led״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʪ<EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽڵ㴫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>led״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʪ<EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽڵ㴫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>ʪ<EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD>У<EFBFBD>ͬʱ<EFBFBD>½<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>ʪ<EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD>У<EFBFBD>ͬʱ<EFBFBD>½<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
|
||||||
<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>FreeRTOS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>api<EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>FreeRTOS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>api<EFBFBD><EFBFBD>
|
||||||
һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
|
һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
|
||||||
1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD>ʵ<EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>ڵ<EFBFBD><EFBFBD>˵ĵ<EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>FreeRTOS<EFBFBD>У<EFBFBD>ʱ<EFBFBD><EFBFBD>ԴƵ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨Ϊ1kHz(#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ))<29><>ʱ<EFBFBD><CAB1>Ƭ1tickҲ<6B><D2B2><EFBFBD><EFBFBD>1ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>Ƭ<EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>У<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯʽ<D1AF><CABD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC>ϸ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֵ<EFBFBD>ϸߣ<CFB8><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռʽ<D5BC><CABD><EFBFBD>ȡ<EFBFBD><C8A1>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ飬<C6BF><E9A3AC><EFBFBD><EFBFBD>TCB<43><42>TCB<43><42><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ὣ<F2A3ACBB><E1BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>뱣<EFBFBD>浽<EFBFBD><E6B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD>Ҳ<EFA3AC><D2B2><EFBFBD>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD>ԭ<EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>FreeRTOS<4F><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ4<CEAA><34>״̬<D7B4><CCAC><EFBFBD>ֱ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵽<EFBFBD><EBB5BD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪<EFBFBD><D6AA><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><F1B1BBB8><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳͬ<D2B2><CDAC><EFBFBD><EFBFBD>
|
1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD>ʵ<EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>ڵ<EFBFBD><EFBFBD>˵ĵ<EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>FreeRTOS<EFBFBD>У<EFBFBD>ʱ<EFBFBD><EFBFBD>ԴƵ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨Ϊ1kHz(#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ))<29><>ʱ<EFBFBD><CAB1>Ƭ1tickҲ<6B><D2B2><EFBFBD><EFBFBD>1ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>Ƭ<EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>У<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯʽ<D1AF><CABD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC>ϸ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֵ<EFBFBD>ϸߣ<CFB8><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռʽ<D5BC><CABD><EFBFBD>ȡ<EFBFBD><C8A1>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ飬<C6BF><E9A3AC><EFBFBD><EFBFBD>TCB<43><42>TCB<43><42><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ὣ<F2A3ACBB><E1BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>뱣<EFBFBD>浽<EFBFBD><E6B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD>Ҳ<EFA3AC><D2B2><EFBFBD>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD>ԭ<EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>FreeRTOS<4F><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ4<CEAA><34>״̬<D7B4><CCAC><EFBFBD>ֱ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵽<EFBFBD><EBB5BD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪<EFBFBD><D6AA><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><F1B1BBB8><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳͬ<D2B2><CDAC><EFBFBD><EFBFBD>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -153,13 +153,38 @@
|
|||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>xReturn</ItemText>
|
<ItemText>ucBufferRecFromIsr</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>1</count>
|
<count>1</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>ucBufferRecFromIsr</ItemText>
|
<ItemText>ucBufferRecFromIsr</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ucBufferRecFromIsr</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>3</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>statusExeLedOn</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>4</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ucStatus</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>5</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>pucData</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>6</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ucBufferRecFromIsr</ItemText>
|
||||||
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
@@ -1095,7 +1120,7 @@
|
|||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>FreeRTOS/inc</GroupName>
|
<GroupName>FreeRTOS/inc</GroupName>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#include "stm32f10x.h" // Device header
|
#include "stm32f10x.h" // Device header
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "queue.h"
|
#include "queue.h"
|
||||||
// #include "semphr.h"
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -15,13 +14,6 @@
|
|||||||
#define USART3_GPIO_PIN_ATK_MD0 GPIO_Pin_3 // PB3
|
#define USART3_GPIO_PIN_ATK_MD0 GPIO_Pin_3 // PB3
|
||||||
#define USART3_QUEUE_LENGTH 256
|
#define USART3_QUEUE_LENGTH 256
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
/* data */
|
|
||||||
uint8_t *ucRxBuffer;
|
|
||||||
uint8_t ucIndex;
|
|
||||||
}Usart3RecBuffer_t;
|
|
||||||
|
|
||||||
extern QueueHandle_t xQueueUsart3ReHdlr;
|
extern QueueHandle_t xQueueUsart3ReHdlr;
|
||||||
|
|
||||||
void vUsart3Init(uint32_t ulUsart3Baudrate);
|
void vUsart3Init(uint32_t ulUsart3Baudrate);
|
||||||
|
|||||||
@@ -14,12 +14,16 @@ TaskHandle_t xStateLedTaskHdlr;
|
|||||||
TaskHandle_t xDht11TaskHdlr;
|
TaskHandle_t xDht11TaskHdlr;
|
||||||
TaskHandle_t xRelayCtrlTaskHdlr;
|
TaskHandle_t xRelayCtrlTaskHdlr;
|
||||||
TaskHandle_t xLoRaToGateTskHdlr;
|
TaskHandle_t xLoRaToGateTskHdlr;
|
||||||
TaskHandle_t xLoRaRecMsgTskHdlr;
|
TaskHandle_t xLoRaMsgRecTskHdlr;
|
||||||
QueueHandle_t xQueueUsart3ReHdlr;
|
|
||||||
|
|
||||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD> */
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD> */
|
||||||
QueueHandle_t xQueueTempHdlr;
|
QueueHandle_t xQueueTempHdlr;
|
||||||
QueueHandle_t xQueueHumiHdlr;
|
QueueHandle_t xQueueHumiHdlr;
|
||||||
|
QueueHandle_t xQueueUsart3ReHdlr;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
SemaphoreHandle_t xSemLedOnHandler;
|
||||||
|
SemaphoreHandle_t xSemLedOffHandler;
|
||||||
|
|
||||||
/* <20><>˸LED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD>NULL<4C><4C> */
|
/* <20><>˸LED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD>NULL<4C><4C> */
|
||||||
void vStateLedTask(void *pvParameters)
|
void vStateLedTask(void *pvParameters)
|
||||||
@@ -42,11 +46,9 @@ void vDht11Task(void *pvParameters)
|
|||||||
if (vDht11Init() != 0)
|
if (vDht11Init() != 0)
|
||||||
{
|
{
|
||||||
/* <20><>ʼ<EFBFBD><CABC>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* <20><>ʼ<EFBFBD><CABC>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
// vUsart3Printf("DHT11 Init Failed\r\n.");
|
|
||||||
ucSendTempData = ucSendHumiData = 0xAA;
|
ucSendTempData = ucSendHumiData = 0xAA;
|
||||||
xQueueSend(xQueueTempHdlr, &ucSendTempData, pdMS_TO_TICKS(10));
|
xQueueSend(xQueueTempHdlr, &ucSendTempData, pdMS_TO_TICKS(10));
|
||||||
xQueueSend(xQueueHumiHdlr, &ucSendHumiData, pdMS_TO_TICKS(10));
|
xQueueSend(xQueueHumiHdlr, &ucSendHumiData, pdMS_TO_TICKS(10));
|
||||||
// vTaskDelay(50);
|
|
||||||
}
|
}
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
@@ -55,53 +57,29 @@ void vDht11Task(void *pvParameters)
|
|||||||
{
|
{
|
||||||
/* code */
|
/* code */
|
||||||
ucSendTempData = xDHT11Data.ucTemp;
|
ucSendTempData = xDHT11Data.ucTemp;
|
||||||
// vTaskDelay(50);
|
|
||||||
ucSendHumiData = xDHT11Data.ucHumi;
|
ucSendHumiData = xDHT11Data.ucHumi;
|
||||||
// vTaskDelay(50);
|
|
||||||
/* д<><D0B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飩<EFBFBD><E9A3A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵȴ<C4B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵȴ<C4B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ϵͳĬ<CDB3><C4AC>ʱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>Ϊ<CEAA><D7BC> */
|
/* д<><D0B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飩<EFBFBD><E9A3A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵȴ<C4B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĵȴ<C4B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ϵͳĬ<CDB3><C4AC>ʱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>Ϊ<CEAA><D7BC> */
|
||||||
xQueueSend(xQueueTempHdlr, &ucSendTempData, pdMS_TO_TICKS(10));
|
xQueueSend(xQueueTempHdlr, &ucSendTempData, pdMS_TO_TICKS(10));
|
||||||
xQueueSend(xQueueHumiHdlr, &ucSendHumiData, pdMS_TO_TICKS(10));
|
xQueueSend(xQueueHumiHdlr, &ucSendHumiData, pdMS_TO_TICKS(10));
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
// vUsart3Printf("DHT11 Read Data Failed\r\n.");
|
|
||||||
ucSendTempData = ucSendHumiData = 0xAB;
|
ucSendTempData = ucSendHumiData = 0xAB;
|
||||||
// vTaskDelay(50);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void vLoRaRecMsgTask(void *pvParameters)
|
|
||||||
{
|
|
||||||
uint8_t ucBufferRecFromIsr[128] = {0};
|
|
||||||
static uint32_t ulLastSendTime = 0;
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
if (xQueueReceive(xQueueUsart3ReHdlr, ucBufferRecFromIsr, pdMS_TO_TICKS(10)) == pdTRUE)
|
|
||||||
{
|
|
||||||
// ֻ<>г<EFBFBD><D0B3><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>û<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD>
|
|
||||||
if ((xTaskGetTickCount() - ulLastSendTime) > pdMS_TO_TICKS(1000))
|
|
||||||
{
|
|
||||||
vLoRaConnectionPkt(xLoRaGateConfig.ucLoRaGateChannel);
|
|
||||||
vTaskDelay(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
vUsart3SendArray(ucBufferRecFromIsr, 1);
|
|
||||||
ulLastSendTime = xTaskGetTickCount();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void vLoRaToGatePktTask(void *pvParameters)
|
void vLoRaToGatePktTask(void *pvParameters)
|
||||||
{
|
{
|
||||||
uint8_t ucRecTempData = 0;
|
uint8_t ucRecTempData = 0;
|
||||||
uint8_t ucRecHumiData = 0;
|
uint8_t ucRecHumiData = 0;
|
||||||
|
uint8_t testData = 0xAC;
|
||||||
|
uint8_t ledOff = 0xAD;
|
||||||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ճɹ<D5B3> */
|
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ճɹ<D5B3> */
|
||||||
BaseType_t xQueueTempRetval, xQueueHumiRetval;
|
BaseType_t xQueueTempRetval, xQueueHumiRetval;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
/* code */
|
/* code */
|
||||||
/* <20><><EFBFBD>ն<EFBFBD><D5B6>У<EFBFBD><D0A3><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵȴ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ0<EFBFBD><EFBFBD>0~portMAX_DELAY<41><59>portMAX_DELAY<41><59><EFBFBD>֣<EFBFBD><D6A3>ֱ<EFBFBD><D6B1><EFBFBD>Ӧ
|
/* <20><><EFBFBD>ն<EFBFBD><D5B6>У<EFBFBD><D0A3><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵȴ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ0<EFBFBD><EFBFBD>0~portMAX_DELAY<41><59>portMAX_DELAY<41><59><EFBFBD>֣<EFBFBD><D6A3>ֱ<EFBFBD><D6B1><EFBFBD>Ӧ
|
||||||
* һ<>㲻<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䡣<EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3>ý<EFBFBD><C3BD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>
|
* һ<>㲻<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䡣<EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3>ý<EFBFBD><C3BD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>
|
||||||
*/
|
*/
|
||||||
xQueueTempRetval = xQueueReceive(xQueueTempHdlr, &ucRecTempData, pdMS_TO_TICKS(10));
|
xQueueTempRetval = xQueueReceive(xQueueTempHdlr, &ucRecTempData, pdMS_TO_TICKS(10));
|
||||||
@@ -116,23 +94,63 @@ void vLoRaToGatePktTask(void *pvParameters)
|
|||||||
/* code */
|
/* code */
|
||||||
vUsart3SendArray(&ucRecTempData, 1);
|
vUsart3SendArray(&ucRecTempData, 1);
|
||||||
vUsart3SendArray(&ucRecHumiData, 1);
|
vUsart3SendArray(&ucRecHumiData, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (xSemaphoreTake(xSemLedOnHandler, pdMS_TO_TICKS(10)) == pdTRUE)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
vUsart3SendArray(&testData, 1);
|
||||||
|
vPc13LedOn();
|
||||||
|
}
|
||||||
|
else if (xSemaphoreTake(xSemLedOffHandler, pdMS_TO_TICKS(10)) == pdTRUE)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
vUsart3SendArray(&ledOff, 1);
|
||||||
|
vPc13LedOff();
|
||||||
|
}
|
||||||
|
|
||||||
vTaskDelay(1000);
|
vTaskDelay(1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void vTasksList(void)
|
void vLoRaMsgRecTask(void *pvParameters)
|
||||||
|
{
|
||||||
|
uint8_t ucDataRecNodeId = 0, ucDataRecExeId = 0, ucDataRecExeSta = 0;
|
||||||
|
uint8_t ucRetvalQueueNodeId = 0, ucRetvalQueueExeId = 0, ucRetvalQueueExeSta = 0;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
ucRetvalQueueNodeId = xQueueReceive(xQueueUsart3ReHdlr, &ucDataRecNodeId, portMAX_DELAY);
|
||||||
|
ucRetvalQueueExeId = xQueueReceive(xQueueUsart3ReHdlr, &ucDataRecExeId, portMAX_DELAY);
|
||||||
|
ucRetvalQueueExeSta = xQueueReceive(xQueueUsart3ReHdlr, &ucDataRecExeSta, portMAX_DELAY);
|
||||||
|
while (ucRetvalQueueNodeId == pdTRUE && ucRetvalQueueExeId == pdTRUE && ucRetvalQueueExeSta == pdTRUE)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
if (xLoRaMsgProcess(ucDataRecNodeId, ucDataRecExeId, ucDataRecExeSta) == statusLedOn)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
xSemaphoreGive(xSemLedOnHandler);
|
||||||
|
} else if (xLoRaMsgProcess(ucDataRecNodeId, ucDataRecExeId, ucDataRecExeSta) == statusLedOff)
|
||||||
|
{
|
||||||
|
/* code */
|
||||||
|
xSemaphoreGive(xSemLedOffHandler);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void vCreateTasksList(void)
|
||||||
{
|
{
|
||||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> */
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> */
|
||||||
// taskENTER_CRITICAL();
|
// taskENTER_CRITICAL();
|
||||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1A3ACB2><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ջ<EFBFBD><D5BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1A3ACB2><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ջ<EFBFBD><D5BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
xTaskCreate(
|
// xTaskCreate(
|
||||||
(TaskFunction_t ) vStateLedTask,
|
// (TaskFunction_t ) vStateLedTask,
|
||||||
(char * ) "TaskName_StateLed",
|
// (char * ) "TaskName_StateLed",
|
||||||
(configSTACK_DEPTH_TYPE) 512,
|
// (configSTACK_DEPTH_TYPE) 512,
|
||||||
(void * ) NULL,
|
// (void * ) NULL,
|
||||||
(UBaseType_t ) 2,
|
// (UBaseType_t ) 2,
|
||||||
(TaskHandle_t * ) &xStateLedTaskHdlr);
|
// (TaskHandle_t * ) &xStateLedTaskHdlr);
|
||||||
xTaskCreate(
|
xTaskCreate(
|
||||||
(TaskFunction_t ) vDht11Task,
|
(TaskFunction_t ) vDht11Task,
|
||||||
(char * ) "TaskName_DHT11",
|
(char * ) "TaskName_DHT11",
|
||||||
@@ -148,17 +166,17 @@ void vTasksList(void)
|
|||||||
(UBaseType_t ) 2,
|
(UBaseType_t ) 2,
|
||||||
(TaskHandle_t * ) &xLoRaToGateTskHdlr);
|
(TaskHandle_t * ) &xLoRaToGateTskHdlr);
|
||||||
xTaskCreate(
|
xTaskCreate(
|
||||||
(TaskFunction_t ) vLoRaRecMsgTask,
|
(TaskFunction_t ) vLoRaMsgRecTask,
|
||||||
(char * ) "TaskName_LoRaReceivedMessage",
|
(char * ) "TaskName_LoRaReceivedMessage",
|
||||||
(configSTACK_DEPTH_TYPE) 512,
|
(configSTACK_DEPTH_TYPE) 512,
|
||||||
(void * ) NULL,
|
(void * ) NULL,
|
||||||
(UBaseType_t ) 2,
|
(UBaseType_t ) 2,
|
||||||
(TaskHandle_t * ) &xLoRaRecMsgTskHdlr);
|
(TaskHandle_t * ) &xLoRaMsgRecTskHdlr);
|
||||||
/* <20>˳<EFBFBD><CBB3>ٽ<EFBFBD><D9BD><EFBFBD> */
|
/* <20>˳<EFBFBD><CBB3>ٽ<EFBFBD><D9BD><EFBFBD> */
|
||||||
// taskEXIT_CRITICAL();
|
// taskEXIT_CRITICAL();
|
||||||
}
|
}
|
||||||
|
|
||||||
void vMainQueuesList(void)
|
void vCreateQueuesList(void)
|
||||||
{
|
{
|
||||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6>еij<D0B5><C4B3><EFBFBD>,Ҳ<><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4>Ŷ<EFBFBD><C5B6>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>ݣ<EFBFBD>
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƕ<EFBFBD><C7B6>еij<D0B5><C4B3><EFBFBD>,Ҳ<><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4>Ŷ<EFBFBD><C5B6>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>ݣ<EFBFBD>
|
||||||
* <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݵĴ<DDB5>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λΪ<CEBB>ֽڣ<D6BD><DAA3><EFBFBD>stm32<33><32>uint8_tָ<74><D6B8><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>4<EFBFBD>ֽڡ<D6BD>
|
* <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݵĴ<DDB5>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λΪ<CEBB>ֽڣ<D6BD><DAA3><EFBFBD>stm32<33><32>uint8_tָ<74><D6B8><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>4<EFBFBD>ֽڡ<D6BD>
|
||||||
@@ -170,7 +188,7 @@ void vMainQueuesList(void)
|
|||||||
(UBaseType_t) 5,
|
(UBaseType_t) 5,
|
||||||
(UBaseType_t) sizeof(uint8_t));
|
(UBaseType_t) sizeof(uint8_t));
|
||||||
xQueueUsart3ReHdlr = xQueueCreate(
|
xQueueUsart3ReHdlr = xQueueCreate(
|
||||||
(UBaseType_t) 128,
|
(UBaseType_t) 64,
|
||||||
(UBaseType_t) sizeof(uint8_t *));
|
(UBaseType_t) sizeof(uint8_t *));
|
||||||
if (xQueueTempHdlr == NULL || xQueueHumiHdlr == NULL || xQueueUsart3ReHdlr == NULL)
|
if (xQueueTempHdlr == NULL || xQueueHumiHdlr == NULL || xQueueUsart3ReHdlr == NULL)
|
||||||
{
|
{
|
||||||
@@ -179,14 +197,21 @@ void vMainQueuesList(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vCreateSemaphoreList(void)
|
||||||
|
{
|
||||||
|
xSemLedOnHandler = xSemaphoreCreateBinary();
|
||||||
|
xSemLedOffHandler = xSemaphoreCreateBinary();
|
||||||
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
vFanRelayInit();
|
vFanRelayInit();
|
||||||
vDelayInit();
|
vDelayInit();
|
||||||
vPc13LedInit();
|
vPc13LedInit();
|
||||||
vUsart3Init(115200);
|
vUsart3Init(115200);
|
||||||
vMainQueuesList();
|
vCreateQueuesList();
|
||||||
vTasksList();
|
vCreateSemaphoreList();
|
||||||
|
vCreateTasksList();
|
||||||
vTaskStartScheduler();
|
vTaskStartScheduler();
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user