CAPL脚本中的时间函数和打印函数

time

timeNow()

  • dword timeNow()
  • float timeNowFloat();
    没有本质区别,只不过返回值一个是整形,一个是浮点型 返回值的单位都是10ms

下面的返回值是ns:

  • float TimeNowNS();
  • int64 timeNowInt64();
    没有本质区别,只不过返回值一个是整形,一个是浮点型 返回值的单位都是ns+

在这里插入图片描述

On key 'c'
{
//1微秒等于一百万分之一秒(10-6秒),函数的单位是10ms,所以 除以100000
	write("time1:%ld",timeNow());//unit :10ms
	write("time2:%f",timeNow()/100000.0);//unit :s
	  
	write("time3:%f",timeNowFloat());//unit :10ms
	write("time4:%f",timeNowFloat()/100000.0);//unit :s 
	//1纳秒等于十亿分之一秒(10-9秒)  
	write("time5:%I64d",timeNowInt64());//unit :ns
	write("time6:%f",timeNowInt64()/1000000000.0);//unit :s 
	  
	write("time7:%f",TimeNowNS());//unit :ns 
	write("time8:%f",TimeNowNS()/1000000000.0);//unit :s 
}

输出:
time1:93694
time2:0.936940
time3:93694.000000
time4:0.936940
time5:936941094
time6:0.9369411
time7:936941094.000000
time8:0.9369411

addTimeMeasurementStartTime()

获取函数执行时的日期时间

在这里插入图片描述

On key 'c'
{
  
	  long time[8];
	  //获取按下键盘c的时间
	  addTimeToMeasurementStartTime(timeNowNS(), time);
	  write("key c event occured on %02d/%02d/%02d %02d:%02d:%02d.%-3d",
	  time[5]+1, time[4], time[6]-100, time[3], time[2], time[1], time[0]);
	  //获取开始 run的时间,
	  getMeasurementStartTime(time);
	  write("Measurement was started on %02d/%02d/%02d %02d:%02d:%02d.%-3d",
	  time[5]+1, time[4], time[6]-100, time[3], time[2], time[1], time[0]);
}

输出:
key c event occured on 05/28/20 10:02:38.896
Measurement was started on 05/28/20 10:02:35.158

void getLocalTime(long time[]);

返回日期时间数组

  • void getLocalTimeString(char timeBuffer[]);

    返回日期时间字符串

在这里插入图片描述

On key 'c'
{
	  long time[9];
	  char timeBuffer[64];
	  //数组输出
	  getLocalTime(time);
	  write("key c event occured on %02d/%02d/%02d %02d:%02d:%02d.%-3d",
	  time[5]-100, time[4]+1, time[3], time[3], time[2], time[1], time[0]);
	  //字符串输出
	  getLocalTimeString(timeBuffer);
	  write("key c event occured on %s",timeBuffer);
	}

输出:
key c event occured on 20/05/28 28:19:09.42
key c event occured on Thu May 28 19:09:42 2020

write

canoe 没有debug 功能,一切输出需要再write窗口显示
标注1的功能依次是:

  • 暂停打印
  • 清除所有的输出窗口页(从标注2看出write有4个页面)
  • 清除当前选中的页面
  • 清除logging文件中的内容
  • 搜索
  • 拷贝
  • 导出选中的页面中的数据到txt文件中
  • 配置选项
    在这里插入图片描述

write()

最简单基础的输出函数,相当于C的printf函数。
在这里插入图片描述

writeCreate()

在write 窗口创建一个新的页面,下次启动canoe的时候自动被删除。
在这里插入图片描述

On key 'c'
{ 
// 创建一个新的页,名字就叫做"New Page"
    mNewPage= writeCreate("New Page");
    write("mNewPage:%d",mNewPage);//mNewPage相当于句柄,后面对这个页面的操作都要用到这个句柄
}

多了一个"New Page" 的空页面
输出mNewPage:8

writeLineEx()

换行打印文本,在指定的页面

  • void writeEx(long sink, dword severity, char format[], …)

在最后一行接着打印文本,在指定的页面

  • sink 选择输出的页面,sink=0 ,选择的是 system; sink=1 ,选择的是 CAPL / .NET
  • severity:打印信息的类型
  • 0 :一般
  • 1:信息
  • 2:提醒
  • 3:错误

在这里插入图片描述

on start
{
	//Create a new page at the Write Window
	mNewPage= writeCreate("New Page");
	for(i=0;i<4;i++)
	{
		writeLineEx(mNewPage,i,"output type:%d ",i);
	}
}

输出:
可以看出前面的输出类型图标不一样在这里插入图片描述

writeEx :不换行打印:

on start
{
	//Create a new page at the Write Window
	mNewPage= writeCreate("New Page");
	for(i=0;i<4;i++)
	{
	writeEx(mNewPage,0,"output type:%d ",i);
	}
}

输出:
在这里插入图片描述

writeConfigure();

配置打印 log文件。可以将打印在指定页面的数据存储在logging文件中
在这里插入图片描述

on start
{
	//Create a new page at the Write Window
	mNewPage= writeCreate("New Page");
	//第三个参数如果不等于0就使能logging记录,如果文件名不存在,则创建文件
	writeConfigure(mNewPage, 20, 1, "c:\\temp\\writelog.TXT");
	for(i=0;i<4;i++)
	{
	  //Show the description of the program
	writeLineEx(mNewPage,i,"output type:%d ",i);
	}
}

输出:
在这里插入图片描述

writeTextColor()

设置打印文本的字体颜色

void writeTextBkgColor(dword sink,dword red, dword green, dword blue)

设置打印文本的字体背景颜色

在这里插入图片描述

variables
{
long mNewPage; // Sink identifier
  int i;
}

on start
{
  //Create a new page at the Write Window
  mNewPage= writeCreate("New Page");
  writeConfigure(mNewPage, 20, 1, "c:\\temp\\writelog.TXT");
  for(i=0;i<4;i++)
  {
  writeLineEx(mNewPage,i,"output type:%d ",i);
  }
}

on key 'q'
{

  WriteTextColor(mNewPage,255,0,0);
  WriteLineEx(mNewPage,1,"This is red text");
    
  WriteTextBkgColor(mNewPage,0,255,0);
  WriteLineEx(mNewPage,1,"This is red text with green background");
}

on key 'w'
{
  writeclear(mNewPage);
}
on stopMeasurement
{
 //最后还原字体设置,否则下次run的时候字体仍然是红色的。
  WriteTextColor(0,0,0,0);
  WriteTextBkgColor(0,255,255,255);
  //destroy the new created Page
  writeDestroy(mNewPage);
}

按下键盘c,输出:
在这里插入图片描述

writeClear()

清空指定的页面

在这里插入图片描述

writeDestroy()

删除创建的页面
在这里插入图片描述

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蚂蚁小兵

慢慢长夜磨一章好文章,费烟!!

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

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

打赏作者

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

抵扣说明:

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

余额充值