From 5fbabf1d7af0415d6355b952e274ff310396dda0 Mon Sep 17 00:00:00 2001 From: Markus Heberling Date: Wed, 5 Jul 2023 11:24:54 +0200 Subject: [PATCH] use schema from documentation project --- .github/workflows/maven.yml | 1 + .gitmodules | 3 + ASN.1 schema/ApplicationDataMP.asn1 | 835 ------------------ ASN.1 schema/DispatcherBody.asn1 | 148 ---- ASN.1 schema/DispatcherBodyMP.asn1 | 160 ---- ASN.1 schema/DispatcherHeader.asn1 | 35 - ASN.1 schema/v1_1/ApplicationData.asn1 | 211 ----- ASN.1 schema/v1_1/MP_DispatcherBody.asn1 | 64 -- ASN.1 schema/v1_1/MP_DispatcherHeader.asn1 | 14 - ASN.1 schema/v2_1/ApplicationData.asn1 | 138 --- ASN.1 schema/v2_1/MP_DispatcherBody.asn1 | 33 - ASN.1 schema/v2_1/MP_DispatcherHeader.asn1 | 13 - ASN.1 schema/v3_0/ApplicationData.asn1 | 99 --- ASN.1 schema/v3_0/MP_DispatcherBody.asn1 | 33 - ASN.1 schema/v3_0/MP_DispatcherHeader.asn1 | 13 - README.md | 10 + documentation | 1 + pom.xml | 5 + .../net/heberling/ismart/cli/GetData.java | 12 +- .../ismart/asn1/AbstractMessageCoderTest.java | 2 +- .../ismart/asn1/v3_0/MessageCoderTest.java | 6 +- .../net/heberling/ismart/gateway/GetData.java | 8 +- saic-java-api/pom.xml | 18 +- .../java/net/heberling/ismart/abrp/ABRP.java | 4 +- .../ismart/mqtt/ReflectionFeature.java | 2 +- .../heberling/ismart/mqtt/VehicleHandler.java | 34 +- .../heberling/ismart/mqtt/VehicleState.java | 4 +- 27 files changed, 65 insertions(+), 1841 deletions(-) create mode 100644 .gitmodules delete mode 100644 ASN.1 schema/ApplicationDataMP.asn1 delete mode 100644 ASN.1 schema/DispatcherBody.asn1 delete mode 100644 ASN.1 schema/DispatcherBodyMP.asn1 delete mode 100644 ASN.1 schema/DispatcherHeader.asn1 delete mode 100644 ASN.1 schema/v1_1/ApplicationData.asn1 delete mode 100644 ASN.1 schema/v1_1/MP_DispatcherBody.asn1 delete mode 100644 ASN.1 schema/v1_1/MP_DispatcherHeader.asn1 delete mode 100644 ASN.1 schema/v2_1/ApplicationData.asn1 delete mode 100644 ASN.1 schema/v2_1/MP_DispatcherBody.asn1 delete mode 100644 ASN.1 schema/v2_1/MP_DispatcherHeader.asn1 delete mode 100644 ASN.1 schema/v3_0/ApplicationData.asn1 delete mode 100644 ASN.1 schema/v3_0/MP_DispatcherBody.asn1 delete mode 100644 ASN.1 schema/v3_0/MP_DispatcherHeader.asn1 create mode 160000 documentation diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index b5a187b8..b54e6782 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -31,6 +31,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 + submodules: recursive - name: Install tools from asdf config uses: asdf-vm/actions/install@v3 - name: set java home diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..92d44076 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "documentation"] + path = documentation + url = git@github.com:SAIC-iSmart-API/documentation.git diff --git a/ASN.1 schema/ApplicationDataMP.asn1 b/ASN.1 schema/ApplicationDataMP.asn1 deleted file mode 100644 index c143a146..00000000 --- a/ASN.1 schema/ApplicationDataMP.asn1 +++ /dev/null @@ -1,835 +0,0 @@ --- --- --- Message format for Application Data of the OTA protocol data for EP11 --- --- * Copyright (c) 2012 SAIC. All Rights Reserved. --- --- 2012-04-28 v1.0 First released version. --- --- - -ApplicationDataMP - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN - - - --- --- MP-UserLoggingInReq --- -MP-UserLoggingInReq ::= SEQUENCE -{ - password IA5String(SIZE(6..30)), - deviceId IA5String(SIZE(1..80)) OPTIONAL -} - --- --- MP-UserLoggingInResp --- -MP-UserLoggingInResp ::= SEQUENCE -{ - token IA5String(SIZE(32)) OPTIONAL, - - tokenExpiration Timestamp OPTIONAL, - - vinList SEQUENCE SIZE(1..256) OF Vin OPTIONAL -} - --- --- Vin --- -Vin ::= SEQUENCE -{ - - vin IA5String(SIZE(17)), - name OCTET STRING(SIZE(1..128)) OPTIONAL - -} - --- --- CtlCommandReq --- - CtlCommandReq ::= SEQUENCE -{ - pin IA5String(SIZE(32)), - - command IA5String(SIZE(3)), - ---wether TCU need return status - needStatus BOOLEAN, - - config OCTET STRING(SIZE(0..63)) -} - --- --- VehicleStatusResp --- -VehicleStatusResp ::= SEQUENCE -{ - - vehicleStatus VehicleStatus - -} - --- --- VehiclePathResp --- -VehiclePathResp ::= SEQUENCE -{ - leftRecordNumber INTEGER(0..255), - - pointList SEQUENCE SIZE(1..256) OF Point OPTIONAL - -} - --- --- Point --- -Point ::= SEQUENCE -{ - sequenceNumber INTEGER(0..4294967295), - - gpsPosition RvsPoint - -} - --- --- AlarmSwitchReq --- -AlarmSwitchReq ::= SEQUENCE -{ - pin IA5String(SIZE(32)), - - alarmSwitchList SEQUENCE SIZE(1..16) OF AlarmSwitch - -} - --- --- AlarmSwitch --- -AlarmSwitch ::= SEQUENCE -{ - alarmType AlarmSettingType, - - alarmSwitch BOOLEAN, - - functionSwitch BOOLEAN -} - --- --- MP-AlarmReq --- -MP-AlarmReq ::= SEQUENCE -{ - id INTEGER(0..281474976710655) - -} - --- --- MP-AlarmResp --- -MP-AlarmResp ::= SEQUENCE -{ - alarmInfo AlarmInfo -} - --- --- AlarmSettingResp --- -AlarmSettingResp ::= SEQUENCE -{ - - alarmSettingList SEQUENCE SIZE(1..16) OF AlarmSetting - -} - --- --- AlarmSetting --- -AlarmSetting ::= SEQUENCE -{ - alarmType AlarmSettingType, - - alarmStatus BOOLEAN, - - functionStatus BOOLEAN -} - --- --- MessageListReq --- -MessageListReq ::= SEQUENCE -{ - startEndNumber StartEndNumber -} - --- --- MessageListResp --- -MessageListResp ::= SEQUENCE -{ - recordsNumber INTEGER(0..281474976710655), - - messages SEQUENCE SIZE(1..256) OF Message OPTIONAL - -} - --- --- MessageDetailReq --- -MessageDetailReq ::= SEQUENCE -{ - messageId INTEGER(0..281474976710655) -} - --- - --- MessageDetailResp --- -MessageDetailResp ::= SEQUENCE -{ - - message Message - -} - --- --- GetUnreadMessageCountResp --- -GetUnreadMessageCountResp ::= SEQUENCE -{ - totalNumber INTEGER(0..281474976710655) -} - --- --- MessageNoticeListReq --- -MessageNoticeListReq ::= SEQUENCE -{ - startEndNumber StartEndNumber -} - --- --- MessageNoticeListResp --- -MessageNoticeListResp ::= SEQUENCE -{ - messages SEQUENCE SIZE(1..256) OF Message OPTIONAL - -} - --- --- Message --- -Message ::= SEQUENCE -{ - messageId INTEGER(0..281474976710655), - - messageType IA5String(SIZE(3)), - - title OCTET STRING(SIZE(1..128)), - - messageTime Timestamp, - - sender OCTET STRING(SIZE(1..64)), - - contentIdList SEQUENCE SIZE(1..256) OF ContentId OPTIONAL, - - content OCTET STRING(SIZE(1..2048)) OPTIONAL -} - --- --- ContentId --- -ContentId ::= SEQUENCE -{ - contentId INTEGER(0..281474976710655) -} - --- --- FavoritePOIQueryReq --- -FavoritePOIQueryReq ::= SEQUENCE -{ - startEndNumber StartEndNumber -} - - --- --- FavoritePOIQueryResp --- -FavoritePOIQueryResp ::= SEQUENCE -{ - totalNum INTEGER(0..281474976710655), - - poiList SEQUENCE SIZE(1..256) OF POI OPTIONAL -} - - --- --- AddToFavoritePOIReq --- -AddToFavoritePOIReq ::= SEQUENCE -{ - poi POI -} - --- --- AddToFavoritePOIResp --- -AddToFavoritePOIResp ::= SEQUENCE -{ - poiId INTEGER(0..281474976710655) -} - - --- --- DeleteFavoritePOIReq --- -DeleteFavoritePOIReq ::= SEQUENCE -{ - poiIdList SEQUENCE SIZE(1..65536) OF POIId -} - --- --- POIId --- -POIId ::= SEQUENCE -{ - poiId INTEGER(0..281474976710655) -} - - --- --- POISendToCarReq --- -POISendToCarReq ::= SEQUENCE -{ - poiList SEQUENCE SIZE(1..256) OF POI -} - --- --- FuelEconomyRankingReq --- -FuelEconomyRankingReq ::= SEQUENCE -{ - rankingType RankingType, - - uid IA5String(SIZE(1..50)) OPTIONAL, - - startEndNumber StartEndNumber - -} - --- --- FuelEconomyRankingResp --- -FuelEconomyRankingResp ::= SEQUENCE -{ - totalNumber INTEGER(0..281474976710655), - - userRankingInfo UserRankingInfo OPTIONAL, - - otherUsersRankingInfo SEQUENCE SIZE(1..256) OF UserRankingInfo OPTIONAL, - - averageFuelConsumption INTEGER(0..65535) OPTIONAL - - -} - --- --- SpeedReportReq --- -SpeedReportReq ::= SEQUENCE -{ - startEndNumber StartEndNumber, - - beginTime Timestamp, - - endTime Timestamp, - - unit Unit -} - --- --- SpeedReportResp --- -SpeedReportResp ::= SEQUENCE -{ - totalNumber INTEGER(0..281474976710655), - - averageSpeed INTEGER(0..65535), - - speedInfoList SEQUENCE SIZE(1..256) OF SpeedInfo OPTIONAL - - -} - --- --- SpeedInfo --- -SpeedInfo ::= SEQUENCE -{ - speed INTEGER(0..65535), - - time Timestamp, - - unit Unit -} - - --- --- UserFuelEconomyRankingReq --- -UserFuelEconomyRankingReq ::= SEQUENCE -{ - rankingType RankingType, - - nikname OCTET STRING(SIZE(1..256)) OPTIONAL, - - startEndNumber StartEndNumber - -} - --- --- UserFuelEconomyRankingResp --- -UserFuelEconomyRankingResp ::= SEQUENCE -{ - totalNumber INTEGER(0..281474976710655), - - userRankingInfo SEQUENCE SIZE(1..256) OF UserRankingInfo OPTIONAL - - -} - - --- --- UserRankingInfo --- -UserRankingInfo ::= SEQUENCE -{ - ranking INTEGER(0..281474976710655), - - nikname OCTET STRING(SIZE(1..256)), - - model OCTET STRING(SIZE(1..256)) OPTIONAL, - - fuelConsumption INTEGER(0..65535), - - rankingChange INTEGER(0..281474976710655), - - rankingChangeType RankingChangeType - -} - --- --- CityListDownloadReq --- - CityListDownloadReq ::= SEQUENCE -{ - cityType CityType - -} - --- --- CityListDownloadResp --- - CityListDownloadResp ::= SEQUENCE -{ - cityList SEQUENCE SIZE(1..128) OF ProvinceInfo - -} - --- --- ProvinceInfo --- -ProvinceInfo ::= SEQUENCE -{ - regionId IA5String(SIZE(6)), - - realName OCTET STRING(SIZE(1..64)), - - shortName IA5String(SIZE(1..16)), - - cityInfoList SEQUENCE SIZE(1..256) OF CityInfo -} - --- --- CityInfo --- -CityInfo ::= SEQUENCE -{ - regionId IA5String(SIZE(6)), - - realName OCTET STRING(SIZE(1..64)), - - shortName IA5String(SIZE(1..16)) -} - --- --- RegionSettingReq --- -RegionSettingReq ::= SEQUENCE -{ - regionSettingSwitch RegionSettingSwitch, - - regionType RegionType OPTIONAL, - - nwPosition BasicPosition OPTIONAL, - - sePosition BasicPosition OPTIONAL, - - centerPosition BasicPosition OPTIONAL, - - radius INTEGER(0..281474976710655) OPTIONAL, - - regionId IA5String(SIZE(6)) OPTIONAL - -} - --- --- RegionSearchResp --- -RegionSearchResp ::= SEQUENCE -{ - regionSettingSwitch RegionSettingSwitch, - - regionType RegionType OPTIONAL, - - nwPosition BasicPosition OPTIONAL, - - sePosition BasicPosition OPTIONAL, - - centerPosition BasicPosition OPTIONAL, - - radius INTEGER(0..281474976710655) OPTIONAL, - - regionId IA5String(SIZE(6)) OPTIONAL - -} - - - - - - --- --- POI --- -POI ::= SEQUENCE -{ - poiID INTEGER(0..281474976710655) OPTIONAL, - - isValid BOOLEAN OPTIONAL, - - basicPosition BasicPosition, - - cityCode IA5String(SIZE(6)), - - addressName OCTET STRING(SIZE(1..512)) OPTIONAL, - - phone IA5String(SIZE(1..50)) OPTIONAL, - - address OCTET STRING(SIZE(1..512)) OPTIONAL, - - postCode NumericString(SIZE(6)) OPTIONAL, - - creatTime Timestamp OPTIONAL - -} - - --- --- AlarmInfo --- -AlarmInfo ::= SEQUENCE -{ - alarmType AlarmType, - - abnormalAlarmType AbnormalAlarmType OPTIONAL, - - alarmTime Timestamp, - - vehicleStatus VehicleStatus - -} - --- --- VehicleStatus --- -VehicleStatus ::= SEQUENCE -{ - --- GPS Position - gpsPosition RvsPoint, - - vehicleData OCTET STRING(SIZE(1..65536)) - -} - --- --- Query Start Number & End Number --- -StartEndNumber ::= SEQUENCE -{ - startNumber INTEGER(0..281474976710655), - - endNumber INTEGER(0..281474976710655) - -} - - --- --- RvsPoint --- -RvsPoint ::= SEQUENCE -{ - wayPoint RvsWayPoint, - - timestamp Timestamp, - - gpsStatus GPSStatus - -} - --- --- RvsWayPoint --- -RvsWayPoint ::= SEQUENCE -{ - position RvsWGS84Point, - - heading INTEGER(0..359), - - speed INTEGER(-1000..4500) - - -} - --- --- RvsWGS84Point --- -RvsWGS84Point ::= SEQUENCE -{ - --WGS84 decimal X 1000000 e.g. latitude 57.123456 => 57123456 - latitude INTEGER (-90000000..90000000), - - --WGS84 decimal X 1000000 e.g. longitude 10.123456 => 10123456 - longitude INTEGER (-180000000..180000000), - - --altitude,UNIT:meter - altitude INTEGER (-100..8900) - - -} - --- --- Basic Position --- -BasicPosition ::= SEQUENCE -{ - - --WGS84 decimal X 1000000 e.g. latitude 57.123456 => 57123456 - latitude INTEGER (-90000000..90000000), - - --WGS84 decimal X 1000000 e.g. longitude 10.123456 => 10123456 - longitude INTEGER (-180000000..180000000) -} - - - - --- --- Timestamp --- -Timestamp ::= SEQUENCE -{ - - -- seconds since 1970-01-01T00:00:00 UTC - seconds INTEGER(0..4294967295) -} - --- --- GPS Status --- -GPSStatus ::= ENUMERATED -{ ---NoGpsSignal = 0 - noGpsSignal(0), - ---TimeFix = 1 - timeFix(1), - ---Fix2D = 2 - fix2D(2), - ---Fix3D = 3 - fix3D(3) - -} - --- --- Alarm Setting Type --- -AlarmSettingType ::= ENUMERATED -{ ---Abnormal Alarm = 0 - abnormal(0), - ---Moving Alarm = 1 - moving(1), - ---Region Alarm = 2 - region(2), - ---Engin Start Alarm = 3 - enginStart(3), - ---Engin Start Alarm = 4 - startVehicleStatus(4) - -} - --- --- Alarm Type --- -AlarmType ::= ENUMERATED -{ ---Abnormal Alarm = 0 - abnormal(0), - ---Moving Alarm = 1 - moving(1), - ---Region Alarm = 2 - region(2), - ---Engin Start Alarm = 3 - enginStart(3) - -} - --- --- Abnormal Alarm Type --- -AbnormalAlarmType ::= ENUMERATED -{ ---CAN Alarm = 1 - can(1), - ---G-sensor Alarm = 2 - gSensor(2), - ---Tbox Alarm = 3 - tbox(3), - ---Battery Alarm = 4 - battery(4) - -} - --- --- Ranking Type --- -RankingType ::= ENUMERATED -{ ---year ranking - year(0), - ---month ranking - month(1), - ---weekly ranking - week(2) - -} - --- --- Ranking Change Type --- -RankingChangeType ::= ENUMERATED -{ ---no change - noChange(0), - ---up - up(1), - ---down - down(2) - -} - - - --- --- City Type --- -CityType ::= ENUMERATED -{ ---interest city - interest(0), - ---all city - all(1) - -} - - --- ---Region Setting Switch --- -RegionSettingSwitch ::= ENUMERATED -{ ---off - off(0), - ---out on - outOn(1), - ---inOn - inOn(2), - ---On - on(3) -} - --- ---Region Type --- -RegionType ::= ENUMERATED -{ ---rectangle - rectangle(0), - ---circular - circular(1), - ---region - region(2) -} - --- --- Unit --- -Unit ::= ENUMERATED -{ ---hour - hour(0), - ---day - day(1), - ---week - week(2), - - ---month - month(3) - -} - -END \ No newline at end of file diff --git a/ASN.1 schema/DispatcherBody.asn1 b/ASN.1 schema/DispatcherBody.asn1 deleted file mode 100644 index 8c9d09b8..00000000 --- a/ASN.1 schema/DispatcherBody.asn1 +++ /dev/null @@ -1,148 +0,0 @@ --- --- --- Message format for Dispatcher Body of the OTA protocol data --- --- * Copyright (c) 2012 SAIC. All Rights Reserved. --- --- 2012-04-28 v1.0 First released version. --- --- - -OTA_DispatcherBody - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN - --- --- Dispatcher Body --- -DispatcherBody ::= SEQUENCE -{ --- uniqe identifier of Application - applicationID INTEGER(0..255), - --- VIN,17 ASCII characters - vin IA5String(SIZE(17)), - --- Event Creation Time,use the seconds from 1970-01-01 00:00:00 - eventCreationTime INTEGER(0..2147483647), - --- Event ID - eventID INTEGER(0..2147483647) OPTIONAL, - --- Message ID,uniqe identifier of message - messageID INTEGER(0..255), - --- Message Counter - messageCounter MessageCounter, - --- ACK Required,the flag of if the acknowledge signal is required - ackRequired BOOLEAN OPTIONAL, - --- Stateless Dispatcher Message ,true:Stateless,false:not Stateless - statelessDispatcherMessage BOOLEAN OPTIONAL, - --- Calling Request Message - crqmRequest BOOLEAN OPTIONAL, - --- Basic Position - basicPosition BasicPosition OPTIONAL, - --- Network Info - networkInfo NetworkInfo OPTIONAL, - --- SIM Info - simInfo NumericString(SIZE(19)) OPTIONAL, - --- HMI Language ,0:Simplified Chinese;1:English - hmiLanguage LanguageType OPTIONAL, - --- ICC ID, uniqe identifier of SIM card - iccID NumericString(SIZE(20)), - --- Application Data Message Length - applicationDataLength INTEGER(0..255), - --- Application Data Encoding,0:ASN.1 PER unaligned;1:ASN.1 DER;2:ASN.1 BER - applicationDataEncoding DataEncodingType, - --- Application Data Protocol Version - applicationDataProtocolVersion INTEGER(0..65535), - --- Test Flag 01:test;10:prd;11:both - testFlag INTEGER(1..3) -} - --- --- Message Counter --- -MessageCounter ::= SEQUENCE -{ --- Uplink Counter - uplinkCounter INTEGER(0..255), - --- Downlink Counter - downlinkCounter INTEGER(0..255) -} - --- --- Basic Position --- -BasicPosition ::= SEQUENCE -{ - - --WGS84 decimal X 1000000 e.g. latitude 57.123456 => 57123456 - latitude INTEGER (-90000000..90000000), - - --WGS84 decimal X 1000000 e.g. longitude 10.123456 => 10123456 - longitude INTEGER (-180000000..180000000) -} - --- --- Network Info --- -NetworkInfo ::= SEQUENCE -{ --- Mobile Country Code for current network - mccNetwork NumericString(SIZE(3)), - --- Mobile Network Code for current network - mncNetwork NumericString(SIZE(3)), - --- Mobile Country Code for the SIM card - mccSim NumericString(SIZE(3)), - --- Mobile Network Code for the SIM card - mncSim NumericString(SIZE(3)), - --- Signal Strength - signalStrength INTEGER(0..99) -} - --- --- Language Type --- -LanguageType ::= ENUMERATED -{ --- 0:Simplified Chinese - simplifiedChinese(0), - --- 1:English - english(1) -} - --- --- Data Encoding Type --- -DataEncodingType ::= ENUMERATED -{ --- 0:ASN.1 PER unaligned - perUnaligned(0), --- 1:ASN.1 DER - der(1), --- 2:ASN.1 BER - ber(2) - } - -END \ No newline at end of file diff --git a/ASN.1 schema/DispatcherBodyMP.asn1 b/ASN.1 schema/DispatcherBodyMP.asn1 deleted file mode 100644 index 0c6b07d2..00000000 --- a/ASN.1 schema/DispatcherBodyMP.asn1 +++ /dev/null @@ -1,160 +0,0 @@ --- --- --- Message format for Dispatcher Body of the OTA protocol data --- --- * Copyright (c) 2012 SAIC. All Rights Reserved. --- --- 2012-04-28 v1.0 First released version. --- --- - -OTA_DispatcherBodyMP - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN - --- --- Dispatcher Body (MP) --- -DispatcherBodyMP ::= SEQUENCE -{ --- User ID, uniqe identifier of user - uid IA5String(SIZE(50)) OPTIONAL, - --- Token of conversation - token IA5String(SIZE(32)) OPTIONAL, - --- uniqe identifier of Application - applicationID IA5String(SIZE(3)), - --- VIN,17 ASCII characters - vin IA5String(SIZE(17)) OPTIONAL, - --- Event Creation Time,use the seconds from 1970-01-01 00:00:00 - eventCreationTime INTEGER(0..4294967295), - --- Event ID - eventID INTEGER(0..281474976710655) OPTIONAL, - --- Message ID,uniqe identifier of message - messageID INTEGER(0..255), - --- Message Counter - messageCounter MessageCounter, - --- ACK Required,the flag of if the acknowledge signal is required - ackRequired BOOLEAN OPTIONAL, - --- Stateless Dispatcher Message ,true:Stateless,false:not Stateless - statelessDispatcherMessage BOOLEAN OPTIONAL, - --- Calling Request Message - crqmRequest BOOLEAN OPTIONAL, - --- Basic Position - basicPosition BasicPosition OPTIONAL, - --- Network Info - networkInfo NetworkInfo OPTIONAL, - --- SIM Info - simInfo NumericString(SIZE(19)) OPTIONAL, - --- HMI Language ,0:Simplified Chinese;1:English - hmiLanguage LanguageType OPTIONAL, - --- ICC ID, uniqe identifier of SIM card - iccID NumericString(SIZE(20)), - --- Application Data Message Length - applicationDataLength INTEGER(0..4294967295), - --- Application Data Encoding,0:ASN.1 PER unaligned;1:ASN.1 DER;2:ASN.1 BER - applicationDataEncoding DataEncodingType, - --- Application Data Protocol Version - applicationDataProtocolVersion INTEGER(0..65535), - --- Test Flag 01:test;10:prd;11:both - testFlag INTEGER(1..3) OPTIONAL, - --- Result from TAP server - result INTEGER(0..65535) OPTIONAL, - --- Error Message - errorMessage OCTET STRING(SIZE(1..128)) OPTIONAL -} - --- --- Message Counter --- -MessageCounter ::= SEQUENCE -{ --- Uplink Counter - uplinkCounter INTEGER(0..255), - --- Downlink Counter - downlinkCounter INTEGER(0..255) -} - --- --- Basic Position --- -BasicPosition ::= SEQUENCE -{ - - --WGS84 decimal X 1000000 e.g. latitude 57.123456 => 57123456 - latitude INTEGER (-90000000..90000000), - - --WGS84 decimal X 1000000 e.g. longitude 10.123456 => 10123456 - longitude INTEGER (-180000000..180000000) -} - --- --- Network Info --- -NetworkInfo ::= SEQUENCE -{ --- Mobile Country Code for current network - mccNetwork NumericString(SIZE(3)), - --- Mobile Network Code for current network - mncNetwork NumericString(SIZE(3)), - --- Mobile Country Code for the SIM card - mccSim NumericString(SIZE(3)), - --- Mobile Network Code for the SIM card - mncSim NumericString(SIZE(3)), - --- Signal Strength - signalStrength INTEGER(0..99) -} - --- --- Language Type --- -LanguageType ::= ENUMERATED -{ --- 0:Simplified Chinese - simplifiedChinese(0), - --- 1:English - english(1) -} - --- --- Data Encoding Type --- -DataEncodingType ::= ENUMERATED -{ --- 0:ASN.1 PER unaligned - perUnaligned(0), --- 1:ASN.1 DER - der(1), --- 2:ASN.1 BER - ber(2) - } - -END \ No newline at end of file diff --git a/ASN.1 schema/DispatcherHeader.asn1 b/ASN.1 schema/DispatcherHeader.asn1 deleted file mode 100644 index 25e5b513..00000000 --- a/ASN.1 schema/DispatcherHeader.asn1 +++ /dev/null @@ -1,35 +0,0 @@ --- --- --- Message format for Dispatcher Body of the OTA protocol data --- --- * Copyright (c) 2012 SAIC. All Rights Reserved. --- --- 2012-04-28 v1.0 First released version. --- --- - -OTA_DispatcherHeader - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN - --- --- Dispatcher Header --- -DispatcherHeader ::= SEQUENCE -{ --- Protocal Version - protocolVersion INTEGER(0..255), - --- Security Context - securityContext INTEGER(0..65535), - --- Dispatcher Message Length - dispatcherMessageLength INTEGER(0..255), - --- Dispatcher Body Encoding - dispatcherBodyEncoding INTEGER(0..2) -} - -END \ No newline at end of file diff --git a/ASN.1 schema/v1_1/ApplicationData.asn1 b/ASN.1 schema/v1_1/ApplicationData.asn1 deleted file mode 100644 index b7b4deae..00000000 --- a/ASN.1 schema/v1_1/ApplicationData.asn1 +++ /dev/null @@ -1,211 +0,0 @@ -ApplicationDataModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -AlarmSwitchReq ::= SEQUENCE -{ - pin IA5String(SIZE(32)), - alarmSwitchList SEQUENCE SIZE(1..16) OF AlarmSwitch, - description OCTET STRING(SIZE(0..500)) OPTIONAL -} -MPUserInfoResp ::= SEQUENCE -{ - nickName OCTET STRING(SIZE(1..50)) OPTIONAL, - address OCTET STRING(SIZE(1..500)) OPTIONAL, - mobilePhone IA5String(SIZE(1..19)) OPTIONAL, - emergencyName OCTET STRING(SIZE(1..50)) OPTIONAL, - emergencyMobile IA5String(SIZE(1..19)) OPTIONAL, - userPhoto IA5String(SIZE(1..128)) OPTIONAL, - gender OCTET STRING(SIZE(1)) OPTIONAL, - birthday IA5String(SIZE(8)) OPTIONAL, - languageType LanguageType OPTIONAL, - realName OCTET STRING(SIZE(1..150)) OPTIONAL, - theSecondLevelCountryCode IA5String(SIZE(1..100)) OPTIONAL, - theThirdLevelCountryCode IA5String(SIZE(1..100)) OPTIONAL, - theSecondLevelCountryName OCTET STRING(SIZE(1..200)) OPTIONAL, - theThirdLevelCountryName OCTET STRING(SIZE(1..200)) OPTIONAL, - email IA5String(SIZE(0..50)) OPTIONAL -} -MP_UserLoggingInReq ::= SEQUENCE -{ - password IA5String(SIZE(6..30)), - deviceId IA5String(SIZE(1..200)) OPTIONAL -} -MP_UserLoggingInResp ::= SEQUENCE -{ - token IA5String(SIZE(40)) OPTIONAL, - refreshToken IA5String(SIZE(40)) OPTIONAL, - tokenExpiration Timestamp OPTIONAL, - vinList SEQUENCE SIZE(1..256) OF VinInfo OPTIONAL, - userPhoto IA5String(SIZE(1..128)) OPTIONAL, - userName IA5String(SIZE(8..12)), - languageType LanguageType OPTIONAL -} -APPUpgradeInfoReq ::= SEQUENCE -{ - appType APPType, - appVersion IA5String(SIZE(1..50)) -} -APPUpgradeInfoResp ::= SEQUENCE -{ - hasNewVersion BOOLEAN, - appVersion IA5String(SIZE(1..50)) OPTIONAL, - forcedUpdate BOOLEAN OPTIONAL, - updateUrl IA5String(SIZE(1..200)) OPTIONAL, - updateInfoEn OCTET STRING(SIZE(1..500)) OPTIONAL, - updateInfoTh OCTET STRING(SIZE(1..500)) OPTIONAL -} -MPAppAttributeResp ::= SEQUENCE -{ - dataAppAttribute IA5String(SIZE(1..65535)) OPTIONAL -} -AdvertiseResp ::= SEQUENCE -{ - advertiseVersion INTEGER(0..281474976710655) OPTIONAL, - advertises SEQUENCE SIZE(0..255) OF Advertise OPTIONAL -} -AbortSendMessageReq ::= SEQUENCE -{ - messages SEQUENCE SIZE(1..256) OF Message OPTIONAL, - messageId INTEGER(0..281474976710655) OPTIONAL, - actionType IA5String(SIZE(1..20)) OPTIONAL -} -MessageListReq ::= SEQUENCE -{ - startEndNumber StartEndNumber, - messageGroup IA5String(SIZE(1..20)) OPTIONAL -} -MessageListResp ::= SEQUENCE -{ - recordsNumber INTEGER(0..281474976710655), - messages SEQUENCE SIZE(1..256) OF Message OPTIONAL -} -GetUnreadMessageCountResp ::= SEQUENCE -{ - totalNumber INTEGER(0..281474976710655), - newsNumber INTEGER(0..281474976710655), - commandNumber INTEGER(0..281474976710655), - alarmNumber INTEGER(0..281474976710655) -} -SetNotificationCountReq ::= SEQUENCE -{ - notificationCount INTEGER(0..255) -} -PINVerificationReq ::= SEQUENCE -{ - pin IA5String(SIZE(32)) -} -AlarmSwitch ::= SEQUENCE -{ - alarmSettingType MP_AlarmSettingType, - alarmSwitch BOOLEAN, - functionSwitch BOOLEAN -} -LanguageType ::= ENUMERATED -{ - thai(0), - english(1), - china(2), - de(3), - fr(4), - es(5), - nl(6), - nn(7), - da(8), - sv(9), - it(10), - pt(11), - pl(12), - el(13), - fi(14), - arabic(15), - hindi(16) -} -Timestamp ::= SEQUENCE -{ - seconds INTEGER(0..4294967295) -} -VinInfo ::= SEQUENCE -{ - vin IA5String(SIZE(17)), - name OCTET STRING(SIZE(1..128)) OPTIONAL, - series IA5String(SIZE(1..10)), - brandName OCTET STRING(SIZE(1..24)), - modelName OCTET STRING(SIZE(1..100)), - vehiclePhoto IA5String(SIZE(1..128)) OPTIONAL, - isAcivate BOOLEAN, - isCurrentVehicle INTEGER(0..10) OPTIONAL, - modelYear IA5String(SIZE(4)) OPTIONAL, - colorName OCTET STRING(SIZE(1..50)) OPTIONAL, - modelConfigurationJsonStr IA5String(SIZE(1..1024)) OPTIONAL, - bindTime Timestamp OPTIONAL, - tboxSimNo IA5String(SIZE(19)) OPTIONAL -} -APPType ::= ENUMERATED -{ - ios(0), - android(1) -} -Advertise ::= SEQUENCE -{ - advertiseType IA5String(SIZE(3)) OPTIONAL, - title OCTET STRING(SIZE(1..128)) OPTIONAL, - photoUrl IA5String(SIZE(1..255)) OPTIONAL, - detailsUrl IA5String(SIZE(1..255)) OPTIONAL, - startTime Timestamp OPTIONAL, - endTime Timestamp OPTIONAL -} -Message ::= SEQUENCE -{ - messageId INTEGER(0..281474976710655), - messageType IA5String(SIZE(3)), - title OCTET STRING(SIZE(1..128)), - messageTime Timestamp, - sender OCTET STRING(SIZE(1..64)), - contentId SEQUENCE SIZE(1..256) OF ContentId OPTIONAL, - content OCTET STRING(SIZE(1..2048)) OPTIONAL, - readStatus INTEGER(-128..128) OPTIONAL -} -StartEndNumber ::= SEQUENCE -{ - startNumber INTEGER(0..281474976710655), - endNumber INTEGER(0..281474976710655) -} -Message ::= SEQUENCE -{ - messageId INTEGER(0..281474976710655), - messageType IA5String(SIZE(3)), - title OCTET STRING(SIZE(1..128)), - messageTime Timestamp, - sender OCTET STRING(SIZE(1..64)), - contentId SEQUENCE SIZE(1..256) OF ContentId OPTIONAL, - content OCTET STRING(SIZE(1..2048)) OPTIONAL, - readStatus INTEGER(-128..128) OPTIONAL, - vin IA5String(SIZE(17)) OPTIONAL -} -MP_AlarmSettingType ::= ENUMERATED -{ - abnormal(0), - moving(1), - region(2), - engineStart(3), - startVehicleStatus(4), - offCar(5), - speeding(6) -} -Timestamp ::= SEQUENCE -{ - seconds INTEGER(0..4294967295) -} -ContentId ::= SEQUENCE -{ - contentId INTEGER(0..281474976710655) -} -ContentId ::= SEQUENCE -{ - contentId INTEGER(0..281474976710655), - description OCTET STRING(SIZE(1..255)) OPTIONAL -} - -END diff --git a/ASN.1 schema/v1_1/MP_DispatcherBody.asn1 b/ASN.1 schema/v1_1/MP_DispatcherBody.asn1 deleted file mode 100644 index a3716467..00000000 --- a/ASN.1 schema/v1_1/MP_DispatcherBody.asn1 +++ /dev/null @@ -1,64 +0,0 @@ -MP_DispatcherBodyModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -MP_DispatcherBody ::= SEQUENCE -{ - uid IA5String(SIZE(50)) OPTIONAL, - token IA5String(SIZE(40)) OPTIONAL, - applicationID IA5String(SIZE(3)), - vin IA5String(SIZE(17)) OPTIONAL, - eventCreationTime INTEGER(0..4294967295), - eventID INTEGER(0..281474976710655) OPTIONAL, - messageID INTEGER(0..255), - messageCounter MessageCounter OPTIONAL, - ackRequired BOOLEAN OPTIONAL, - statelessDispatcherMessage BOOLEAN OPTIONAL, - crqmRequest BOOLEAN OPTIONAL, - basicPosition BasicPosition OPTIONAL, - networkInfo NetworkInfo OPTIONAL, - simInfo NumericString(SIZE(19)) OPTIONAL, - hmiLanguage LanguageType OPTIONAL, - iccID NumericString(SIZE(20)), - applicationDataLength INTEGER(0..4294967295), - applicationDataEncoding DataEncodingType OPTIONAL, - applicationDataProtocolVersion INTEGER(0..65535), - testFlag INTEGER(1..3) OPTIONAL, - result INTEGER(0..65535) OPTIONAL, - errorMessage OCTET STRING(SIZE(1..1024)) OPTIONAL -} -MessageCounter ::= SEQUENCE -{ - uplinkCounter INTEGER(0..255), - downlinkCounter INTEGER(0..255) -} -BasicPosition ::= SEQUENCE -{ - latitude INTEGER(-90000000..90000000), - longitude INTEGER(-180000000..180000000) -} -NetworkInfo ::= SEQUENCE -{ - mccNetwork NumericString(SIZE(3)), - mncNetwork NumericString(SIZE(3)), - mccSim NumericString(SIZE(3)), - mncSim NumericString(SIZE(3)), - signalStrength INTEGER(0..99) -} -LanguageType ::= ENUMERATED -{ - simplifiedChinese(0), - english(1), - spanish(2), - arabic(3), - hindi(4) -} -DataEncodingType ::= ENUMERATED -{ - perUnaligned(0), - der(1), - ber(2) -} - -END diff --git a/ASN.1 schema/v1_1/MP_DispatcherHeader.asn1 b/ASN.1 schema/v1_1/MP_DispatcherHeader.asn1 deleted file mode 100644 index 2d48e5a8..00000000 --- a/ASN.1 schema/v1_1/MP_DispatcherHeader.asn1 +++ /dev/null @@ -1,14 +0,0 @@ -MP_DispatcherHeaderModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -MP_DispatcherHeader ::= SEQUENCE -{ - dispatcherBodyEncoding INTEGER(0..2), - dispatcherMessageLength INTEGER(0..255), - protocolVersion INTEGER(0..255), - securityContext INTEGER(0..255) -} - -END diff --git a/ASN.1 schema/v2_1/ApplicationData.asn1 b/ASN.1 schema/v2_1/ApplicationData.asn1 deleted file mode 100644 index 8b8d5d80..00000000 --- a/ASN.1 schema/v2_1/ApplicationData.asn1 +++ /dev/null @@ -1,138 +0,0 @@ -ApplicationDataModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -MP_SecurityAlarmResp ::= SEQUENCE -{ - securityAlarms SEQUENCE SIZE(1..256) OF SecurityAlarm OPTIONAL -} -OTA_RVMVehicleStatusReq ::= SEQUENCE -{ - vehStatusReqType INTEGER(0..255) -} -OTA_RVMVehicleStatusResp25857 ::= SEQUENCE -{ - statusTime INTEGER(0..2147483647), - gpsPosition RvsPosition(1), - basicVehicleStatus RvsBasicStatus25857(1), - extendedVehicleStatus RvsExtStatus(1) OPTIONAL -} -OTA_RVCReq ::= SEQUENCE -{ - rvcReqType OCTET STRING(SIZE(1)), - rvcParams SEQUENCE SIZE(1..10) OF RvcReqParam OPTIONAL -} -OTA_RVCStatus25857 ::= SEQUENCE -{ - rvcReqType OCTET STRING(SIZE(1)), - rvcReqSts OCTET STRING(SIZE(1)), - failureType INTEGER(0..255) OPTIONAL, - gpsPosition RvsPosition(1), - basicVehicleStatus RvsBasicStatus25857(1) -} -SecurityAlarm ::= SEQUENCE -{ - title OCTET STRING(SIZE(1..128)) OPTIONAL, - content OCTET STRING(SIZE(1..2048)) OPTIONAL, - messageType IA5String(SIZE(3)), - vin IA5String(SIZE(17)), - alertId INTEGER(0..65535), - alertTime INTEGER(0..2147483647) OPTIONAL, - latitude INTEGER(-90000000..90000000), - longitude INTEGER(-180000000..180000000) -} -RvsPosition ::= SEQUENCE -{ - wayPoint RvsWayPoint, - timestamp4Short Timestamp4Short, - gpsStatus GPSStatus -} -RvsBasicStatus25857 ::= SEQUENCE -{ - driverDoor BOOLEAN, - passengerDoor BOOLEAN, - rearLeftDoor BOOLEAN, - rearRightDoor BOOLEAN, - bootStatus BOOLEAN, - bonnetStatus BOOLEAN, - lockStatus BOOLEAN, - driverWindow BOOLEAN OPTIONAL, - passengerWindow BOOLEAN OPTIONAL, - rearLeftWindow BOOLEAN OPTIONAL, - rearRightWindow BOOLEAN OPTIONAL, - sunroofStatus BOOLEAN OPTIONAL, - frontRrightTyrePressure INTEGER(0..255) OPTIONAL, - frontLeftTyrePressure INTEGER(0..255) OPTIONAL, - rearRightTyrePressure INTEGER(0..255) OPTIONAL, - rearLeftTyrePressure INTEGER(0..255) OPTIONAL, - wheelTyreMonitorStatus INTEGER(0..255) OPTIONAL, - sideLightStatus BOOLEAN, - dippedBeamStatus BOOLEAN, - mainBeamStatus BOOLEAN, - vehicleAlarmStatus INTEGER(0..255) OPTIONAL, - engineStatus INTEGER(0..255), - powerMode INTEGER(0..255), - lastKeySeen INTEGER(0..65535), - currentjourneyDistance INTEGER(0..65535), - currentJourneyID INTEGER(0..2147483647), - interiorTemperature INTEGER(-128..127), - exteriorTemperature INTEGER(-128..127), - fuelLevelPrc INTEGER(0..255), - fuelRange INTEGER(0..65535), - remoteClimateStatus INTEGER(0..255), - frontLeftSeatHeatLevel INTEGER(0..255) OPTIONAL, - frontRightSeatHeatLevel INTEGER(0..255) OPTIONAL, - canBusActive BOOLEAN, - timeOfLastCANBUSActivity INTEGER(0..2147483647), - clstrDspdFuelLvlSgmt INTEGER(0..255), - mileage INTEGER(0..2147483647), - batteryVoltage INTEGER(0..65535), - handBrake BOOLEAN, - vehElecRngDsp INTEGER(0..255), - fuelRangeElec INTEGER(0..65535) OPTIONAL, - rmtHtdRrWndSt INTEGER(0..255), - extendedData1 INTEGER(0..2147483647) OPTIONAL, - extendedData2 INTEGER(0..2147483647) OPTIONAL -} -RvsExtStatus ::= SEQUENCE -{ - vehicleAlerts SEQUENCE SIZE(0..64) OF VehicleAlertInfo -} -RvcReqParam ::= SEQUENCE -{ - paramId INTEGER(0..65535), - paramValue OCTET STRING(SIZE(1..255)) -} -RvsWayPoint ::= SEQUENCE -{ - position RvsWGS84Point, - heading INTEGER(0..359), - speed INTEGER(-1000..4500), - hdop INTEGER(0..1000), - satellites INTEGER(0..16) -} -Timestamp4Short ::= SEQUENCE -{ - seconds INTEGER(0..2147483647) -} -GPSStatus ::= ENUMERATED -{ - noGpsSignal(0), - timeFix(1), - fix2D(2), - fix3D(3) -} -VehicleAlertInfo ::= SEQUENCE -{ - id INTEGER(0..255), - value INTEGER(0..255) -} -RvsWGS84Point ::= SEQUENCE -{ - latitude INTEGER(-90000000..90000000), - longitude INTEGER(-180000000..180000000), - altitude INTEGER(-100..8900) -} - -END diff --git a/ASN.1 schema/v2_1/MP_DispatcherBody.asn1 b/ASN.1 schema/v2_1/MP_DispatcherBody.asn1 deleted file mode 100644 index 30177a4e..00000000 --- a/ASN.1 schema/v2_1/MP_DispatcherBody.asn1 +++ /dev/null @@ -1,33 +0,0 @@ -MP_DispatcherBodyModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -MP_DispatcherBody ::= SEQUENCE -{ - uid IA5String(SIZE(50)) OPTIONAL, - token IA5String(SIZE(40)) OPTIONAL, - applicationID IA5String(SIZE(3)), - vin IA5String(SIZE(17)) OPTIONAL, - messageID INTEGER(0..255), - eventCreationTime INTEGER(0..2147483647), - eventID INTEGER(0..2147483647) OPTIONAL, - ulMessageCounter INTEGER(0..65535) OPTIONAL, - dlMessageCounter INTEGER(0..65535) OPTIONAL, - ackMessageCounter INTEGER(0..65535) OPTIONAL, - ackRequired BOOLEAN OPTIONAL, - applicationDataLength INTEGER(0..65535) OPTIONAL, - applicationDataEncoding DataEncodingType OPTIONAL, - applicationDataProtocolVersion INTEGER(0..65535) OPTIONAL, - testFlag INTEGER(1..3) OPTIONAL, - result INTEGER(0..65535) OPTIONAL, - errorMessage OCTET STRING(SIZE(1..1024)) OPTIONAL -} -DataEncodingType ::= ENUMERATED -{ - perUnaligned(0), - der(1), - ber(2) -} - -END diff --git a/ASN.1 schema/v2_1/MP_DispatcherHeader.asn1 b/ASN.1 schema/v2_1/MP_DispatcherHeader.asn1 deleted file mode 100644 index 103e8183..00000000 --- a/ASN.1 schema/v2_1/MP_DispatcherHeader.asn1 +++ /dev/null @@ -1,13 +0,0 @@ -MP_DispatcherHeaderModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -MP_DispatcherHeader ::= SEQUENCE -{ - dispatcherBodyEncoding INTEGER(0..2), - dispatcherMessageLength INTEGER(0..255), - protocolVersion INTEGER(0..255) -} - -END diff --git a/ASN.1 schema/v3_0/ApplicationData.asn1 b/ASN.1 schema/v3_0/ApplicationData.asn1 deleted file mode 100644 index de2de0fb..00000000 --- a/ASN.1 schema/v3_0/ApplicationData.asn1 +++ /dev/null @@ -1,99 +0,0 @@ -ApplicationDataModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -OTA_ChrgCtrlReq ::= SEQUENCE -{ - chrgCtrlReq INTEGER(0..255), - tboxV2XReq INTEGER(0..255), - tboxEleccLckCtrlReq INTEGER(0..255) -} -OTA_ChrgCtrlStsResp ::= SEQUENCE -{ - chrgCtrlDspCmd INTEGER(0..255), - chrgCtrlResp INTEGER(0..255), - bmsDsChrgCtrlDspCmd INTEGER(0..255) OPTIONAL, - bmsDsChrgCtrlResp INTEGER(0..255) OPTIONAL, - ccuEleccLckCtrlDspCmd INTEGER(0..255) OPTIONAL, - ccuEleccLckCtrlResp INTEGER(0..255) OPTIONAL, - rvcReqSts OCTET STRING(SIZE(1)) -} -OTA_ChrgMangDataResp ::= SEQUENCE -{ - bmsReserCtrlDspCmd INTEGER(0..255), - bmsReserStHourDspCmd INTEGER(0..255), - bmsReserStMintueDspCmd INTEGER(0..255), - bmsReserSpHourDspCmd INTEGER(0..255), - bmsReserSpMintueDspCmd INTEGER(0..255), - bmsOnBdChrgTrgtSOCDspCmd INTEGER(0..255), - bmsEstdElecRng INTEGER(0..65535), - bmsAltngChrgCrntDspCmd INTEGER(0..255), - bmsChrgCtrlDspCmd INTEGER(0..255), - chrgngRmnngTime INTEGER(0..65535), - chrgngRmnngTimeV INTEGER(0..255), - bmsChrgOtptCrntReq INTEGER(0..65535), - bmsChrgOtptCrntReqV INTEGER(0..255) OPTIONAL, - bmsPackCrnt INTEGER(0..65535), - bmsPackCrntV INTEGER(0..255) OPTIONAL, - bmsPackVol INTEGER(0..65535), - bmsPackSOCDsp INTEGER(0..65535), - bmsChrgSts INTEGER(0..255), - bmsChrgSpRsn INTEGER(0..255), - clstrElecRngToEPT INTEGER(0..65535), - bmsPTCHeatReqDspCmd INTEGER(0..255), - bmsPTCHeatResp INTEGER(0..255) OPTIONAL, - ccuEleccLckCtrlDspCmd INTEGER(0..255) OPTIONAL, - bmsPTCHeatSpRsn INTEGER(0..255) OPTIONAL, - bmsDsChrgSpRsn INTEGER(0..255) OPTIONAL, - disChrgngRmnngTime INTEGER(0..65535) OPTIONAL, - disChrgngRmnngTimeV INTEGER(0..255) OPTIONAL, - imcuVehElecRng INTEGER(0..65535) OPTIONAL, - imcuVehElecRngV INTEGER(0..255) OPTIONAL, - imcuChrgngEstdElecRng INTEGER(0..65535) OPTIONAL, - imcuChrgngEstdElecRngV INTEGER(0..255) OPTIONAL, - imcuDschrgngEstdElecRng INTEGER(0..65535) OPTIONAL, - imcuDschrgngEstdElecRngV INTEGER(0..255) OPTIONAL, - chrgngSpdngTime INTEGER(0..65535) OPTIONAL, - chrgngSpdngTimeV INTEGER(0..255) OPTIONAL, - chrgngAddedElecRng INTEGER(0..65535) OPTIONAL, - chrgngAddedElecRngV INTEGER(0..255) OPTIONAL, - onBdChrgrAltrCrntInptCrnt INTEGER(0..255) OPTIONAL, - onBdChrgrAltrCrntInptVol INTEGER(0..255) OPTIONAL, - ccuOnbdChrgrPlugOn INTEGER(0..255) OPTIONAL, - ccuOffBdChrgrPlugOn INTEGER(0..255) OPTIONAL, - chrgngDoorPosSts INTEGER(0..255) OPTIONAL, - chrgngDoorOpenCnd INTEGER(0..255) OPTIONAL, - chargeStatus RvsChargingStatus(1), - bmsAdpPubChrgSttnDspCmd INTEGER(0..255) -} -RvsChargingStatus ::= SEQUENCE -{ - realtimePower INTEGER(0..65535), - chargingGunState BOOLEAN, - fuelRangeElec INTEGER(0..65535), - chargingType INTEGER(0..255), - startTime INTEGER(0..2147483647) OPTIONAL, - endTime INTEGER(0..2147483647) OPTIONAL, - chargingPileID IA5String(SIZE(0..64)) OPTIONAL, - chargingPileSupplier IA5String(SIZE(0..64)) OPTIONAL, - workingCurrent INTEGER(0..65535) OPTIONAL, - workingVoltage INTEGER(0..65535) OPTIONAL, - mileageSinceLastCharge INTEGER(0..65535) OPTIONAL, - powerUsageSinceLastCharge INTEGER(0..65535) OPTIONAL, - mileageOfDay INTEGER(0..65535) OPTIONAL, - powerUsageOfDay INTEGER(0..65535) OPTIONAL, - staticEnergyConsumption INTEGER(0..65535) OPTIONAL, - chargingElectricityPhase INTEGER(0..255) OPTIONAL, - chargingDuration INTEGER(0..2147483647) OPTIONAL, - lastChargeEndingPower INTEGER(0..65535) OPTIONAL, - totalBatteryCapacity INTEGER(0..65535) OPTIONAL, - fotaLowestVoltage INTEGER(0..255) OPTIONAL, - mileage INTEGER(0..2147483647), - extendedData1 INTEGER(0..2147483647) OPTIONAL, - extendedData2 INTEGER(0..2147483647) OPTIONAL, - extendedData3 IA5String(SIZE(0..1024)) OPTIONAL, - extendedData4 IA5String(SIZE(0..1024)) OPTIONAL -} - -END diff --git a/ASN.1 schema/v3_0/MP_DispatcherBody.asn1 b/ASN.1 schema/v3_0/MP_DispatcherBody.asn1 deleted file mode 100644 index 30177a4e..00000000 --- a/ASN.1 schema/v3_0/MP_DispatcherBody.asn1 +++ /dev/null @@ -1,33 +0,0 @@ -MP_DispatcherBodyModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -MP_DispatcherBody ::= SEQUENCE -{ - uid IA5String(SIZE(50)) OPTIONAL, - token IA5String(SIZE(40)) OPTIONAL, - applicationID IA5String(SIZE(3)), - vin IA5String(SIZE(17)) OPTIONAL, - messageID INTEGER(0..255), - eventCreationTime INTEGER(0..2147483647), - eventID INTEGER(0..2147483647) OPTIONAL, - ulMessageCounter INTEGER(0..65535) OPTIONAL, - dlMessageCounter INTEGER(0..65535) OPTIONAL, - ackMessageCounter INTEGER(0..65535) OPTIONAL, - ackRequired BOOLEAN OPTIONAL, - applicationDataLength INTEGER(0..65535) OPTIONAL, - applicationDataEncoding DataEncodingType OPTIONAL, - applicationDataProtocolVersion INTEGER(0..65535) OPTIONAL, - testFlag INTEGER(1..3) OPTIONAL, - result INTEGER(0..65535) OPTIONAL, - errorMessage OCTET STRING(SIZE(1..1024)) OPTIONAL -} -DataEncodingType ::= ENUMERATED -{ - perUnaligned(0), - der(1), - ber(2) -} - -END diff --git a/ASN.1 schema/v3_0/MP_DispatcherHeader.asn1 b/ASN.1 schema/v3_0/MP_DispatcherHeader.asn1 deleted file mode 100644 index 103e8183..00000000 --- a/ASN.1 schema/v3_0/MP_DispatcherHeader.asn1 +++ /dev/null @@ -1,13 +0,0 @@ -MP_DispatcherHeaderModule - -DEFINITIONS -AUTOMATIC TAGS ::= -BEGIN -MP_DispatcherHeader ::= SEQUENCE -{ - dispatcherBodyEncoding INTEGER(0..2), - dispatcherMessageLength INTEGER(0..255), - protocolVersion INTEGER(0..255) -} - -END diff --git a/README.md b/README.md index fada039a..ba3b1fba 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,11 @@ Implementation of the SAIC API in Java. ![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/SAIC-iSmart-API/saic-java-client/maven.yml) +## Documentation + +[SAIC API Documentation](https://github.com/SAIC-iSmart-API/documentation) + + ## Usage [MQTT Gateway](saic-java-mqtt-gateway) @@ -31,6 +36,11 @@ Go to the project directory cd saic-java-client ``` +Checkout submodules +```bash +git submodule update --init --recursive +``` + Build and test ```bash diff --git a/documentation b/documentation new file mode 160000 index 00000000..137af4b4 --- /dev/null +++ b/documentation @@ -0,0 +1 @@ +Subproject commit 137af4b4fa3580f2cb3d98d61e921954110599ad diff --git a/pom.xml b/pom.xml index 7621cf36..73651b52 100644 --- a/pom.xml +++ b/pom.xml @@ -129,6 +129,11 @@ exec-maven-plugin 3.1.0 + + org.apache.maven.plugins + maven-surefire-plugin + 3.1.2 + org.apache.maven.plugins maven-jar-plugin diff --git a/saic-java-api-cli/src/main/java/net/heberling/ismart/cli/GetData.java b/saic-java-api-cli/src/main/java/net/heberling/ismart/cli/GetData.java index 3c06f2f9..c3295ba4 100644 --- a/saic-java-api-cli/src/main/java/net/heberling/ismart/cli/GetData.java +++ b/saic-java-api-cli/src/main/java/net/heberling/ismart/cli/GetData.java @@ -23,7 +23,7 @@ import net.heberling.ismart.asn1.v1_1.entity.MP_UserLoggingInReq; import net.heberling.ismart.asn1.v1_1.entity.MP_UserLoggingInResp; import net.heberling.ismart.asn1.v1_1.entity.VinInfo; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgMangDataResp; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgMangDataResp; import org.bn.annotations.ASN1Enum; import org.bn.annotations.ASN1Sequence; import org.bn.coders.IASN1PreparedElement; @@ -89,14 +89,14 @@ public static void main(String[] args) throws IOException { URI.create("https://tap-eu.soimt.com/TAP.Web/ota.mpv30"), chargingStatusRequestMessage); - net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class) + net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage = + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class) .decodeResponse(chargingStatusResponse); System.out.println( toJSON( anonymized( - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class), + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class), chargingStatusResponseMessage))); // we get an eventId back... @@ -125,13 +125,13 @@ public static void main(String[] args) throws IOException { chargingStatusRequestMessage); chargingStatusResponseMessage = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class) + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class) .decodeResponse(chargingStatusResponse); System.out.println( toJSON( anonymized( - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class), + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class), chargingStatusResponseMessage))); } } diff --git a/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/AbstractMessageCoderTest.java b/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/AbstractMessageCoderTest.java index 71e1fec4..ccb4017c 100644 --- a/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/AbstractMessageCoderTest.java +++ b/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/AbstractMessageCoderTest.java @@ -28,7 +28,7 @@ public class AbstractMessageCoderTest { file = file.getParentFile(); } - examplesDirectory = new File(file.getParentFile(), "docs/examples"); + examplesDirectory = new File(file.getParentFile(), "documentation/docs/examples"); } catch (URISyntaxException e) { throw new ExceptionInInitializerError(e); } diff --git a/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/v3_0/MessageCoderTest.java b/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/v3_0/MessageCoderTest.java index bcf5e5c7..888e4e03 100644 --- a/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/v3_0/MessageCoderTest.java +++ b/saic-java-api-cli/src/test/java/net/heberling/ismart/asn1/v3_0/MessageCoderTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.*; import net.heberling.ismart.asn1.AbstractMessageCoderTest; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgMangDataResp; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgMangDataResp; import org.bn.coders.IASN1PreparedElement; import org.junit.jupiter.api.Test; @@ -17,7 +17,7 @@ void decodeEncodeRequest_516() { @Test void decodeEncodeResponse_516() { - decodeEncode("516_768_response", new MessageCoder<>(OTA_ChrgMangDataResp.class)); + decodeEncode("516_768_response", new MessageCoder<>(OTAChrgMangDataResp.class)); } @Test @@ -28,6 +28,6 @@ void decodeEncodeRequest_516_with_eventid() { @Test void decodeEncodeResponse_516_with_eventid() { - decodeEncode("516_768_response_with_eventid", new MessageCoder<>(OTA_ChrgMangDataResp.class)); + decodeEncode("516_768_response_with_eventid", new MessageCoder<>(OTAChrgMangDataResp.class)); } } diff --git a/saic-java-api-gateway/src/main/java/net/heberling/ismart/gateway/GetData.java b/saic-java-api-gateway/src/main/java/net/heberling/ismart/gateway/GetData.java index 25144b44..54c3d612 100644 --- a/saic-java-api-gateway/src/main/java/net/heberling/ismart/gateway/GetData.java +++ b/saic-java-api-gateway/src/main/java/net/heberling/ismart/gateway/GetData.java @@ -20,7 +20,7 @@ import net.heberling.ismart.asn1.v1_1.MessageCoder; import net.heberling.ismart.asn1.v1_1.entity.MP_UserLoggingInReq; import net.heberling.ismart.asn1.v1_1.entity.MP_UserLoggingInResp; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgMangDataResp; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgMangDataResp; import org.bn.annotations.ASN1Enum; import org.bn.coders.IASN1PreparedElement; @@ -92,8 +92,8 @@ public static String[] startResponse(String[] args) throws IOException { sendRequest( URI.create("https://tap-eu.soimt.com/TAP.Web/ota.mpv30"), chargingStatusRequestMessage); - net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class) + net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage = + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class) .decodeResponse(chargingStatusResponse); // System.out.println(chargingStatusResponse); @@ -134,7 +134,7 @@ public static String[] startResponse(String[] args) throws IOException { chargingStatusRequestMessage); chargingStatusResponseMessage = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class) + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class) .decodeResponse(chargingStatusResponse); // System.out.println(chargingStatusResponse); diff --git a/saic-java-api/pom.xml b/saic-java-api/pom.xml index afdc39ec..a90257e4 100644 --- a/saic-java-api/pom.xml +++ b/saic-java-api/pom.xml @@ -82,7 +82,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v1_1 -f - ${project.basedir}/../ASN.1 schema/v1_1/MP_DispatcherHeader.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v1_1/MP_DispatcherHeader.asn1 -ns net.heberling.ismart.asn1.v1_1 @@ -102,7 +102,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v1_1 -f - ${project.basedir}/../ASN.1 schema/v1_1/MP_DispatcherBody.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v1_1/MP_DispatcherBody.asn1 -ns net.heberling.ismart.asn1.v1_1 @@ -122,7 +122,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v1_1/entity -f - ${project.basedir}/../ASN.1 schema/v1_1/ApplicationData.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v1_1/ApplicationData.asn1 -ns net.heberling.ismart.asn1.v1_1.entity @@ -142,7 +142,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v2_1 -f - ${project.basedir}/../ASN.1 schema/v2_1/MP_DispatcherHeader.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v2_1/MP_DispatcherHeader.asn1 -ns net.heberling.ismart.asn1.v2_1 @@ -162,7 +162,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v2_1 -f - ${project.basedir}/../ASN.1 schema/v2_1/MP_DispatcherBody.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v2_1/MP_DispatcherBody.asn1 -ns net.heberling.ismart.asn1.v2_1 @@ -182,7 +182,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v2_1/entity -f - ${project.basedir}/../ASN.1 schema/v2_1/ApplicationData.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v2_1/ApplicationData.asn1 -ns net.heberling.ismart.asn1.v2_1.entity @@ -202,7 +202,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v3_0 -f - ${project.basedir}/../ASN.1 schema/v3_0/MP_DispatcherHeader.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v3_0/MP_DispatcherHeader.asn1 -ns net.heberling.ismart.asn1.v3_0 @@ -222,7 +222,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v3_0 -f - ${project.basedir}/../ASN.1 schema/v3_0/MP_DispatcherBody.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v3_0/MP_DispatcherBody.asn1 -ns net.heberling.ismart.asn1.v3_0 @@ -242,7 +242,7 @@ -o ${project.build.directory}/generated-sources/asn1-java/net/heberling/ismart/asn1/v3_0/entity -f - ${project.basedir}/../ASN.1 schema/v3_0/ApplicationData.asn1 + ${project.basedir}/../documentation/ASN.1 schema/v3_0/ApplicationData.asn1 -ns net.heberling.ismart.asn1.v3_0.entity diff --git a/saic-java-client/src/main/java/net/heberling/ismart/abrp/ABRP.java b/saic-java-client/src/main/java/net/heberling/ismart/abrp/ABRP.java index 14f551cd..4d98f21e 100644 --- a/saic-java-client/src/main/java/net/heberling/ismart/abrp/ABRP.java +++ b/saic-java-client/src/main/java/net/heberling/ismart/abrp/ABRP.java @@ -7,7 +7,7 @@ import java.util.Objects; import java.util.stream.Collectors; import net.heberling.ismart.asn1.v2_1.entity.OTA_RVMVehicleStatusResp25857; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgMangDataResp; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgMangDataResp; import org.apache.hc.client5.http.ClientProtocolException; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; @@ -27,7 +27,7 @@ public static String updateAbrp( String abrpApiKey, String abrpUserToken, OTA_RVMVehicleStatusResp25857 vehicleStatus, - OTA_ChrgMangDataResp chargeStatus) { + OTAChrgMangDataResp chargeStatus) { try (CloseableHttpClient httpclient = HttpClients.createDefault()) { // Request parameters and other properties. HashMap map = new HashMap<>(); diff --git a/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/ReflectionFeature.java b/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/ReflectionFeature.java index 9c8fccf0..4182bb10 100644 --- a/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/ReflectionFeature.java +++ b/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/ReflectionFeature.java @@ -37,7 +37,7 @@ public void beforeAnalysis(BeforeAnalysisAccess access) { register(net.heberling.ismart.asn1.v3_0.MP_DispatcherHeader.class); register(net.heberling.ismart.asn1.v1_1.entity.StartEndNumber.class); register(net.heberling.ismart.asn1.v2_1.MP_DispatcherBody.class); - register(net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgMangDataResp.class); + register(net.heberling.ismart.asn1.v3_0.entity.OTAChrgMangDataResp.class); register(net.heberling.ismart.asn1.v3_0.DataEncodingType.class); register(net.heberling.ismart.asn1.v1_1.entity.VinInfo.class); register(net.heberling.ismart.asn1.v1_1.entity.AdvertiseResp.class); diff --git a/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleHandler.java b/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleHandler.java index de7d7558..e339a2c8 100644 --- a/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleHandler.java +++ b/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleHandler.java @@ -21,9 +21,9 @@ import net.heberling.ismart.asn1.v2_1.entity.OTA_RVMVehicleStatusResp25857; import net.heberling.ismart.asn1.v2_1.entity.RvcReqParam; import net.heberling.ismart.asn1.v3_0.Message; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgCtrlReq; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgCtrlStsResp; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgMangDataResp; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgCtrlReq; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgCtrlStsResp; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgMangDataResp; import org.bn.coders.IASN1PreparedElement; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; @@ -78,7 +78,7 @@ void handleVehicle() throws MqttException, IOException { OTA_RVMVehicleStatusResp25857 vehicleStatus = updateVehicleStatus(uid, token, vinInfo.getVin()); - OTA_ChrgMangDataResp chargeStatus = updateChargeStatus(uid, token, vinInfo.getVin()); + OTAChrgMangDataResp chargeStatus = updateChargeStatus(uid, token, vinInfo.getVin()); final String abrpApiKey = saicMqttGateway.getAbrpApiKey(); final String abrpUserToken = saicMqttGateway.getAbrpUserToken(vinInfo.getVin()); if (abrpApiKey != null && abrpUserToken != null && vehicleStatus != null) { @@ -193,7 +193,7 @@ private OTA_RVMVehicleStatusResp25857 updateVehicleStatus(String uid, String tok return vehicleStatusResponseMessage.getApplicationData(); } - private OTA_ChrgMangDataResp updateChargeStatus(String uid, String token, String vin) + private OTAChrgMangDataResp updateChargeStatus(String uid, String token, String vin) throws IOException, MqttException { net.heberling.ismart.asn1.v3_0.MessageCoder chargingStatusRequestMessageEncoder = @@ -213,14 +213,14 @@ private OTA_ChrgMangDataResp updateChargeStatus(String uid, String token, String String chargingStatusResponse = Client.sendRequest(saicUri.resolve("/TAP.Web/ota.mpv30"), chargingStatusRequestMessage); - net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class) + net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage = + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class) .decodeResponse(chargingStatusResponse); LOGGER.debug( SaicMqttGateway.toJSON( SaicMqttGateway.anonymized( - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class), + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class), chargingStatusResponseMessage))); // we get an eventId back... @@ -255,13 +255,13 @@ private OTA_ChrgMangDataResp updateChargeStatus(String uid, String token, String Client.sendRequest(saicUri.resolve("/TAP.Web/ota.mpv30"), chargingStatusRequestMessage); chargingStatusResponseMessage = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class) + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class) .decodeResponse(chargingStatusResponse); LOGGER.debug( SaicMqttGateway.toJSON( SaicMqttGateway.anonymized( - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgMangDataResp.class), + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgMangDataResp.class), chargingStatusResponseMessage))); } vehicleState.handleChargeStatusMessage(chargingStatusResponseMessage); @@ -393,15 +393,15 @@ private void sendCharging(boolean state) TimeoutException, MqttException, IOException { - net.heberling.ismart.asn1.v3_0.MessageCoder otaRvcReqMessageCoder = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgCtrlReq.class); + net.heberling.ismart.asn1.v3_0.MessageCoder otaRvcReqMessageCoder = + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgCtrlReq.class); - OTA_ChrgCtrlReq req = new OTA_ChrgCtrlReq(); + OTAChrgCtrlReq req = new OTAChrgCtrlReq(); req.setTboxV2XReq(0); req.setTboxEleccLckCtrlReq(0); req.setChrgCtrlReq(state ? 1 : 2); - Message sendCommandRequest = + Message sendCommandRequest = otaRvcReqMessageCoder.initializeMessage(uid, token, vinInfo.getVin(), "516", 768, 7, req); String sendCommandRequestMessage = otaRvcReqMessageCoder.encodeRequest(sendCommandRequest); @@ -409,10 +409,10 @@ private void sendCharging(boolean state) String sendCommandResponseMessage = Client.sendRequest(saicUri.resolve("/TAP.Web/ota.mpv30"), sendCommandRequestMessage); - final net.heberling.ismart.asn1.v3_0.MessageCoder + final net.heberling.ismart.asn1.v3_0.MessageCoder otaRvcStatus25857MessageCoder = - new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTA_ChrgCtrlStsResp.class); - net.heberling.ismart.asn1.v3_0.Message sendCommandReqestMessage = + new net.heberling.ismart.asn1.v3_0.MessageCoder<>(OTAChrgCtrlStsResp.class); + net.heberling.ismart.asn1.v3_0.Message sendCommandReqestMessage = otaRvcStatus25857MessageCoder.decodeResponse(sendCommandResponseMessage); // ... use that to request the data again, until we have it diff --git a/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleState.java b/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleState.java index ccfc2876..35da7c90 100644 --- a/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleState.java +++ b/saic-java-mqtt-gateway/src/main/java/net/heberling/ismart/mqtt/VehicleState.java @@ -14,7 +14,7 @@ import net.heberling.ismart.asn1.v1_1.entity.VinInfo; import net.heberling.ismart.asn1.v2_1.Message; import net.heberling.ismart.asn1.v2_1.entity.OTA_RVMVehicleStatusResp25857; -import net.heberling.ismart.asn1.v3_0.entity.OTA_ChrgMangDataResp; +import net.heberling.ismart.asn1.v3_0.entity.OTAChrgMangDataResp; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -395,7 +395,7 @@ private static String toRemoteClimate(Integer remoteClimateStatus) { } public void handleChargeStatusMessage( - net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage) + net.heberling.ismart.asn1.v3_0.Message chargingStatusResponseMessage) throws MqttException { MqttMessage msg = new MqttMessage(