当前位置:网站首页>CAPL script printing functions write, writeex, writelineex, writetolog, writetologex, writedbglevel do you really know which one to use under what circumstances?
CAPL script printing functions write, writeex, writelineex, writetolog, writetologex, writedbglevel do you really know which one to use under what circumstances?
2022-07-06 09:48:00 【Ant soldier】
Preface
- Engaged in industry “ several tens of years ”, You can always meet these printing functions on different occasions , What's the difference , Today, the blogger will give the students a wisp
- Demonstrate hardware and software environment Win10 x64 ; CANoe 11 SP2 x64
- This chapter demonstrates the source code download , Click the jump


write
1️⃣ First create the project and file , For demonstration

2️⃣ write It is the simplest and most commonly used printing function , Post it here , It is to make you familiar with the print formats of different data types .

3️⃣ Testing process , Output Soure The type is CAPL/.NET
on key 'a'
{
write ("pressed key %c",this);
}

writeEx
1️⃣ writeEx Just like write More complicated , You can specify the display position of printing , You can also specify the type of printing
- writeEx It will print on the last line of the window , That is to say No line wrapping

2️⃣ Testing process , Printed on Trace On , Remember trace Of CAPL To check
on key 'b'
{
writeEx (TraceWindow,Information,"pressed key %c",this);
}

3️⃣ Testing process , It can be seen that the output is System Page , And printing without line breaks
on key 'c'
{
writeEx (SystemWindow,Information,"pressed key %c",this);
writeEx (SystemWindow,Warning,"pressed key %c",this);
}

writeLineEX
1️⃣ and writeEx The difference between printing and wrapping , You can specify the display position of printing , You can also specify the type of printing

2️⃣ Testing process
on key 'd'
{
writeLineEx (SystemWindow,Information,"pressed key %c",this);
writeLineEx (SystemWindow,Warning,"pressed key %c",this);
}

writeToLog
1️⃣ writeToLog seeing the name of a thing one thinks of its function , That is to say Logging The document writes something ,

2️⃣ Since it's to logging File write data , Then create a logging Block , Set to CAPL Triggered mode , need logging

3️⃣ The test code is as follows :
On key 'f'
{
char timeBuffer[64];
getLocalTimeString(timeBuffer);
write("pressed key %d",this);
setLogFileName("logging", "test.asc");
startLogging("logging",100);
writeToLog("%s *************writeToLog*************",timeBuffer);
writeToLogEx("%s: *************writeToLogEx*************",timeBuffer);
stopLogging("logging",100);
}
4️⃣ Output results
- writeToLog and writeToLogEx The difference can also be seen ,writeToLog Just print more “// Time stamp ”

writeToLogEx
writeDbgLevel
1️⃣ This is very easy to use with functions , I suggest you learn to use , In larger projects , It is not recommended to use write and writeLineEx
Wait for the output function to debug the code , Because we can't control these debug Output or not
- This function can decide whether to print it according to priority
- The first parameter is to specify priority , The lower the number is , Description higher priority ,debug The more likely information is to be output , Of course , It depends on
setWriteDbgLevelSet priority - 0 The highest priority , If setWriteDbgLevel(0), So every time I call writeDbgLevel function , The first argument must be =0 , Can be output , Otherwise the output is suppressed
- 15 Has the lowest priority , If setWriteDbgLevel(15) So every time I call writeDbgLevel function , The first parameter is equal to whatever , Can output
- In actual development , We will pass weite too debug Our code , After debugging , We don't expect this debug The information is printed , Then we can go through setWriteDbgLevel Function to increase the output priority , Achieve the purpose of inhibiting output
- It is recommended to use ,


2️⃣ Test code and test results
On key 'g'
{
setWriteDbgLevel(7);
writeDbgLevel (4, "This is shown:");
// Output: This is shown
writeDbgLevel (9, "This is not shown");
// No output
}


| End |
summary



- Have the most simple life , The furthest dream , Even if it's freezing tomorrow , Lu Yao's horse died !
- Wechat partners can pay attention Langge on-board diagnosis , A small circle in the industry , In the group
SkyDrive data,Source code,There are all kinds of godsFree time communication technology , Talk about job opportunities .- If this blog is helpful to you , please “ give the thumbs-up ” “ Comment on ”“ Collection ” One key, three links Oh ! It's not easy to code words , Everyone's support is my driving force to stick to it .
边栏推荐
- 美团二面:为什么 Redis 会有哨兵?
- Keep these four requirements in mind when learning single chip microcomputer with zero foundation and avoid detours
- 六月刷题01——数组
- VH6501学习系列文章
- Compilation of libwebsocket
- MapReduce instance (VI): inverted index
- 五月集训总结——来自阿光
- Redis分布式锁实现Redisson 15问
- Defensive C language programming in embedded development
- Mapreduce实例(八):Map端join
猜你喜欢

Counter attack of noodles: redis asked 52 questions in a series, with detailed pictures and pictures. Now the interview is stable

33岁可以学PLC吗

【深度学习】语义分割:论文阅读:(2021-12)Mask2Former

大学想要选择学习自动化专业,可以看什么书去提前了解?

Keep these four requirements in mind when learning single chip microcomputer with zero foundation and avoid detours

tn-c为何不可用2p断路器?

CANoe仿真功能之自动化序列(Automation Sequences )

Design and implementation of online snack sales system based on b/s (attached: source code paper SQL file)

leetcode-14. Longest common prefix JS longitudinal scanning method

Selection of software load balancing and hardware load balancing
随机推荐
发生OOM了,你知道是什么原因吗,又该怎么解决呢?
May brush question 03 - sorting
CAP理论
六月刷题02——字符串
Design and implementation of online snack sales system based on b/s (attached: source code paper SQL file)
I2C summary (single host and multi host)
Summary of May training - from a Guang
《ASP.NET Core 6框架揭秘》样章发布[200页/5章]
Some thoughts on the study of 51 single chip microcomputer
Meituan Er Mian: why does redis have sentinels?
33岁可以学PLC吗
[Yu Yue education] Wuhan University of science and technology securities investment reference
通过bat脚本配置系统环境变量
CANoe不能自动识别串口号?那就封装个DLL让它必须行
单片机实现模块化编程:思维+实例+系统教程(实用程度令人发指)
018. Valid palindromes
Basic concepts of libuv
Hugo blog graphical writing tool -- QT practice
CANoe仿真功能之自动化序列(Automation Sequences )
Popularization of security knowledge - twelve moves to protect mobile phones from network attacks
