- ?? 我是,专注于车载诊断,尤其是车载诊断CANoe工具的使用
- ?? 寻找组织 ,答疑解惑,钓鱼聊天,博客源码,点击加入【相亲相爱】
- ?? 零基础学习CANoe Panel总结设计目录,点击跳转
??前言
-
?? 本节通过简单版的电源操作面板演示液晶屏(LCD Control)控件和二极管( LED Control )控件
-
?? 演示软硬件环境
Windows11 x64
;CANoe 11 SP2 x64
目录
- ??前言
- ?? 液晶屏(LCD Control)
-
- ?? 设置数字管数量
- ?? 数字管配色设置
- ?? 电源连接和电压读取模板代码
- ?? 实际测试结果
- ?? 液晶屏(LED Control)
-
- ?? On Off 设置值和颜色属性
- ?? 设置形状属性
- ??总结
?? 液晶屏(LCD Control)
- 放置两个LCD Control实时显示电源电压电流
- 放置一个 LED Control 显示电源连接状态
- 放置两个Input/Out 配置串口连接口连接
?? 设置数字管数量
- 数字是以小数位为界的数字管,可以设置整数位和小数位的显示位数
Decimal Places
:设置为2个整数位Number Of Digits
:两个小数位设置
?? 数字管配色设置
- 默认配置是点亮段时间,背景色和未点亮的时间
- 下面我们简单设置一下数字管的颜色
?? 电源连接和电压读取模板代码
- 以下代码可作为标准电源连接和电压读取的模板。实际使用时,可根据具体情况进行处理
/*@!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种可选形状
🌎总结
- 🍅 有需要演示中所用demo工程的,可以关注下方公众号网盘自取啦,感谢阅读。
- 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!
- 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。