获取距离测量值(范围)[D2GL]

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

大家好,

因此,作为项目的一部分,我正在使用 Distance2Gol 雷达。 我目前正在使用 C 语言的 Code:: Blocks 进行开发,我正在使用雷达提供的所有软件包软件。 该项目涉及使用3台雷达进行三角测量,以确定物体的位置。

目前,我能够连接 2 个雷达(我还没尝试连接第 3 个,因为它使用的原理与 2 个雷达相同),然后为每个雷达发送配置并获取它们的原始数据(两者中,一个接一个)。

现在我只想得到他们的距离测量值(范围)。 我知道这些信息可以通过以下功能获得:“fmcw_result_cnf_callback”但我 CAN无法让它正常工作。
你在 main.c 里用过它吗 ? 你是怎么用的? "fmcw_result_cnf_t* p_result 这个参数是什么?你从哪里得到的?"

到目前为止,还有我的 mainc.c 代码 我想在哪里实现(我想是)这个函数:

 

 

        /*---------------------------------------------------*/
        /*          RECUPERATION ET AFFICHAGE DONNEES        */
        /*---------------------------------------------------*/

        uint32_t count_radar1 = 20;

		printf("\n/*---------------------------------------------------*/\n");
		printf("/*      RECUPERATION ET AFFICHAGE DONNEES RADAR 1    */\n");
		printf("/*---------------------------------------------------*/\n");
		fflush(stdout);
		while (count_radar1)
		{
            show_result_options_t options;
            options.show_output = true;
            options.show_output_on_target = true;
            options.show_activation_data = true;
            options.show_hold_data = true;

            fmcw_result_cnf_callback(&options,protocol_handle_radar1,endpoint_d2gl,&result);

			printf("count: %d\n", count_radar1);
			Sleep(50);
//			protocol_poll_receive_once(protocol_handle_radar1);
			count_radar1--;
		}

 

我只写了 radar 1 的代码,因为两台雷达的原理是一样的。 函数 p "rotocol_poll_receive_once(protocol_handle_radar1)运行良好,所以我的 protocol_handle_ radar1 是有效的。"

谢谢大家的帮助,
亲切的问候。

0 点赞
3 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

你好 @Paul33

为了能够尽可能精确地处理您对 D2GL 的查询 ,我们正在努力重现您的要求。我会尽快向你通报最新情况。

最诚挚的问候,

Pugitha

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好 @Paul33

CAN 请简要介绍一下你的意思

fmcw_result_cnf_callback 函数无法正常 工作。 主要是打电话
默认情况下fmcw_adv_result_cnf_callback ,您 CAN 选择使用回调函数在目标上打印输出,如下所示
ep_radar_d2gl_scfmcw_set_adv_result_cb (fmcw_adv_result_cnf_callback,
&(show_result_options_t); { .show_output = true, .show_output_on_target = true, .show_activation_data = false, .show_hold_data = false}
 
通过调用  ep_radar_d2gl_scfmcw_adv_result_req , CAN 重复输出计数,如果您只需要范围数据, CAN 通过禁用  { .show_raw_data_header = false, .show_raw_data = false } 来禁用原始数据。
 
最诚挚的问候,
Pugitha
0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好 @NarraPugitha 

谢谢你的回答,现在我可以得到射程数据了!

我刚刚意识到我没有正确调用函数 "fmcw_result_cnf_cnf" _callback。 我以为它是一个函数,但看来你必须像函数 "ep_radar_d2gl_scfmcw_set_adv_result_c" b 中的参数一样传递它,正如你在答案中提到的那样。 这就是为什么它不适用于我的情况。

这是我新的 main.c 循环,它允许我连续获取两个雷达(一个接一个)的测距数据:

        /*---------------------------------------------------*/
        /*          RECUPERATION ET AFFICHAGE DONNEES        */
        /*---------------------------------------------------*/
		while (1)
		{
            show_raw_data_options_t options_raw_data;
            options_raw_data.show_raw_data = false;
            options_raw_data.show_raw_data_header = false;

            printf("\n/*---------------------------------------------------*/\n");
            printf("/*      RECUPERATION ET AFFICHAGE DONNEES RADAR 1    */\n");
            printf("/*---------------------------------------------------*/\n");
            fflush(stdout);

            ep_radar_d2gl_scfmcw_set_adv_result_cb(fmcw_adv_result_cnf_callback,&options_raw_data);
            ep_radar_d2gl_scfmcw_result_req(protocol_handle_radar1, endpoint_d2gl, 1);


            Sleep(1000);


            printf("\n/*---------------------------------------------------*/\n");
            printf("/*      RECUPERATION ET AFFICHAGE DONNEES RADAR 2    */\n");
            printf("/*---------------------------------------------------*/\n");
            fflush(stdout);

            ep_radar_d2gl_scfmcw_set_adv_result_cb(fmcw_adv_result_cnf_callback,&options_raw_data);
            ep_radar_d2gl_scfmcw_result_req(protocol_handle_radar2, endpoint_d2gl, 1);

            Sleep(1000);
		}

最好的问候,
Paul SION。

0 点赞