Dmitry Yu Okunev лет назад: 8
Родитель
Сommit
de2e0f4e05
2 измененных файлов с 8 добавлено и 2 удалено
  1. 3 1
      main.go
  2. 5 1
      voltloggerParser/voltloggerParser.go

+ 3 - 1
main.go

@@ -70,10 +70,12 @@ func main() {
 	var dumpPath		string
 	var noHeaders		bool
 	var printRow_arg	printRow_arg
+	var channelsNum		int
 
 	getopt.StringVar(&dumpPath,			'i',	"dump-path"		)
 	getopt.StringVar(&printRow_arg.outputPath,	'o',	"output-path"		).SetOptional()
 	getopt.BoolVar  (&noHeaders,			'n',	"no-headers"		).SetOptional()
+	getopt.IntVar   (&channelsNum,			'c',	"force-channels-num"	).SetOptional()
 	getopt.BoolVar  (&printRow_arg.binaryOutput,	'b',	"binary-output"		).SetOptional()
 	getopt.BoolVar  (&printRow_arg.insertParseTime,	't',	"insert-parse-time"	).SetOptional()
 
@@ -106,7 +108,7 @@ func main() {
 	//	err = binary.Write(printRow_arg.outputFile, binary.LittleEndian, printRow_arg)
 	//}
 
-	err = voltloggerParser.ParseVoltloggerDump(dumpPath, noHeaders, handleHeader, printRow, &printRow_arg)
+	err = voltloggerParser.ParseVoltloggerDump(dumpPath, noHeaders, channelsNum, handleHeader, printRow, &printRow_arg)
 	if (err != nil) {
 		fmt.Printf("Cannot parse the dump: %v\n", err.Error())
 		os.Exit(-1)

+ 5 - 1
voltloggerParser/voltloggerParser.go

@@ -38,7 +38,7 @@ func get16(dumpFile *os.File) (r uint16, err error) {
 	return r, err
 }
 
-func ParseVoltloggerDump(dumpPath string, noHeaders bool, headerHandler func(VoltloggerDumpHeader, interface{})(error), rowHandler func(int64, []int32, VoltloggerDumpHeader, interface{})(error), arg interface{}) (err error) {
+func ParseVoltloggerDump(dumpPath string, noHeaders bool, channelsNum int, headerHandler func(VoltloggerDumpHeader, interface{})(error), rowHandler func(int64, []int32, VoltloggerDumpHeader, interface{})(error), arg interface{}) (err error) {
 	var r VoltloggerDumpHeader
 
 	// Openning the "dumpPath" as a file
@@ -93,6 +93,10 @@ func ParseVoltloggerDump(dumpPath string, noHeaders bool, headerHandler func(Vol
 		r.ChannelsNum = int(raw.ChannelsNum)
 	}
 
+	if (r.ChannelsNum > 0) {
+		r.ChannelsNum = channelsNum
+	}
+
 	// Parsing the Data
 
 	var pos int64