51 lines
1.4 KiB
C
51 lines
1.4 KiB
C
|
|
/*
|
||
|
|
* Copyright (c) CompanyNameMagicTag 2019-2020. All rights reserved.
|
||
|
|
* Description: MRS sta 645 handle.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include "mrs_sta_645.h"
|
||
|
|
#include "mrs_sta_srv.h"
|
||
|
|
#include "mrs_msg.h"
|
||
|
|
#include "mrs_proto_645.h"
|
||
|
|
#include "mrs_common_tools.h"
|
||
|
|
#include "mrs_dfx.h"
|
||
|
|
|
||
|
|
#if defined(PRODUCT_CFG_PRODUCT_TYPE_STA)
|
||
|
|
/* processing for 645 frame recieving from serial ports */
|
||
|
|
td_void mrs_msg_on_app_frame_rx_645(EXT_CONST mrs_queue_msg *msg)
|
||
|
|
{
|
||
|
|
td_pbyte data = (td_pbyte)msg->param1;
|
||
|
|
td_u16 length = msg->param0;
|
||
|
|
mrs_sta_srv_ctx *sta = mrs_sta_get_srv_ctx();
|
||
|
|
mrs_mr_queue_item *item = (mrs_mr_queue_item *)mrs_queue_top(&sta->mr_queue.mr_queue);
|
||
|
|
|
||
|
|
mrs_dfx_uart_chl_rx(data, length, TD_TRUE);
|
||
|
|
mrs_dfx_uart_chl_rx_frame(length, EXT_ERR_SUCCESS, TD_TRUE);
|
||
|
|
|
||
|
|
if (item == TD_NULL) {
|
||
|
|
mrs_free(data);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (item->rx_handle != TD_NULL) {
|
||
|
|
item->rx_handle(item, data, length);
|
||
|
|
}
|
||
|
|
|
||
|
|
mrs_timer_stop(MRS_TIMER_ID_STA_TTL);
|
||
|
|
mrs_free(data);
|
||
|
|
|
||
|
|
mrs_sta_try_dequeue(&sta->mr_queue);
|
||
|
|
}
|
||
|
|
|
||
|
|
td_bool mrs_proto_is_rcv_p2p_pkt_by_dest_mac(EXT_CONST td_u8 *dest_mac, td_u8 mac_len)
|
||
|
|
{
|
||
|
|
if (dest_mac == TD_NULL || mac_len != EXT_PLC_MAC_ADDR_LEN) {
|
||
|
|
return TD_FALSE;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* defination */
|
||
|
|
return mrs_is_wild_mac(dest_mac);
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif /* defined(PRODUCT_CFG_PRODUCT_TYPE_STA) */
|