Checked COMTRADE ASCII recording windows through existing MoonArrow IPC
Dependencies
| 已有工作 | 复用或比较关系 |
|---|---|
| MoonArrow 0.1.0 | 运行时直接依赖,负责列类型、schema、IPC 编解码;不复制其实现 |
| python-comtrade | 成熟的独立读取参考;本项目不是算法首创或对它的全面替代 |
| OscGrid | 已有 Python 数据处理和切窗流程;这里的增量是 MoonBit 可调用的数据合同与列式交换接口 |
| PyArrow | 独立读取并核对实际产出;仅用于验证,不进入产品运行核心 |
moon update
moon test --target js
moon test --target wasm-gc
moon build --target js --release cmd/arrow
node bin/oscbridge.mjs export input.cfg input.dat new-window.arrow 1 1.1 10000let recording = @oscbridge.parse(cfg_text, dat_text)
let ipc = @oscbridge_arrow.write_window(recording, 1.0, 1.1, 10000)moon check --target js --deny-warn
moon check --target wasm-gc --deny-warn
moon test --target js --deny-warn
moon test --target wasm-gc --deny-warn
moon build --target js --release cmd/arrow --deny-warn
moon packagepub(all) struct AnalogChannel {
number : Int
number_raw : String
name : String
phase : String
circuit : String
unit : String
scale_a : Double
scale_a_raw : String
offset_b : Double
offset_b_raw : String
minimum : Double
minimum_raw : String
maximum : Double
maximum_raw : String
primary : Double
primary_raw : String
secondary : Double
secondary_raw : String
pors : String
cfg_line_raw : String
}pub struct Recording {
// private fields
}fn Recording::window(self : Recording, start_seconds : Double, end_seconds : Double, max_rows? : Int) -> Window raise ComtradeErrorpub(all) struct StatusChannel {
number : Int
number_raw : String
name : String
phase : String
circuit : String
initial_value : Int
normal_state_raw : String
cfg_line_raw : String
}pub(all) struct Window {
start_seconds : Double
end_seconds : Double
analog_channels : Array[AnalogChannel]
status_channels : Array[StatusChannel]
samples : Array[Sample]
}Install
Download zipChecked COMTRADE ASCII recording windows through existing MoonArrow IPC
Dependencies