TI AoA Master/PC 数据发送、接收流程梳理

1、Master怎样发送、接收数据?
    Master发送数据:
    RTLSHost_sendMsg(RTLS_CMD_AOA_RESULT_ANGLE, HOST_ASYNC_RSP, (uint8_t *)&aoaResult, sizeof(rtlsAoaResultAngle_t));
	uint8_t NPITask_sendToHost(_npiFrame_t *pMsg);
		NPIUtil_enqueueMsg(npiTxQueue, syncEvent, NPITASK_TX_READY_EVENT,(unsigned char *) pMsg);
            if (NPITask_events & NPITASK_TX_READY_EVENT)
            {
                NPITask_ProcessTXQ();
					NPITL_writeTL(lastQueuedTxMsg, pMsg->dataLen + NPI_MSG_HDR_LENGTH);
						transportWrite(npiTxBufLen);
						NPITLUART_writeTransport();
							UART_write(uartHandle, npiTxBuf, TransportTxLen);
            }
			 
			 
    Master接收数据:(接收AoA参数设置)
	void RTLSCtrl_processMessage(rtlsEvt_t *pMsg)           //rtls_ctrl.c
      void RTLSCtrl_processHostMessage(rtlsHostMsg_t *pHostMsg);
		RTLSCtrl_setAoaParamsCmd(pHostMsg->pData);   //Master接收到AoA参数设置命令
  		// Request RTLS App to set it's own AoA parameters
  		RTLSCtrl_callRtlsApp(RTLS_REQ_SET_AOA_PARAMS, (uint8_t *)pSetAoaConfigReq);
			gRtlsData.appCb((uint8_t *)appReq);   //调用回调下面的函数
				void RTLSMaster_rtlsCtrlMsgCb(uint8_t *cmd)
				{
  					// Enqueue the message to switch context
  					RTLSMaster_enqueueMsg(RM_EVT_RTLS_CTRL_MSG_EVT, SUCCESS, (uint8_t *)cmd);
				}
				
	static void RTLSMaster_processAppMsg(rmEvt_t *pMsg)   //rtls_master.c
		case RM_EVT_RTLS_CTRL_MSG_EVT:
    		{
         	    RTLSMaster_processRtlsCtrlMsg((uint8_t *)pMsg->pData);
					RTLSMaster_setAoaParamsReq((rtlsAoaConfigReq_t *)pReq->pData);
						// Configure AoA receiver parameters
						RTLSSrv_setConnCteReceiveParams(pConfig->connHandle,pConfig->samplingEnable,pConfig->slotDurations,pConfig->numAnt,pConfig->pAntPattern);
						// Configure sample accuracy
						RTLSSrv_setCteSampleAccuracy(pConfig->connHandle,pConfig->sampleRate,pConfig->sampleSize,pConfig->sampleRate,pConfig->sampleSize,pConfig->sampleCtrl);
    		}

2、PC是怎样接收、发送数据的?
   PC接收数据:
   devices = [{"com_port": "COM15", "baud_rate": 460800, "name": "CC26x2 Master"}]
   master_node, passive_nodes, all_nodes = rtlsUtil.set_devices(devices)                 
   
    def set_devices(self, devices_setting):
		self._start_message_receiver()
		
	def _start_message_receiver(self):
		self._message_receiver_th = threading.Thread(target=self._message_receiver)
	
    def _message_receiver(self):
        while not self._message_receiver_stop:
            # Get messages from manager
            try:
                identifier, msg_pri, msg = self._rtls_manager_subscriber.pend(block=True, timeout=0.05).as_tuple()

                self._log_incoming_msg(msg, identifier)

                if msg.command == 'RTLS_CMD_AOA_SET_PARAMS' and msg.payload.status == 'RTLS_SUCCESS':
                    sending_node.aoa_initialized = True

                if msg.command in ["RTLS_CMD_AOA_RESULT_ANGLE",
                                   "RTLS_CMD_AOA_RESULT_RAW",
                                   "RTLS_CMD_AOA_RESULT_PAIR_ANGLES"] and msg.type == "AsyncReq":
                    self.aoa_results_queue.put({
                        "name": sending_node.name,
                        "type": "aoa",
                        "identifier": identifier,
                        "payload": msg.payload
                    })

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值