【VREP】remoteAPI制作vs工程流程,Freertos在VS2019实现流程及问题解决办法,

前言

  这篇文章是用于freertos系统能够在vs2019上实现,并且加入Vrep的remoteAPI,最终是为了能够使得仿真的代码能直接倒是移植到单片机上,stm32上也是搭载的freertos,这样会少很多衔接工作

   这篇博文介绍了freertos载入vs2019工程的全过程与问题解决

一、Freertos在vs2019的实现(如果只看VS2019与coppeliasim的连接直接跳到第二部分即可)

1.下载freertos示例,根据示例展开移植

链接为:FreeRTOS Documentation

点击Book companion source code即可下载。

2.vs2019中创建空工程test 

打开下载的解压包中复制如下到工程根目录

至于FreeRTOSConfig.h,这是frertos配置文件,我们也不一定需要自己配,可以打开example,里面许多示例,你可以现在vs中每个例子运行的看看,那个是你当前需要的,这样直接复制其目录下的两个文件到工程test根目录

此时文件部分就ok了,接下转入vs中进行设置

3.设置链接头文件

打开项目/属性

点击到这里在  附加包含目录内添加以下路径

$(ProjectDir)\

$(ProjectDir)Supporting_Functions\

$(ProjectDir)FreeRTOS_Source\include\

$(ProjectDir)FreeRTOS_Source\portable\MSVC-MingW\

 在c/c++/处理器/预处理器定义添加

WIN32
_DEBUG
_CONSOLE
_CRT_SECURE_NO_WARNINGS
DO_NOT_USE_SHARED_MEMORY
NON_MATLAB_PARSING
MAX_EXT_API_CONNECTIONS=255

4.添加资源文件

添加Freertos文件夹(就是筛选器)

里面加入Freertos_Source内的所有文件如下图

然后再头文件源文件内添加现有项,main.h可有可无,是我后期自己加的

5.编译运行

编译一下,我当时选择的FreeRTOSConfig.h是example008里的,也就是第八个例子,发现报错

 定位过去

 意思是这两个参数配置不能一个是1一个是0,于是我转到INCLUDE_xTimerPendFunctionCall将它定义成0就好了

如果用的其它例子可能有其它问题,可以自己修改配置文件FreeRTOSConfig.h解决

示例八运行成功

二、Vrep在vs2019的实现(基于freertos)

1.先找到remoteapi的资源文件位置:

C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib

目录内长这样,其实就是个vs的例子,我这里已经运行过给,所以多了一些文件,第一次进去首先选择64位或者32位的程序,如果你需要和其他有些模块一起用的话,比如我这里需要和freertos一起用,而它是32位的,如果你知识用remoteAPI控制一下,那么64位和32位都行,VS支持两种编译器。

这里我选择32位的打开,vs会提示平台工具集更改新的V142,确认就行

修改项目属性的C\C++\输出文件的对象文件名为$(IntDir)%(RelativeDir)

然后编译成功即可

如果选择32位则上面那个目录里多了Release文件夹,如果64位的则多了x64\Release的文件夹,里面就是我们对应的库

2.复制文件

 这三个文件夹复制到刚刚创建的vs工程内,可以是freertos的那个工程,也可以是单纯的新工程,新建个文件夹RemoteAPI_Source,放进去

32位

然后回去最初找的文件夹,C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib,进入Release文件夹,复制上面目录地址

64位

然后回去最初找的文件夹,C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib,进入Debug\Release文件夹,复制上面目录地址

  然后进入电脑,系统高级设置\环境变量

 3.vs内配置

第四步完了后输入链接库的地址,就是当时复制过的的dll文件的所在目录,记得自己验证一下目录自己的电脑里存不存在

32位

C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib\Release

64位就是

C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib\x64\Release 


在c/c++内的常规添加RemoteAPI的头文件目录,就是第二步复制过去的三个文件夹,都加入,$(ProjectDir)的意思就是工程的根目录,这样添加地址可以之后移动工程位置时候保持这些目录地址都存在,记得下面计算的值可以复制出来验证一下你的地址对不对。

$(ProjectDir)RemoteAPI_Source\
$(ProjectDir)RemoteAPI_Source\remoteApi\

$(ProjectDir)RemoteAPI_Source\include\

$(ProjectDir)RemoteAPI_Source\common\


修改项目属性的C\C++\输出文件的对象文件名为$(IntDir)%(RelativeDir)


然后在main.c内添加头文件

#include"extApi.h"

编译,如果没有报错说明成功了,然后就是vrep仿真的内容了

测试:

添加main文件内容如下,同时打开vrep随便一个世界,编译代码通过后点击vs2019的运行

#include"extApi.h"
#include "stdio.h"
int main() {
	int ID = simxStart("127.0.0.1", 19997, 1, 1, 1000, 5);

	if (ID != -1) {
		printf("susseful");
		simxStartSimulation(ID, simx_opmode_oneshot);
	}
	while (1) {

	}
}

如果查看vrep中如图所示开始运行了,说明连接成功

 

三、问题解决

1.报错.dll无法打开

dll链接库出错,仔细检查这个库目录内的地址,善用之前说的那个计算的值,是实际电脑的目录,可以复制到文件管理器跳转去看看,地址下是否存在dll文件

2.头文件"extApi.h"不存在

也是库连接出错,可能也是资源文件没有添加到位,仔细检查目录地址,下图目录添加的是头文件目录,检查地址是否出错,注意看下“计算的值“就是你输入完的地址

注意!!!!VS内的编译器,如图是64位编译器

 32位编译器就是x86

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LANLANLAN_hust

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值