2. 开发环境搭建:Vector DaVinci Developer安装、配置许可、创建第一个SWC工程
好,咱们正式开始动手了。这一章我带你把吃饭的家伙先支起来——Vector DaVinci Developer。说实话,这工具我第一次用的时候也觉得有点懵,菜单多、术语多,但摸清楚套路之后,你会发现它其实挺顺手的。
2.1 安装前的准备工作
别急着双击安装包。先花五分钟检查三件事,能省掉后面一堆麻烦。
| 检查项 | 要求 | 我的建议 |
|---|---|---|
| 操作系统 | Windows 10 64位 或 Windows 11 | 别用家庭版,专业版或企业版最稳 |
| 内存 | 至少8GB,推荐16GB | 我开三个工程同时对比时,16GB都感觉有点紧 |
| 硬盘空间 | 至少20GB空闲 | 装完工具+几个工程,10GB就没了 |
| .NET Framework | 4.7.2或更高 | Windows Update打全了基本没问题 |
2.2 安装DaVinci Developer
安装过程其实不复杂,但有几个关键点我得跟你提一下。
- 以管理员身份运行安装程序。右键→"以管理员身份运行",别偷懒。
- 选择安装组件时,默认是全选的。如果你只是做SWC开发,保留核心模块就行,文档可以后面再补。
- 安装路径我建议用默认的
C:\Vector\DaVinci Developer\,别改到奇奇怪怪的地方去。 - 安装过程中会弹几次命令行窗口,那是它在注册COM组件,别关掉,等它自己跑完。
2.3 配置许可(License)
嗯,这一步是很多人卡住的地方。DaVinci Developer的许可方式有好几种,我挑最常见的两种说。
2.3.1 网络浮动许可(Network License)
公司里一般用这种。你需要拿到许可服务器的IP地址和端口号。
- 打开DaVinci Developer,第一次启动会自动弹出License配置向导。
- 选择 "Network License"。
- 输入服务器地址,格式如
@192.168.1.100(前面加@符号)。 - 点击"Test Connection",看到绿色勾就对了。
我遇到过的情况: 测试连接成功,但打开工程时还是报"No license available"。后来发现是公司VPN没连上,许可服务器根本ping不通。先确认网络连通性,再查许可。
2.3.2 本地节点锁定许可(Node-Locked License)
个人电脑或离线环境用这种。你会拿到一个 .lic 文件。
- 打开DaVinci Developer,进入 Help → License Manager。
- 点击 "Install License File"。
- 选择你的
.lic文件,确认。 - 重启工具,在Help→About里能看到许可有效期。
2.4 认识DaVinci Developer界面
安装配置搞定,咱们打开看看。第一次启动会有一个欢迎页,关掉它,咱们直接进工作区。
界面分四大块,我简单说一下:
- 工程浏览器(左):这里看到的是你的SWC、端口、Runnable、数据类型。说白了就是你的工程目录树。
- 组件设计视图(中):拖拖拽拽画SWC的地方。你在这里定义端口、连接Runnable。
- 属性面板(右):选中一个元素,这里就显示它的详细属性。比如Runnable的周期、端口的数据类型。
- 输出窗口(底):编译信息、错误提示都在这里。养成习惯,每次操作完扫一眼这里。
2.5 创建第一个SWC工程
好,重头戏来了。咱们创建一个最简单的SWC工程,感受一下整个流程。
2.5.1 新建工程
- 点击 File → New → DaVinci Project。
- 输入工程名称,比如
MyFirstSWC。 - 选择工程保存路径。记住我之前说的——不要有中文和空格。
- 点击 Finish。
几秒钟后,你会看到一个空白的工程。嗯,现在它还是个空壳子。
2.5.2 创建SWC(Software Component)
- 在工程浏览器中,右键 Components → New Component。
- 选择 ApplicationSwc 类型。这是最常用的,说白了就是你的应用逻辑所在。
- 输入名称:
SwcEngineControl。 - 点击 OK。
2.5.3 添加端口(Ports)
SWC需要跟外界通信,端口就是它的"嘴巴"和"耳朵"。
- 选中
SwcEngineControl,右键 → New Port。 - 选择 ReceiverPort(接收端口),名称填
RPort_Speed。 - 数据类型选择
uint16(16位无符号整数)。 - 同样的方式再创建一个 SenderPort(发送端口),名称
PPort_Torque,数据类型也是uint16。
你想想看,这个SWC接收车速信号,输出扭矩请求——一个最简单的控制闭环就有了。
2.5.4 添加Runnable(可运行实体)
Runnable就是SWC里真正干活儿的函数。每个Runnable有它自己的执行周期。
- 右键
SwcEngineControl→ New Runnable。 - 名称填
Runnable_10ms。 - 在属性面板中,设置 Cycle 为
0.01(单位是秒,0.01秒=10ms)。 - 把刚才的两个端口拖到Runnable上,建立连接。
我个人的习惯: Runnable的命名里带上周期,比如Runnable_10ms、Runnable_100ms。这样一看名字就知道它跑多快,不用点进去查属性。
2.5.5 生成代码框架
设计完了,让工具帮我们生成代码骨架。
- 点击工具栏上的 Generate Code 按钮(或者按
Ctrl+G)。 - 选择输出路径,一般用默认的
./generated目录。 - 点击 Generate。
生成完成后,打开输出目录,你会看到类似这样的文件结构:
MyFirstSWC/
├── generated/
│ ├── SwcEngineControl.c
│ ├── SwcEngineControl.h
│ ├── Rte_SwcEngineControl.h
│ └── Rte_SwcEngineControl.c
├── MyFirstSWC.dpa
└── MyFirstSWC.dpa.bak
打开 SwcEngineControl.c,你会看到工具已经帮你生成了Runnable的函数骨架:
/* Runnable: Runnable_10ms */
void Runnable_10ms(void)
{
/* Read received data */
uint16 Speed = Rte_Read_RPort_Speed();
/* TODO: Insert your application logic here */
/* Write sent data */
Rte_Write_PPort_Torque(Speed);
}
看到没?端口读写函数都帮你生成了。你只需要在中间填上你的业务逻辑就行。
SwcEngineControl.c 里写逻辑。2.6 验证工程
最后一步,验证一下工程有没有问题。
- 点击 Project → Check Consistency。
- 看输出窗口,如果全是绿色的"OK",恭喜你,第一个SWC工程搭建成功。
- 如果有红色错误,双击错误信息,工具会自动定位到问题位置。
好了,到这里你已经完成了第一个SWC工程的创建。从安装、配置许可,到画SWC、加端口、加Runnable,再到生成代码——这一套流程走下来,后面再创建新工程就是复制粘贴的活儿了。