零基础学习CANoe Panel—— 数据/文本编辑控件(Hex/Text Editor )

Posted 蚂蚁小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学习CANoe Panel—— 数据/文本编辑控件(Hex/Text Editor )相关的知识,希望对你有一定的参考价值。


📘前言

  • 🍅 相比Input/Output BoxHex/Text Editor 可以用来显示更多的数据,主要用来显示byte/int 数组类型,也可以用来显示string
  • 🍅 演示软硬件环境 Windows11 x64CANoe 11 SP2 x64

目录


📙 数据/文本编辑控件(Hex/Text Editor )

  • Hex/Text Editor 控件支持的数据类型有string 和数组。


📙 控件显示布局(Editor Layout )

🍅 symbol类型是Data(byte arrary)

1️⃣ 如果Editor 绑定的symbol类型是Data,则Editor Layout属性我们可以只选择only Hex Field

  • 而且设置的时候,我们还应该根据我们每行想要显示的字节数来设置(Columns/Letter per Line ),比如标准CAN报文 我们可以设置为8,正好可以显示一整条报文
  • 两个字节之间自动通过空格间隔


2️⃣ 我们简单模拟下实时刷新某条报文

/*@!Encoding:936*/
variables

  byte ByteData[16];
  int i ;
  msTimer timer_demo;


on key 'a'
  

  setTimer(timer_demo,1000);



on timer timer_demo

    for(i=0;i<elcount(ByteData);i++)
        ByteData[i]= random(0xFF);
    sysSetVariableData (sysvar::Panel::Editor_ByteArrary,ByteData,elcount(ByteData));
    setTimer(timer_demo,1000);  


3️⃣ 运行CANoe ,按下按键‘a’,panel 周期刷新数据。


🍅 symbol类型是Int arrary

1️⃣ 如果绑定的symbol的数据类型是Int Arrary

  • 则Editor 控件每行只能显示一个 整形数(占4个字节,且通过空格隔开),且是16进制显示的。
  • Columns/Letter per Line 属性这个时候就不能在设置了,固定死了


2️⃣ 下图代码是系统变量Editor_IntArrary赋值,

  • 重点,代码中定义的临时变量IntArrary数组的大小一定和系统变量Editor_IntArrary定义的数组大小一致,否则设置不成功的。
/*@!Encoding:936*/
on key 'b'

  IntArrary[0]= 0x11111111;
  IntArrary[1]= 0x22222222;
  IntArrary[2]= 0x33333333;
  IntArrary[3]= 0x44444444;
  sysSetVariableLongArray (sysvar::Panel::Editor_IntArrary,IntArrary,elcount(IntArrary));



3️⃣ 运行CANoe 按下按键‘b’,显示结果如下:


🍅 symbol类型是string

1️⃣ 如果绑定的symbol的数据类型是string,则Editor Layout属性可以只选择Only Text Filed

  • 我们可以用Editor 控件来实时显示我们的测试过程的log信息,下面我们把读取到的DTC 信息显示在Panel中。
  • 注意这个控件只支持英文输出,且不会自动换行,需要指定每行多少个字节(Columns/Letter per Line

2️⃣ 一段小代码演示下 symbol类型是stringeditor控件的显示效果

  • 需要严格按照(Columns/Letter per Line )设置的每行字节数来格式输出。否则无法像图中的那样有格式
/*@!Encoding:936*/
on key 'c'

  char  tempText[0x500];
  int i;  
  dword DTC[3] = 0xD08998,0xD01123,0xD05695;
  char  Descriable[3][20]="Power High","Power Lower","Crc Error";
  byte Status[3] = 0x09,0x2B,0x2F; 
  
    // 类似于表格头
  snprintf(tempText,elCount(tempText),"%8s%16s%12s","DTC","Descriable","Status");
  for(i=0;i<3;i++)
  
    snprintf(tempText,elCount(tempText),"%s%8X%16s%12X",tempText,DTC[i],Descriable[i],Status[i]); 
  

sysSetVariableString (sysvar::Panel::Editor_String,tempText);



3️⃣ 运行CANoe 按下按键‘b’,显示结果如下:

🌎总结

  • 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。

以上是关于零基础学习CANoe Panel—— 数据/文本编辑控件(Hex/Text Editor )的主要内容,如果未能解决你的问题,请参考以下文章

零基础学习CANoe Panel(15)—— 文本输出(CAPL Output View )

零基础学习CANoe Panel(17)—— Panel CAPL Function

零基础学习CANoe Panel(13)—— 滑条(TrackBar )

零基础学习CANoe Panel—— 新建 Panel

零基础学习CANoe Panel(10)—— 组合框(ComboBox)

零基础学习CANoe Panel(11)—— 复选框(CheckBox)