Formatting and added errors to the var header parser
This commit is contained in:
@@ -11,7 +11,6 @@ import (
|
||||
|
||||
const (
|
||||
ibtFile = "./telemetryFiles/mx5_2016Okayama_full_2024_10_19_22_02_12.ibt"
|
||||
// ibtFile = "./telemetryFiles/sample.ibt"
|
||||
)
|
||||
|
||||
// Reader is an interface to represent the readable data that can be either
|
||||
@@ -45,7 +44,7 @@ func Init(f Reader) (*IBT, error) {
|
||||
var headerRaw [FileHeaderSize]byte
|
||||
_, err = ibt.File.ReadAt(headerRaw[:], 0)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to read from file: %v", err)
|
||||
return nil, fmt.Errorf("Failed to read headers from file: %v", err)
|
||||
}
|
||||
ibt.Headers, err = parseTelemetryHeader(headerRaw)
|
||||
if err != nil {
|
||||
@@ -56,11 +55,11 @@ func Init(f Reader) (*IBT, error) {
|
||||
var subheaderRaw [SubHeaderSize]byte
|
||||
_, err = ibt.File.ReadAt(subheaderRaw[:], 112)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to read subheader from file: %v", err)
|
||||
return nil, fmt.Errorf("Failed to read disk subheaders from file: %v", err)
|
||||
}
|
||||
ibt.SubHeaders, err = parseTelemetrySubHeader(subheaderRaw)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Unable to parse subheaders from file: %v", err)
|
||||
return nil, fmt.Errorf("Unable to parse disk subheaders from file: %v", err)
|
||||
}
|
||||
|
||||
// Read session info string
|
||||
@@ -71,11 +70,14 @@ func Init(f Reader) (*IBT, error) {
|
||||
}
|
||||
ibt.SessionInfo, err = parseSessionInfo(sessionInfoStringRaw)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Unable to parse Session Info from file: %v", err)
|
||||
return nil, fmt.Errorf("Unable to parse SessionInfoString from file: %v", err)
|
||||
}
|
||||
|
||||
// Read the telemetry vars info
|
||||
ibt.readVariablerHeaders()
|
||||
err = ibt.readVariablerHeaders()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Unable to parser variable headers from file: %v", err)
|
||||
}
|
||||
|
||||
return &ibt, nil
|
||||
}
|
||||
@@ -102,12 +104,12 @@ func main() {
|
||||
fmt.Println("StartDate:", startDate)
|
||||
|
||||
// Display the human readable version of start time
|
||||
unixStartTime := time.Unix(ibt.SubHeaders.StartDate + int64(ibt.SubHeaders.StartTime), 0)
|
||||
unixStartTime := time.Unix(ibt.SubHeaders.StartDate+int64(ibt.SubHeaders.StartTime), 0)
|
||||
startTime := unixStartTime.Format("2006/01/02 15:04:05 -0700 MST")
|
||||
fmt.Println("StartTime:", startTime)
|
||||
|
||||
// Display the human readable version of end time
|
||||
unixEndTime := time.Unix(ibt.SubHeaders.StartDate + int64(ibt.SubHeaders.EndTime), 0)
|
||||
unixEndTime := time.Unix(ibt.SubHeaders.StartDate+int64(ibt.SubHeaders.EndTime), 0)
|
||||
endTime := unixEndTime.Format("2006/01/02 15:04:05 -0700 MST")
|
||||
fmt.Println("EndTime: ", endTime)
|
||||
|
||||
|
||||
@@ -321,4 +321,3 @@ func (s *SessionInfoYAML) ToString() string {
|
||||
stringified, _ := json.MarshalIndent(s, "", " ")
|
||||
return string(stringified)
|
||||
}
|
||||
|
||||
|
||||
+11
-11
@@ -4,14 +4,14 @@ import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
"math"
|
||||
"io"
|
||||
"log"
|
||||
"math"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
VarSize = 144
|
||||
VarHeaderSize = 144
|
||||
IRSDK_char = 0
|
||||
IRSDK_bool = 1
|
||||
IRSDK_int = 2
|
||||
@@ -88,26 +88,24 @@ type TelemetryVars struct {
|
||||
Vars map[string]Var
|
||||
}
|
||||
|
||||
func (i *IBT) readVariablerHeaders() {
|
||||
func (i *IBT) readVariablerHeaders() error {
|
||||
i.Vars = &TelemetryVars{Vars: make(map[string]Var, i.Headers.NumVars)}
|
||||
|
||||
var k int32
|
||||
for k = 0; k < i.Headers.NumVars; k++ {
|
||||
rbuf := make([]byte, VarSize)
|
||||
rbuf := make([]byte, VarHeaderSize)
|
||||
|
||||
_, err := i.File.ReadAt(rbuf, int64(i.Headers.VarHeaderOffset+k*VarSize))
|
||||
_, err := i.File.ReadAt(rbuf, int64(i.Headers.VarHeaderOffset+k*VarHeaderSize))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return err
|
||||
}
|
||||
|
||||
var dst IBTVar
|
||||
err = binary.Read(bytes.NewBuffer(rbuf[:]), binary.LittleEndian, &dst)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println(dst.Name)
|
||||
|
||||
v := Var{
|
||||
Type: dst.Type,
|
||||
Offset: dst.Offset,
|
||||
@@ -121,6 +119,8 @@ func (i *IBT) readVariablerHeaders() {
|
||||
|
||||
i.Vars.Vars[v.Name] = v
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (i *IBT) readData() error {
|
||||
|
||||
Reference in New Issue
Block a user