This commit is contained in:
nuknal
2024-05-21 17:41:00 +08:00
parent 84c8b5d23c
commit db650cdaa9
7 changed files with 487 additions and 72 deletions

View File

@@ -2,11 +2,9 @@ package extract
import (
"fmt"
"os"
"github.com/k0kubun/pp/v3"
"github.com/sirupsen/logrus"
"github.com/tealeg/xlsx"
"github.com/xuri/excelize/v2"
)
// 卫星时间起点 北京时间 2000-01-01 20:00:00
@@ -141,27 +139,79 @@ func (ab AuxFocalBox) PGAGainValue() string {
}
}
func (ab AuxFocalBox) SaveXlsx(row *xlsx.Row) error {
return nil
}
func (e *Extractor) ParseAuxEBox(auxfile string) ([]*AuxFocalBox, error) {
data, err := os.ReadFile(auxfile)
if err != nil {
logrus.Println("read aux data from", auxfile, "error:", err.Error())
return nil, err
func (ab AuxFocalBox) SaveXlsx(f *excelize.File, col, row int) (int, error) {
values := []interface{}{
ab.TransferTime,
ab.TrainingDone,
ab.WorkMode,
ab.IntegralDirection,
ab.PGAGain,
ab.PIntegrationLevel,
ab.B1IntegrationLevel,
ab.B2IntegrationLevel,
ab.B3IntegrationLevel,
ab.B4IntegrationLevel,
ab.SecPluseState,
"",
ab.DarkFieldBias,
ab.PWinAddr,
ab.B1WinAddr,
ab.B2WinAddr,
ab.B3WinAddr,
ab.B4WinAddr,
"面阵模式Linetime时钟周期数",
"面阵模式开窗地址",
"面阵模式开窗大小",
"面阵曝光时间粗调EXP_C",
"面阵曝光时间精调EXP_F",
"面阵模式最小读出行",
"硬盘1温度",
"硬盘2温度",
"保留",
"传感器温度",
"FPGA逻辑版本号",
ab.CCDWorkMode,
ab.RawDiskAvailableCap,
ab.ZipDiskAvailableCap,
"原始盘状态",
"原始盘Host初始化状态",
"原始盘SATA控制器状态",
"原始盘SATA错误计数",
"压缩盘状态",
"压缩盘Host初始化状态",
"压缩盘SATA控制器状态",
"压缩盘SATA错误计数",
"保留",
"DDR初始化状态",
"原始图像硬盘状态",
"压缩数据硬盘状态",
"硬盘1读写状态",
"硬盘2读写状态",
"硬盘1初始化状态",
"硬盘2初始化状态",
"保留",
"保留",
"硬盘1禁用标志",
"硬盘2禁用标志",
"保留",
"B2数据移位",
"B1数据移位",
"B4数据移位",
"B3数据移位",
ab.CommandCount,
ab.LastCommandCode,
"指令接收状态",
"错误指令计数",
"错误指令帧编号",
"保留",
"传感器数字电路温度",
}
var afs []*AuxFocalBox
for i := 0; i < len(data); i += 128 {
var ab AuxFocalBox
if err := ab.Decode(data[i : i+128]); err != nil {
return nil, err
}
afs = append(afs, &ab)
ab.Print()
break
for i := 0; i < len(values); i++ {
cell, _ := excelize.CoordinatesToCellName(col, row)
f.SetCellValue("Sheet1", cell, values[i])
col++
}
return afs, nil
return len(values), nil
}