PowerEngine/wave_record/go-comtrade/comtrade.go

41 lines
977 B
Go

package comtrade
type Comtrade struct {
Conf *ComtradeCfg
Data *Data
}
func ParseComtrade(configurePath, datafilePath string) (comtrade *Comtrade, err error) {
c := &Comtrade{}
c.Conf, err = c.parseComtradeConfig(configurePath)
if err != nil {
return nil, err
}
c.Data, err = c.parseComtradeData(datafilePath)
if err != nil {
return nil, err
}
return c, nil
}
func (c *Comtrade) parseComtradeConfig(configurePath string) (*ComtradeCfg, error) {
comtradeConfig, err := ParseComtradeCfg(configurePath)
if err != nil {
return nil, err
}
return comtradeConfig, nil
}
func (c *Comtrade) parseComtradeData(datafilePath string) (*Data, error) {
creator, ok := Parsers[c.Conf.Ft]
if !ok {
return nil, ErrUnknownTypeOfData
}
parser := creator()
comtradeData, err := parser.Parse(datafilePath, c.Conf.GetAnalogNum(), c.Conf.GetDigitalNum(), c.Conf.GetEndSamp()[len(c.Conf.GetEndSamp())-1])
if err != nil {
return nil, err
}
return comtradeData, nil
}