Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
108
pkg/common/flashpack.go
Normal file
108
pkg/common/flashpack.go
Normal file
@@ -0,0 +1,108 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
"time"
|
||||
)
|
||||
|
||||
type FlashpackDataRequest struct {
|
||||
XMLName xml.Name `xml:"SerializationData"`
|
||||
Header FlashPackHeaderArea `xml:"HeaderArea" validate:"required"`
|
||||
VehicleData VehicleData `xml:"DataArea>VehicleData" validate:"required"`
|
||||
SerializationDataIndices SerializationDataIndices `xml:"DataArea>SerializationDataIndices" validate:"required"`
|
||||
}
|
||||
|
||||
type FlashPackHeaderArea struct {
|
||||
CreationDateTime CreationDateTimeWithSeconds `xml:"CreationDateTime" json:"creation_date_time"`
|
||||
MessageIdentifier string `xml:"MessageIdentifier" json:"message_identifier"`
|
||||
InterfaceID int `xml:"InterfaceId" json:"interface_id"`
|
||||
SourceSystem string `xml:"Sender>SourceSystem" json:"source_system"`
|
||||
TargetSystem string `xml:"Sender>TargetSystem" json:"target_system"`
|
||||
}
|
||||
|
||||
type CreationDateTimeWithSeconds struct {
|
||||
time.Time
|
||||
}
|
||||
|
||||
func (t *CreationDateTimeWithSeconds) UnmarshalText(data []byte) error {
|
||||
// Fractional seconds are handled implicitly by Parse.
|
||||
var err error
|
||||
t.Time, err = time.Parse("2006-01-02T15:04:05", string(data))
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (t CreationDateTimeWithSeconds) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
||||
s := t.Format("2006-01-02T15:04:05")
|
||||
return e.EncodeElement(s, start)
|
||||
}
|
||||
|
||||
type VehicleData struct {
|
||||
VIN string `xml:"VIN"`
|
||||
FlashPackNumber string `xml:"FlashPackNumber"`
|
||||
PDXData string `xml:"PDXData"`
|
||||
}
|
||||
|
||||
type SerializationDataIndices struct {
|
||||
SerializationDataIndices []SerializationDataIndex `xml:"SerializationDataIndex"`
|
||||
}
|
||||
|
||||
type SerializationDataIndex struct {
|
||||
IndexNr string `xml:"IndexNr"`
|
||||
IndexName string `xml:"IndexName"`
|
||||
ECUName string `xml:"ECUName"`
|
||||
DataType string `xml:"DataType"`
|
||||
SerialNumber string `xml:"SerialNumber"`
|
||||
F108_CodingData string `xml:"F108_CodingData"`
|
||||
F111_VehicleOrderData string `xml:"F111_VehicleOrderData"`
|
||||
F183_BootloaderVersion string `xml:"F183_BootloaderVersion"`
|
||||
F187_VehicleManufacturerSparePartNumber string `xml:"F187_VehicleManufacturerSparePartNumber"`
|
||||
F188_ECUSoftwareNumber string `xml:"F188_ECUSoftwareNumber"`
|
||||
F191_ECUHardwareNumber string `xml:"F191_ECUHardwareNumber"`
|
||||
F195_ECUSoftwareVersionNumber string `xml:"F195_ECUSoftwareVersionNumber"`
|
||||
F18C_ECUSerialNumber string `xml:"F18C_ECUSerialNumber"`
|
||||
MaterialNr string `xml:"MaterialNr"`
|
||||
SoftwareBranch string `xml:"SoftwareBranch"`
|
||||
SourcingType string `xml:"SourcingType"`
|
||||
SourcingTypeName string `xml:"SourcingTypeName"`
|
||||
}
|
||||
|
||||
// FlashpackDataRequestSwag is used ONLY to represent FlashpackDataRequest in swagger.
|
||||
type FlashpackDataRequestSwag struct {
|
||||
Header struct {
|
||||
CreationDateTime CreationDateTime `json:"CreationDateTime" swaggertype:"string"`
|
||||
MessageIdentifier string `json:"MessageIdentifier"`
|
||||
InterfaceID int `json:"InterfaceId"`
|
||||
Sender struct {
|
||||
SourceSystem string `json:"SourceSystem"`
|
||||
TargetSystem string `json:"TargetSystem"`
|
||||
} `json:"Sender"`
|
||||
} `json:"HeaderArea" validate:"required"`
|
||||
DataArea struct {
|
||||
VehicleData struct {
|
||||
VIN string `json:"vin"`
|
||||
FlashpackNumber string `json:"flashpack_number"`
|
||||
PDXNumber string `json:"pdx_number"`
|
||||
} `json:"VehicleData" validate:"required"`
|
||||
SerializationDataIndices struct {
|
||||
SerializationDataIndices []struct {
|
||||
IndexNr string `json:"index_nr"`
|
||||
IndexName string `json:"index_name"`
|
||||
DataType string `json:"data_type"`
|
||||
SerialNumber string `json:"serial_number"`
|
||||
F108_CodingData string `json:"f108_coding_data"`
|
||||
F111_VehicleOrderData string `json:"f111_vehicle_order_data"`
|
||||
F183_BootloaderVersion string `json:"f183_boot_loader_version"`
|
||||
F187_VehicleManufacturerSparePartNumber string `json:"f187_vehicle_manufacturer_spare_part_number"`
|
||||
F188_ECUSoftwareNumber string `json:"f188_ecu_software_number"`
|
||||
F191_ECUHardwareNumber string `json:"f191_ecu_hardware_number"`
|
||||
F195_ECUSoftwareVersionNumber string `json:"f195_ecu_software_version_number"`
|
||||
F18C_ECUSerialNumber string `json:"f18c_ecu_serial_number"`
|
||||
MaterialNr string `json:"material_nr"`
|
||||
SoftwareBranch string `json:"software_branch"`
|
||||
SourcingType string `json:"sourcing_type"`
|
||||
SourcingTypeName string `json:"sourcing_type_name"`
|
||||
}
|
||||
} `json:"SerializationDataIndices" validate:"required"`
|
||||
} `json:"DataArea"`
|
||||
} // @name SerializationData
|
||||
Reference in New Issue
Block a user