From 9063f9d65db1079688ac2d993eefe26891a9d733 Mon Sep 17 00:00:00 2001 From: yuliang Date: Thu, 10 Jul 2025 08:37:20 +0800 Subject: [PATCH] =?UTF-8?q?FIX=20|=20=E6=B7=BB=E5=8A=A0=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=92=8C=E8=B6=8B=E5=8A=BF=E5=8F=91=E9=80=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/include/pd_dau.h | 2 ++ app/lib/a_process/pd_dau.c | 10 +++++++++- app/lib/a_process/pd_hf.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/include/pd_dau.h b/app/include/pd_dau.h index d7ce4fa..ed2f953 100755 --- a/app/include/pd_dau.h +++ b/app/include/pd_dau.h @@ -106,7 +106,9 @@ enum DAU_SEND_TYPE DAU_SEND_PORT_SET = 10, DAU_SEND_PORT_GET = 11, DAU_SEND_PRPS_GET = 12, + DAU_SEND_TREND = 13, DAU_SEND_PRPS = 14, + DAU_SEND_EVENT = 15, DAU_SEND_MAX }; diff --git a/app/lib/a_process/pd_dau.c b/app/lib/a_process/pd_dau.c index 1a64f4e..7f092ae 100755 --- a/app/lib/a_process/pd_dau.c +++ b/app/lib/a_process/pd_dau.c @@ -585,10 +585,18 @@ int32_t dau_msg_send(uint32_t type, uint8_t slot, void *data) uint32_t fifo = 0; dau_send_msg_t msg; - if (DAU_SEND_PRPS == type) + if (DAU_SEND_TREND == type) + { + fifo = csg.fifo_trend_id; + } + else if (DAU_SEND_PRPS == type) { fifo = csg.fifo_prps_id; } + else if (DAU_SEND_EVENT == type) + { + fifo = csg.fifo_event_id; + } else { DBG(DBG_M_PD_DAU_ERR, "DAU write ERROR! type=%d\r\n", type); diff --git a/app/lib/a_process/pd_hf.c b/app/lib/a_process/pd_hf.c index d7350d3..cee0cea 100755 --- a/app/lib/a_process/pd_hf.c +++ b/app/lib/a_process/pd_hf.c @@ -500,6 +500,7 @@ void _hf_recv_trend(uint8_t slot, char *pkt, uint16_t len) hf_trend_head_t *head_trend = (hf_trend_head_t*)(pkt + sizeof(dau_pkt_head_t)); char *data = (char*)(pkt + sizeof(dau_pkt_head_t) + sizeof(hf_trend_head_t)); char *point = NULL; + uint32_t *temp = NULL; uint8_t port = 0; hf_trend_ack_t ack; hf_trend_ack_t *ack_p = (hf_trend_ack_t*)(pkt + sizeof(dau_pkt_head_t)); @@ -522,6 +523,19 @@ void _hf_recv_trend(uint8_t slot, char *pkt, uint16_t len) //printh("vport %d index %d utc %d max %d\r\n", head_trend->vport, trend->col.index, trend->col.utc, trend->col.port[port].max); //printh("avg %d cnt %d phase %d noise %d\r\n", trend->col.port[port].avg, trend->col.port[port].cnt, trend->col.port[port].phase, trend->col.port[port].noise); //printh("event_cnt %d\r\n", trend->col.port[port].event_cnt); + temp = XMALLOC_Q(MTYPE_CSG, sizeof(uint32_t)); + if (!temp) + { + DBG(DBG_M_PD_HF_ERR, "XMALLOC ERROR!\r\n"); + return; + } + *temp = 0x5a5a; + + /* 发送给后台, 内存由后台释放 */ + if (dau_msg_send(DAU_SEND_TREND, slot, temp) != E_NONE) + { + return; + } } } else if (HF_TREND_TYPE_PRPD == head_trend->type) @@ -610,6 +624,7 @@ void _hf_recv_event(uint8_t slot, char *pkt, uint16_t len) dau_t *dau = &daus[slot]; hf_data_t *hf_data = (hf_data_t*)dau->private_data; hf_event_t *event = &hf_data->event; + hf_event_t *event_send = NULL; dau_pkt_head_t *head = (dau_pkt_head_t*)pkt; hf_event_head_t *head_event = (hf_event_head_t*)(pkt + sizeof(dau_pkt_head_t)); char *data = (char*)(pkt + sizeof(dau_pkt_head_t) + sizeof(hf_event_head_t)); @@ -648,6 +663,21 @@ void _hf_recv_event(uint8_t slot, char *pkt, uint16_t len) //printh("vport %d power_fre %d type %d max %d\r\n", event->head.vport, event->head.power_fre, event->head.type, event->head.max); //printh("identifier %d utc %d cnt %d avg %d\r\n", event->head.identifier, event->head.utc, event->head.cnt, event->head.avg); //printh("point_cnt %d\r\n\n", event->head.point_cnt); + /* 申请内存 */ + event_send = XMALLOC_Q(MTYPE_CSG, sizeof(hf_event_t)); + if (!event_send) + { + DBG(DBG_M_PD_HF_ERR, "XMALLOC ERROR!\r\n"); + return; + } + + memcpy(event_send, event, sizeof(hf_event_t)); + + /* 发送给后台, 内存由后台释放 */ + if (dau_msg_send(DAU_SEND_EVENT, slot, event_send) != E_NONE) + { + return; + } } }