TSMaster 信号导出为 CSV 按帧数&按时间(ms/s)

常见应用需求:按接收到10 帧后提取一次信号值或按1秒提取一次信号值,从而达到采样的效果。将记录文件轻量化,选择性地将数据图表化。在原生软件中当前并未有此功能,所以使用脚本实现该功能。可以使用在线回放对已经记录的报文再筛选。

脚本可扩展功能:1.可以按照报文时间戳范围进行提取信号。
2.可以与panel面板结合,实现按钮选择信号及信号筛选的模式。

demo效果:
在这里插入图片描述

对CSV数据在Excel中处理后的效果:

在这里插入图片描述

主代码:

void on_can_rx_NewOn_CAN_Rx1(const TCAN* ACAN) { try {  // 针对标识符 = 任意
// if (ACAN->FIdxChn != CH1) return; // if you want to filter channel
EngineData_1.FCAN = *ACAN; // 若是在回调函数中,请用ACAN数据赋值FCAN
count+=1;

//间隔1000ms 记录EngSpeed 信号值
if (Flag==true)
{
  double speed=0;
  speed=EngineData_1.EngSpeed;
  Flag=false;
  fprintf(file,"%lf, %d,%x, %f\n",ACAN->FTimeUs/1000000.0,ACAN->FIdxChn , ACAN-> FIdentifier, speed);
  printf("%lf, %d, 0x%x,%f\n",ACAN->FTimeUs/1000000.0,ACAN->FIdxChn , ACAN-> FIdentifier, speed);
}

//间隔10帧记录EngTemp 信号值 
if(ACAN-> FIdentifier==0x64)
{
  if (!(count%10))
  {
     double temp=0;
     temp=EngineData_1.EngTemp;
     count=0;
     fprintf(file,"%lf, %d,%x,"",%f\n",ACAN->FTimeUs/1000000.0,ACAN->FIdxChn , ACAN-> FIdentifier, temp);
     printf("%lf, %d, 0x%x,%f\n",ACAN->FTimeUs/1000000.0,ACAN->FIdxChn , ACAN-> FIdentifier, temp);
  }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值