xlsx
This commit is contained in:
@@ -4,20 +4,21 @@ import (
|
||||
"os"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/tealeg/xlsx"
|
||||
"github.com/xuri/excelize/v2"
|
||||
)
|
||||
|
||||
func (e Extractor) ExtractAux(auxfile, xlsxfile string) error {
|
||||
if err := createAuxXlxs(xlsxfile); err != nil {
|
||||
os.Remove(xlsxfile)
|
||||
if err := createAuxXlsx(xlsxfile); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
wb, err := xlsx.OpenFile(xlsxfile)
|
||||
f, err := excelize.OpenFile(xlsxfile)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return err
|
||||
}
|
||||
|
||||
sh := wb.Sheets[0]
|
||||
defer f.Close()
|
||||
|
||||
data, err := os.ReadFile(auxfile)
|
||||
if err != nil {
|
||||
@@ -25,21 +26,23 @@ func (e Extractor) ExtractAux(auxfile, xlsxfile string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
row := 2
|
||||
col := 1
|
||||
for i := 0; i < len(data); i += 24 + 128 + 512 {
|
||||
row := sh.AddRow()
|
||||
|
||||
var head AuxFrameHead
|
||||
head.Decode(data[i : i+24])
|
||||
head.SaveXlsx(row)
|
||||
l0, _ := head.SaveXlsx(f, col, row)
|
||||
|
||||
var box AuxFocalBox
|
||||
box.Decode(data[i+24 : i+24+128])
|
||||
box.SaveXlsx(row)
|
||||
l1, _ := box.SaveXlsx(f, col+l0, row)
|
||||
|
||||
var plat AuxPlatform
|
||||
plat.Decode(data[i+24+128 : i+24+128+512])
|
||||
box.SaveXlsx(row)
|
||||
plat.SaveXlsx(f, col+l0+l1, row)
|
||||
|
||||
row++
|
||||
}
|
||||
|
||||
return nil
|
||||
return f.Save()
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
package extract
|
||||
|
||||
import "github.com/tealeg/xlsx"
|
||||
import (
|
||||
"github.com/xuri/excelize/v2"
|
||||
)
|
||||
|
||||
func createAuxXlxs(fname string) error {
|
||||
nwb := xlsx.NewFile()
|
||||
sheet, err := nwb.AddSheet("辅助数据")
|
||||
func createAuxXlsx(fname string) error {
|
||||
f := excelize.NewFile()
|
||||
defer f.Close()
|
||||
|
||||
cell, err := excelize.CoordinatesToCellName(1, 1)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return err
|
||||
}
|
||||
row := sheet.AddRow()
|
||||
for _, header := range AuxHeader {
|
||||
cell := row.AddCell()
|
||||
cell.SetString(header)
|
||||
}
|
||||
return nwb.Save(fname)
|
||||
f.SetSheetRow("Sheet1", cell, &AuxHeader)
|
||||
|
||||
return f.SaveAs(fname)
|
||||
}
|
||||
|
||||
var AuxHeader = []string{
|
||||
var AuxHeader = []interface{}{
|
||||
"包头信息",
|
||||
"填充位",
|
||||
"帧头信息",
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/tealeg/xlsx"
|
||||
"github.com/xuri/excelize/v2"
|
||||
)
|
||||
|
||||
// 每行传感器数据帧头信息长度为24字节
|
||||
@@ -99,28 +99,30 @@ func (afh AuxFrameHead) CheckFrmHead() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (afh AuxFrameHead) SaveXlsx(row *xlsx.Row) error {
|
||||
values := []string{
|
||||
fmt.Sprintf("0x%x", afh.PkgHead),
|
||||
func (afh AuxFrameHead) SaveXlsx(f *excelize.File, col, row int) (int, error) {
|
||||
values := []interface{}{
|
||||
fmt.Sprintf("0x%X", afh.PkgHead),
|
||||
"",
|
||||
fmt.Sprintf("0x%x", afh.FrmHead),
|
||||
fmt.Sprintf("0x%X", afh.FrmHead),
|
||||
afh.ImageMode(),
|
||||
afh.BandStatus(afh.B4),
|
||||
afh.BandStatus(afh.B3),
|
||||
afh.BandStatus(afh.B2),
|
||||
afh.BandStatus(afh.B1),
|
||||
afh.BandStatus(afh.B0),
|
||||
fmt.Sprintf("%d", afh.SerialNo),
|
||||
fmt.Sprintf("%d", afh.TimeSec),
|
||||
fmt.Sprintf("%d", afh.TimeSecFrac),
|
||||
fmt.Sprintf("%d", afh.FileNo),
|
||||
afh.SerialNo,
|
||||
afh.TimeSec,
|
||||
afh.TimeSecFrac,
|
||||
afh.FileNo,
|
||||
}
|
||||
|
||||
for _, v := range values {
|
||||
row.AddCell().SetString(v)
|
||||
for i := 0; i < len(values); i++ {
|
||||
cell, _ := excelize.CoordinatesToCellName(col, row)
|
||||
f.SetCellValue("Sheet1", cell, values[i])
|
||||
col++
|
||||
}
|
||||
|
||||
return nil
|
||||
return len(values), nil
|
||||
}
|
||||
|
||||
func (afh AuxFrameHead) ImageMode() string {
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/k0kubun/pp/v3"
|
||||
"github.com/tealeg/xlsx"
|
||||
"github.com/xuri/excelize/v2"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"starwiz.cn/sjy01/preprocessing/calculator"
|
||||
@@ -338,8 +338,356 @@ func (ap AuxPlatform) Print() {
|
||||
pp.Println(ap)
|
||||
}
|
||||
|
||||
func (ap AuxPlatform) SaveXlsx(row *xlsx.Row) error {
|
||||
return nil
|
||||
func (ap AuxPlatform) SaveXlsx(f *excelize.File, col, row int) (int, error) {
|
||||
var values = []interface{}{
|
||||
ap.UTCTimeSec,
|
||||
ap.Waveway,
|
||||
ap.Microsecond,
|
||||
ap.QuatAttstarQ0,
|
||||
ap.QuatAttstarQ1,
|
||||
ap.QuatAttstarQ2,
|
||||
ap.QuatAttstarQ3,
|
||||
ap.QuatOrbitQ1,
|
||||
ap.QuatOrbitQ2,
|
||||
ap.QuatOrbitQ3,
|
||||
ap.QuatOrbJQ1,
|
||||
ap.QuatOrbJQ2,
|
||||
ap.QuatOrbJQ3,
|
||||
ap.Eular1,
|
||||
ap.Eular2,
|
||||
ap.Eular3,
|
||||
ap.DotEular1,
|
||||
ap.DotEular2,
|
||||
ap.DotEular3,
|
||||
ap.ModTime,
|
||||
ap.DTime,
|
||||
ap.AutoState,
|
||||
ap.ProTrack,
|
||||
ap.QeQ1,
|
||||
ap.QeQ2,
|
||||
ap.QeQ3,
|
||||
ap.We1,
|
||||
ap.We2,
|
||||
ap.We3,
|
||||
ap.WTFX,
|
||||
ap.WTFY,
|
||||
ap.WTFZ,
|
||||
ap.FbdriftX,
|
||||
ap.FbdriftY,
|
||||
ap.FbdriftZ,
|
||||
ap.KalbX,
|
||||
ap.KalbY,
|
||||
ap.KalbZ,
|
||||
ap.HTDX,
|
||||
ap.HTDY,
|
||||
ap.HTDZ,
|
||||
ap.CommandWheelX,
|
||||
ap.CommandWheelY,
|
||||
ap.CommandWheelZ,
|
||||
ap.QuatG1,
|
||||
ap.QuatG2,
|
||||
ap.QuatG3,
|
||||
ap.WG1,
|
||||
ap.WG2,
|
||||
ap.WG3,
|
||||
ap.J2000PosX,
|
||||
ap.J2000PosY,
|
||||
ap.J2000PosZ,
|
||||
ap.J2000VelX,
|
||||
ap.J2000VelY,
|
||||
ap.J2000VelZ,
|
||||
ap.W84PosX,
|
||||
ap.W84PosY,
|
||||
ap.W84PosZ,
|
||||
ap.W84VelX,
|
||||
ap.W84VelY,
|
||||
ap.W84VelZ,
|
||||
ap.AngleDraft,
|
||||
ap.DataTransLong,
|
||||
ap.DataTransLat,
|
||||
ap.DataTransH,
|
||||
ap.StarPrio[0],
|
||||
ap.StarPrio[1],
|
||||
ap.StarPrio[2],
|
||||
ap.WheelspeedcalX,
|
||||
ap.WheelspeedcalY,
|
||||
ap.WheelspeedcalZ,
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"锂电池温度",
|
||||
"相机主镜温度",
|
||||
"相机次镜温度",
|
||||
"推进模块温度",
|
||||
"负X侧相机桁架杆温度",
|
||||
"正X正Y侧相机桁架杆温度",
|
||||
"正X负Y侧相机桁架杆温度",
|
||||
"正X侧相机支撑背板温度",
|
||||
"负X侧相机支撑背板温度",
|
||||
"星敏支架温度",
|
||||
"成像电箱温度",
|
||||
"正Y帆板温度",
|
||||
"电源下位机温度",
|
||||
"配电热控驱动温度",
|
||||
"电源控制器温度",
|
||||
"数字太阳敏矢量数据有效位",
|
||||
"数字太阳敏矢量数据X",
|
||||
"数字太阳敏矢量数据Y",
|
||||
"数字太阳敏位置X1",
|
||||
"数字太阳敏位置X2",
|
||||
"数字太阳敏位置Y1",
|
||||
"数字太阳敏位置Y2",
|
||||
"太阳敏温度",
|
||||
"数字太阳敏当前正在使用的阈值(源码)",
|
||||
"数字太阳敏当前正在使用的增益",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"错误码计数",
|
||||
"单粒子错误计数",
|
||||
"配电错误码1",
|
||||
"配电错误码2",
|
||||
"配电错误码3",
|
||||
"配电错误码4",
|
||||
"配电错误码5",
|
||||
"GPS天内秒",
|
||||
"GPSUTC时间累计秒",
|
||||
"太阳阵电流",
|
||||
"母线电流",
|
||||
"负载电流",
|
||||
"蓄电池电压",
|
||||
"电源母线电压",
|
||||
"CPU5.2V电压遥测值",
|
||||
"5.2V配电电压遥测值",
|
||||
"保留",
|
||||
"蓄电池组当前电量",
|
||||
"模式运行时间秒",
|
||||
"卫星现运行模式",
|
||||
"组合业务标识",
|
||||
"当前业务状态",
|
||||
"中心机指令接收总计数",
|
||||
"中心机错误指令计数",
|
||||
"执行指令所在分系统",
|
||||
"执行指令的指令代码",
|
||||
"执行延时指令总计数",
|
||||
"当前延时指令计数",
|
||||
"执行延时指令所在分系统",
|
||||
"执行延时指令的指令代码",
|
||||
"当前延时业务计数",
|
||||
"成功执行业务计数",
|
||||
"异常中止业务计数",
|
||||
"指令执行状态",
|
||||
"业务异常中止状态",
|
||||
"测控数传一体机通信状态",
|
||||
"保留",
|
||||
"北斗短报文通信状态",
|
||||
"GPS接收机通信状态",
|
||||
"数字太阳敏通信状态",
|
||||
"星敏1通信状态",
|
||||
"星敏2通信状态",
|
||||
"光纤陀螺通信状态",
|
||||
"MEMS陀螺通信状态",
|
||||
"飞轮1通信状态",
|
||||
"飞轮2通信状态",
|
||||
"飞轮3通信状态",
|
||||
"飞轮4通信状态",
|
||||
"智能载荷通信状态",
|
||||
"保留",
|
||||
"保留",
|
||||
"电磁阀开关状态",
|
||||
"业务保存状态",
|
||||
"卫星类型标识",
|
||||
"卫星序号标识",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"锂电池加热器通断状态",
|
||||
"相机主镜加热器通断状态",
|
||||
"相机次镜加热器通断状态",
|
||||
"推进模块加热器通断状态",
|
||||
"相机负X侧桁架杆加热器通断状态",
|
||||
"成像电箱加热器通断状态",
|
||||
"相机正X正Y侧桁架杆加热器通断状态",
|
||||
"相机正X负Y侧桁架杆加热器通断状态",
|
||||
"相机正X侧支撑背板加热器通断状态",
|
||||
"相机负X侧支撑背板加热器通断状态",
|
||||
"星敏支架加热器通断状态",
|
||||
"保留",
|
||||
"温度修正系数校验状态",
|
||||
"电源下位机广播帧监视功能",
|
||||
"当前控温码表",
|
||||
"默认控温码表",
|
||||
"飞轮1电源供电状态",
|
||||
"飞轮2电源供电状态",
|
||||
"飞轮3电源供电状态",
|
||||
"SADA1电源供电状态",
|
||||
"SADA2电源供电状态",
|
||||
"测控数传电源供电状态",
|
||||
"保留",
|
||||
"保留",
|
||||
"北斗短报文供电状态",
|
||||
"推进电源供电状态",
|
||||
"焦面电源供电状态",
|
||||
"飞轮4电源供电状态",
|
||||
"星敏1电源供电状态",
|
||||
"星敏2电源供电状态",
|
||||
"数字太阳敏电源供电状态",
|
||||
"导航电源供电状态",
|
||||
"三轴光纤陀螺电源供电状态",
|
||||
"MEMS陀螺电源供电状态",
|
||||
"热控正线状态",
|
||||
"热控1状态",
|
||||
"热控2状态",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"锂电池加热器控温模式",
|
||||
"相机主镜加热器控温模式",
|
||||
"相机次镜加热器控温模式",
|
||||
"推进模块加热器控温模式",
|
||||
"相机负X侧桁架杆加热器控温模式",
|
||||
"相机正X正Y侧桁架杆加热器控温模式",
|
||||
"相机正X负Y侧桁架杆加热器控温模式",
|
||||
"相机正X侧支撑背板加热器控温模式",
|
||||
"相机负X侧支撑背板加热器控温模式",
|
||||
"星敏支架加热器控温模式",
|
||||
"成像电箱加热器控温模式",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"保留",
|
||||
"接收机时间来源",
|
||||
"定位模式",
|
||||
"轨道数据有效标示",
|
||||
"主备机标志",
|
||||
"PPS状态",
|
||||
"GPS最高信噪比",
|
||||
"BD最高信噪比",
|
||||
"参与定位的GPS导航星数",
|
||||
"参与定位的BD导航星数",
|
||||
"GPS几何精度因子",
|
||||
"GPS连续工作时间",
|
||||
"保留",
|
||||
"保留",
|
||||
ap.WGS84PosX,
|
||||
ap.WGS84PosY,
|
||||
ap.WGS84PosZ,
|
||||
ap.WGS84VelX,
|
||||
ap.WGS84VelY,
|
||||
ap.WGS84VelZ,
|
||||
ap.J2000Pos_X,
|
||||
ap.J2000Pos_Y,
|
||||
ap.J2000Pos_Z,
|
||||
ap.J2000Vel_X,
|
||||
ap.J2000Vel_Y,
|
||||
ap.J2000Vel_Z,
|
||||
ap.FOGyroXAV,
|
||||
ap.FOGyroYAV,
|
||||
ap.FOGyroZAV,
|
||||
ap.FOGyroXAV1,
|
||||
ap.FOGyroYAV1,
|
||||
ap.FOGyroZAV1,
|
||||
ap.SS1_UTCTime,
|
||||
ap.SS1_UTCTimeFrac,
|
||||
ap.SS1_Q1,
|
||||
ap.SS1_Q2,
|
||||
ap.SS1_Q3,
|
||||
ap.SS1_Q4,
|
||||
ap.SS1_ExposureTime,
|
||||
ap.SS1_Threshold,
|
||||
ap.SS1_BackgroudV,
|
||||
"星敏A上电进入boot标志",
|
||||
"星敏AEDAC打开标志",
|
||||
"星敏A程序版本",
|
||||
"星敏A四元数滤波标志",
|
||||
"星敏A系统内部工作进程代号",
|
||||
ap.SS1_WorkMode,
|
||||
ap.SS1_ExtractStars,
|
||||
ap.SS1_NavStars,
|
||||
ap.SS1_Gain,
|
||||
ap.SS1_RegonizedStars,
|
||||
ap.SS1_ExtenalImage,
|
||||
ap.SS1_AttitudeActive,
|
||||
"星敏A内部软件版本号低3位",
|
||||
"星敏A产品设备编号低5位",
|
||||
"星敏A成像传感器温度",
|
||||
"星敏A在轨EDAC错误计数",
|
||||
ap.SS1_ImgFrmNo,
|
||||
"星敏A四星寻找阈值",
|
||||
"星敏A跟踪阈值",
|
||||
"星敏ASAA阈值",
|
||||
"星敏ASAA工作模式",
|
||||
"星敏A动态模式标志位",
|
||||
ap.SS1_XAV,
|
||||
ap.SS1_YAV,
|
||||
ap.SS1_ZAV,
|
||||
"星敏A星点阈值自适应功能",
|
||||
"保留",
|
||||
"星敏A速率质量",
|
||||
ap.SS2_UTCTime,
|
||||
ap.SS2_UTCTimeFrac,
|
||||
ap.SS2_Q1,
|
||||
ap.SS2_Q2,
|
||||
ap.SS2_Q3,
|
||||
ap.SS2_Q4,
|
||||
ap.SS2_ExposureTime,
|
||||
ap.SS2_Threshold,
|
||||
ap.SS2_BackgroudV,
|
||||
"星敏B上电进入boot标志",
|
||||
"星敏BEDAC打开标志",
|
||||
"星敏B程序版本",
|
||||
"星敏B四元数滤波标志",
|
||||
"星敏B系统内部工作进程代号",
|
||||
ap.SS2_WorkMode,
|
||||
ap.SS2_ExtractStars,
|
||||
ap.SS2_NavStars,
|
||||
ap.SS2_Gain,
|
||||
ap.SS2_RegonizedStars,
|
||||
ap.SS2_ExtenalImage,
|
||||
ap.SS2_AttitudeActive,
|
||||
"星敏B内部软件版本号低3位",
|
||||
"星敏B产品设备编号低5位",
|
||||
"星敏B成像传感器温度",
|
||||
"星敏B在轨EDAC错误计数",
|
||||
ap.SS2_ImgFrmNo,
|
||||
"星敏B四星寻找阈值",
|
||||
"星敏B跟踪阈值",
|
||||
"星敏BSAA阈值",
|
||||
"星敏BSAA工作模式",
|
||||
"星敏B动态模式标志位",
|
||||
"保留",
|
||||
ap.FlyWheel1_Vel,
|
||||
ap.FlyWheel1_Amps,
|
||||
ap.FlyWheel2_Vel,
|
||||
ap.FlyWheel2_Amps,
|
||||
ap.FlyWheel3_Vel,
|
||||
ap.FlyWheel3_Amps,
|
||||
ap.FlyWheel4_Vel,
|
||||
ap.FlyWheel4_Amps,
|
||||
ap.MemsGyroXAV,
|
||||
ap.MemsGyroYAV,
|
||||
ap.MemsGyroZAV,
|
||||
ap.MagnetictrengthX,
|
||||
ap.MagnetictrengthY,
|
||||
ap.MagnetictrengthZ,
|
||||
ap.ASSTimeInt,
|
||||
ap.ASSTimeDec,
|
||||
"",
|
||||
fmt.Sprintf("%08b", ap.CheckSum),
|
||||
}
|
||||
|
||||
for i := 0; i < len(values); i++ {
|
||||
cell, _ := excelize.CoordinatesToCellName(col, row)
|
||||
f.SetCellValue("Sheet1", cell, values[i])
|
||||
col++
|
||||
}
|
||||
|
||||
return len(values), nil
|
||||
}
|
||||
|
||||
// Extractor 辅助数据提取器
|
||||
|
||||
10
go.mod
10
go.mod
@@ -1,15 +1,19 @@
|
||||
module starwiz.cn/sjy01/preprocessing
|
||||
|
||||
go 1.21
|
||||
go 1.20
|
||||
|
||||
toolchain go1.21.0
|
||||
require github.com/xuri/excelize/v2 v2.8.1
|
||||
|
||||
require (
|
||||
github.com/jonboulle/clockwork v0.4.0 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
|
||||
github.com/onsi/ginkgo v1.16.5 // indirect
|
||||
github.com/onsi/gomega v1.33.1 // indirect
|
||||
github.com/tealeg/xlsx v1.0.5 // indirect
|
||||
github.com/richardlehane/mscfb v1.0.4 // indirect
|
||||
github.com/richardlehane/msoleps v1.0.3 // indirect
|
||||
github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 // indirect
|
||||
github.com/xuri/nfp v0.0.0-20230919160717-d98342af3f05 // indirect
|
||||
golang.org/x/crypto v0.23.0 // indirect
|
||||
golang.org/x/net v0.25.0 // indirect
|
||||
golang.org/x/term v0.20.0 // indirect
|
||||
|
||||
23
go.sum
23
go.sum
@@ -19,7 +19,6 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
@@ -27,9 +26,6 @@ github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST
|
||||
github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
|
||||
github.com/k0kubun/pp/v3 v3.2.0 h1:h33hNTZ9nVFNP3u2Fsgz8JXiF5JINoZfFq4SvKJwNcs=
|
||||
github.com/k0kubun/pp/v3 v3.2.0/go.mod h1:ODtJQbQcIRfAD3N+theGCV1m/CBxweERz2dapdz1EwA=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8=
|
||||
github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is=
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkLibYKgg+SwmyFU9dF2hn6MdTj4=
|
||||
@@ -43,6 +39,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
|
||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
|
||||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
||||
@@ -58,6 +56,11 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
|
||||
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
|
||||
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
|
||||
github.com/richardlehane/msoleps v1.0.3 h1:aznSZzrwYRl3rLKRT3gUk9am7T/mLNSnJINvN0AQoVM=
|
||||
github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
|
||||
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo=
|
||||
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
@@ -70,12 +73,16 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
|
||||
github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg=
|
||||
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
|
||||
github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 h1:Chd9DkqERQQuHpXjR/HSV1jLZA6uaoiwwH3vSuF3IW0=
|
||||
github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
|
||||
github.com/xuri/excelize/v2 v2.8.1 h1:pZLMEwK8ep+CLIUWpWmvW8IWE/yxqG0I1xcN6cVMGuQ=
|
||||
github.com/xuri/excelize/v2 v2.8.1/go.mod h1:oli1E4C3Pa5RXg1TBXn4ENCXDV5JUMlBluUhG7c+CEE=
|
||||
github.com/xuri/nfp v0.0.0-20230919160717-d98342af3f05 h1:qhbILQo1K3mphbwKh1vNm4oGezE1eF9fQWmNiIpSfI4=
|
||||
github.com/xuri/nfp v0.0.0-20230919160717-d98342af3f05/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
@@ -84,6 +91,7 @@ golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
|
||||
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
|
||||
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM=
|
||||
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
|
||||
golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
@@ -129,7 +137,6 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE
|
||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
|
||||
Reference in New Issue
Block a user