CANoe-读写.Ini文件

CAPL编程实现.Ini文件的读写操作
1、Ini文件添加
1)创建一个txt文件,修改后缀为.ini,添加要记录的内容,如下图:
在这里插入图片描述
注意:Ini文件中提前加入要读写的参数表示,并且用“=”号赋值,比如U2Voltage=12;
2)在CANoe工程中User Files中添加,如下图所示
只有添加了.Ini文件,在程序运行之后后,才可以进行Ini文件的读写操作。
在这里插入图片描述
2、Ini文件读写
定义一个系统变量,用于记录测试地点,string类型
定义一个系统变量,用于记录U2电压,double类型
定义一个系统变,用于记录门开关状态,int类型

CAPL编码,为了便于阅读,使用C#环境:

/*@!Encoding:936*/

includes
{
    #include "Encoding.cin"
}

variables
{
    double f64DefaultU2Voltage;
    double f64ReturnU2Voltage; 
    
    int i16DefaultDoorOpenFlag;
    int i16ReturnDoorOpenFlag; 
    
    char TestPlace[100];
}

on start
{
    readFileIni();
}

on sysvar sysvar::Test::Panel::f64U2Voltage
{
    writeProfileFloat("Parameter","U2Voltage", @this,"Test.Ini");
}
on sysvar sysvar::Test::Panel::i16DoorOpenFlag
{
    writeProfileInt("Parameter","DoorOpenFLag", @this,"Test.Ini");
}
on sysvar sysvar::Test::Panel::szPlace
{
    //string类型的系统变量,需要先使用sysGetVariableString函数,将string类型转成Charbuff,然后再使用writeProfileString将Charbuff写入到ini文件中
    sysGetVariableString(sysvar::Test::Panel::szPlace,TestPlace,elCount(TestPlace));
    /*
    long getProfileString(char section[], char entry[], char def[], char buff[], long buffsize, char filename[]); // form 1
    long getProfileString(char section[], char entry[], char def[], char buff[], long buffsize, char filename[], dword utf16); // form 2
    1)需要输入中文时,使用form格式,并且要在include中添加引用:#include "Encoding.cin";
    2)不需要输入中文时,使用form1格式string类型;
    3)如果用from1格式输入中文,显示乱码,读取出来也是乱码; 
    */
    writeProfileString("Parameter","Place",TestPlace,"Test.Ini",CP_UTF8);//string类型有中文
//    writeProfileString("Parameter","Place",TestPlace,"Test.Ini");//string类型无中文
}

//从ini文件读取参数,赋值给系统变量
void readFileIni(void)
{
    f64ReturnU2Voltage = getProfileFloat("Parameter","U2Voltage",f64DefaultU2Voltage,"Config//Test.Ini"); 
    @sysvar::Test::Panel::f64U2Voltage = f64ReturnU2Voltage;
    
    i16ReturnDoorOpenFlag = getProfileInt("Parameter","DoorOpenFLag",i16DefaultDoorOpenFlag,"Config//Test.Ini"); 
    @sysvar::Test::Panel::i16DoorOpenFlag = i16ReturnDoorOpenFlag;
    
    sysGetVariableString(sysvar::Test::Panel::szPlace,TestPlace,elCount(TestPlace));
    writeProfileString  ("Parameter","Place",TestPlace,"Config//Test.Ini",CP_UTF8);
}

读写测试验证:
①启动CANoe软件,进行写入测试验证,查看配置文件是否写入;
②打开配置文件修改参数,启动CANoe软件,进行读取验证;
在这里插入图片描述

3、Encoding.cin
CAPL编码中,帮助文档中搜索Encoding.cin,查看CAPL字符串编码:
在这里插入图片描述

includes
{
  #include "Encoding.cin"
}

...
{
  int result;
  char text[4] = "äöü";
  byte stream[10];
  long len;
  result = EncodeString(stream, len, 10, text, CP_UTF8);
  // on German Windows, len is now 7, stream is now {0xC3, 0xA4, 0xC3, 0xB6, 0xC3, 0xBC, 0};
  if (result == 0) {...}
}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: "canoe option ethernet.pdf" 可能是一个文件名,描述了有关Canoe Option以太网的信息。 Canoe Option是一种以太网技术,也被称为CAN(Controller Area Network)总线。它通常用于在汽车、工业自动化和其他领域中进行数据通信。Canoe Option以太网允许不同的设备和系统之间进行高效、可靠的通信。 "canoe option ethernet.pdf" 可能是一份文档,提供了关于Canoe Option以太网的详细信息。该文档可能包括以下内容: 1. Canoe Option以太网的基本原理和工作方式。 2. Canoe Option以太网在汽车领域中的应用及其优势。 3. 如何配置和使用Canoe Option以太网。 4. Canoe Option以太网和其他通信协议(例如CAN总线、以太网)之间的比较。 5. Canoe Option以太网的性能参数和限制。 6. 可能的Canoe Option以太网网络拓扑结构和部署方案。 7. Canoe Option以太网的故障排除和维护技巧。 总之,"canoe option ethernet.pdf" 可能提供了关于Canoe Option以太网的详细信息,帮助者了解和使用该技术。 ### 回答2: "canoe option ethernet.pdf" 是一个看起来像是文件名称的字符串。由于缺乏详细背景信息,无法确定该字符串的具体含义。可能是一段描述 Canoe(一种船型) 选项以太网(一种网络通信技术) 的文件名称。也有可能是描述 Canoe 选项以太网技术的PDF文件。 以太网是一种计算机网络技术,用于在局域网中传输数据。Canoe 是一种独木舟,常用于水上运动和冒险探索。在这个背景下,"canoe option ethernet.pdf" 可能是一份将 Canoe 和以太网技术结合起来的文档。 然而,由于提供的信息有限,以上只是一种猜测。如果有更多背景信息,可以提供更准确的回答。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蜉蚁撼树

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

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

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

打赏作者

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

抵扣说明:

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

余额充值