You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ASAMMDF实现刻度/嵌套转换 构建含##TX与##CC块的MF4表

asammdf创建同时包含##TX块与##CC块的MF4刻度转换表方法

问题描述

我当前使用从asammdf官方GitHub仓库示例中获取的如下代码片段,创建带有值转文本映射表的MF4文件:

vals = 5
conversion = {
    'val_{}'.format(i): i
    for i in range(vals)
}
conversion.update(
    {
        'text_{}'.format(i): 'key_{}'.format(i).encode('ascii')
        for i in range(vals)
    }
)

sig = Signal(
    np.arange(cycles, dtype=np.uint32) % 30,
    t,
    name='Channel_value_to_text',
    conversion=conversion,
    comment='Value to text channel',
    )
sigs.append(sig)

mdf.append(sigs, comment='arrays', common_timebase=True)

请问是否有方法可以创建同时包含##TX块和##CC块的表,以模拟实现刻度转换?


解答

可以实现,你现有代码里的conversion只配置了值转文本映射,仅对应MF4标准里的##TX块,要同时生成负责数值刻度换算的##CC块,你可以使用asammdf支持的复合转换规则,把数值换算和值转文本的规则嵌套传入即可,具体实现逻辑如下:

  • ##CC块 对应数值刻度转换规则,支持线性、多项式、有理函数等多种换算类型,负责将通道原始采样值转换为工程物理值
  • ##TX块 对应值到文本映射规则,负责将数值映射为可读的文本标签
  • 复合转换规则会按照传入顺序依次执行,先生成##CC块执行数值换算,再生成##TX块执行值转文本映射,两个块会被同步写入MF4文件

示例代码

import numpy as np
from asammdf import Signal, MDF

# 配置##CC块对应的线性刻度转换规则,示例为原始值 * 0.1 + 2
cc_conversion = {
    "conversion_type": "LINEAR",
    "a": 0.1,  # 线性系数
    "b": 2     # 偏移量
}

# 配置##TX块对应的值转文本映射,注意映射值要和CC转换后的输出范围匹配
vals = 5
tx_conversion = {
    f"val_{i}": i + 2
    for i in range(vals)
}
tx_conversion.update(
    {
        f"text_{i}": f"状态_{i}".encode("utf-8")
        for i in range(vals)
    }
)

# 组合为复合转换规则
combined_conversion = {
    "conversion_type": "COMPOUND",
    "conversions": [cc_conversion, tx_conversion]
}

# 生成测试信号
cycles = 100
t = np.arange(cycles, dtype=np.float64)
sig = Signal(
    np.arange(cycles, dtype=np.uint32) % 30,
    t,
    name="复合转换通道",
    conversion=combined_conversion,
    comment="同时包含CC刻度转换与TX值转文本映射"
)

# 写入MF4文件
mdf = MDF(version="4.10")
mdf.append([sig], comment="复合转换测试", common_timebase=True)
mdf.save("复合转换测试.mf4", overwrite=True)

注意事项

  • 复合转换的执行顺序和conversions列表的传入顺序一致,需保证值转文本的映射值与前一步数值换算的输出范围匹配
  • 如需使用除线性外的其他##CC块换算类型,只需修改cc_conversion的conversion_type和对应参数即可
  • 生成的文件可通过任意支持MF4标准的查看工具验证,通道属性里会同时显示刻度转换规则和值文本映射表

内容的提问来源于stack exchange,提问作者raresRad1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:21:03