零基础学习CANoe Panel(14)——二极管( LED Control )和液晶屏(LCD Control)

Posted 蚂蚁小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学习CANoe Panel(14)——二极管( LED Control )和液晶屏(LCD Control)相关的知识,希望对你有一定的参考价值。


📘前言

  • 🍅 本节通过一个简易版的电源操作面板,来一起演示下液晶屏(LCD Control)控件和二极管( LED Control )控件

  • 🍅 演示软硬件环境 Windows11 x64CANoe 11 SP2 x64

目录


📙 液晶屏(LCD Control)

  • 放置两个LCD Control取来实时显示电源电压电流
  • 放置一个 LED Control 用来显示电源连接状态
  • 放置两个Input/Out 控件,串口连接的配置

🍅 设置数码管数量

  • 一个数字就是一个数码管,以小数位为界,可以设置整数位和小数位的显示位数
  • Decimal Places:整数位设置为2个
  • Number Of Digits:小数位设置2个


🍅 数码管配色设置

  • 默认配置就是点亮段时红色,背景色和没有被点亮的段时黑色
  • 下面我们简单设置下数码管的颜色

🍅 电源连接和电压读取模板代码

  • 下面代码,可以作为一个标准电源连接和电压读取的模板把,实际使用时,再根据具体情况加工下
/*@!Encoding:936*/
variables

  msTimer timer_V;
  msTimer timer_C;
  char  tempText[0x500];
  int Port;
  int BaudRate;
  int res;

  byte GetCurrentCommand [6] = 'I','O','U','T',13,10;//13 CR ; 10 LF
  byte GetVoltageCommand [6] = 'I','O','U','T',13,10;//13 CR ; 10 LF


on timer timer_V

  //RS232Send(Port, GetCurrentCommand, elCount(GetCurrentCommand));
  //模拟随机值,真实硬件情况下,把RS232Send打开,然后在RS232OnReceive解析返回值
  sysSetVariableFloat(sysvar::Panel::LCD_Voltage,random(5)/10.0+random(10));
  setTimer(timer_V,1000);


on timer timer_C

  //RS232Send(Port, GetCurrentCommand, elCount(GetCurrentCommand));
  //模拟随机值,真实硬件情况下,把RS232Send打开,然后在RS232OnReceive解析返回值
  sysSetVariableFloat(sysvar::Panel::LCD_Current,random(5)/10.0);
  setTimer(timer_C,600);


on sysvar Panel::Port

  InitPower();


on sysvar Panel::BaudRate

  InitPower();



RS232OnReceive(dword port, byte buffer[], dword number)

  if(buffer[0] =='V')
  
    sysSetVariableFloat(sysvar::Panel::LCD_Voltage,random(5)/10+random(10)); //模拟随机值
  
  else if(buffer[0] =='C')
  
    sysSetVariableFloat(sysvar::Panel::LCD_Current,random(5)/10);//模拟随机值
  
  


int InitPower()


  Port = sysGetVariableInt(sysvar::Panel::Port);
  BaudRate = sysGetVariableInt(sysvar::Panel::BaudRate);
  
  write("Port:%d ;BaudRate:%d ",Port,BaudRate);
  
  res = RS232Open(Port); 
  if(res!=1)
  
    write("Open COM %d Failed!",Port);
    return 0;
  
   res = RS232Configure(Port,BaudRate,8,1,0);
  
   if(res!=1)
  
    write("Configure COM %d Failed! :%d",Port,res);
    return 0;
  
   res = RS232SetHandshake(Port,0,0,0,0,0);
    
   if(res!=1)
  
    write(" Configure handshaking COM %d Failed!",Port);
    return 0;
  
    //配置成功
    setTimer(timer_V,500);
    setTimer(timer_C,600);
     sysSetVariableInt(sysvar::Panel::LED_1,1);
    write("Configure COM %d Ok!",Port);
    return 1; 


on stopMeasurement

  rs232Close(Port);



🍅 实际测试结果


📙 液晶屏(LED Control)

  • LED Control 作为一个状态显示控件,比较简单


🍅 On Off 值和颜色属性设置

  • LED Control 只有On和Off两种状态,默认 On 是1 ,OFF是0,颜色也可选


🍅 形状属性设置

  • panel提供了6种可选形状

🌎总结

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

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

以上是关于零基础学习CANoe Panel(14)——二极管( LED Control )和液晶屏(LCD Control)的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

零基础学习CANoe Panel(12)—— 进度条(Progress Bar)