Skip to content

Fixing multiple issues #36

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions development/src/main/java/gurux/dlms/GXAPDU.java
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,10 @@ private static void generateApplicationContextName(final int name, final GXDLMSS
}
}
// Add system title.
if (!settings.isServer() && (ciphered || settings.getAuthentication() == Authentication.HIGH_GMAC)
if (!settings.isServer() && (ciphered ||
(settings.getAuthentication() == Authentication.HIGH_GMAC
|| settings.getAuthentication() == Authentication.HIGH_SHA256
|| settings.getAuthentication() == Authentication.HIGH_ECDSA) {
|| settings.getAuthentication() == Authentication.HIGH_ECDSA))) {
if (cipher.getSystemTitle() == null || cipher.getSystemTitle().length == 0) {
throw new IllegalArgumentException("SystemTitle");
}
Expand Down
173 changes: 0 additions & 173 deletions development/src/main/java/gurux/dlms/GXDLMS.java
Original file line number Diff line number Diff line change
Expand Up @@ -231,179 +231,6 @@ private static long getLongInvokeIDPriority(final GXDLMSSettings settings) {
return value;
}

static GXDLMSObject createObject(final GXDLMSSettings settings, final ObjectType type, final int classID,
final int version) {
// If IC is manufacturer specific or unknown.
if (type == null || type == ObjectType.NONE) {
GXDLMSObject obj = null;
if (settings != null && settings.getCustomObjectNotifier() != null) {
obj = settings.getCustomObjectNotifier().onObjectCreate(classID, version);
}
if (obj == null) {
obj = new GXDLMSObject();
}
return obj;
}
switch (type) {
case ACTION_SCHEDULE:
return new GXDLMSActionSchedule();
case ACTIVITY_CALENDAR:
return new GXDLMSActivityCalendar();
case ASSOCIATION_LOGICAL_NAME:
return new GXDLMSAssociationLogicalName();
case ASSOCIATION_SHORT_NAME:
return new GXDLMSAssociationShortName();
case AUTO_ANSWER:
return new GXDLMSAutoAnswer();
case AUTO_CONNECT:
return new GXDLMSAutoConnect();
case CLOCK:
return new GXDLMSClock();
case DATA:
return new GXDLMSData();
case DEMAND_REGISTER:
return new GXDLMSDemandRegister();
case MAC_ADDRESS_SETUP:
return new GXDLMSMacAddressSetup();
case EXTENDED_REGISTER:
return new GXDLMSExtendedRegister();
case GPRS_SETUP:
return new GXDLMSGprsSetup();
case IEC_HDLC_SETUP:
return new GXDLMSHdlcSetup();
case IEC_LOCAL_PORT_SETUP:
return new GXDLMSIECLocalPortSetup();
case IEC_TWISTED_PAIR_SETUP:
return new GXDLMSIecTwistedPairSetup();
case IP4_SETUP:
return new GXDLMSIp4Setup();
case IP6_SETUP:
return new GXDLMSIp6Setup();
case MBUS_SLAVE_PORT_SETUP:
return new GXDLMSMBusSlavePortSetup();
case IMAGE_TRANSFER:
return new GXDLMSImageTransfer();
case SECURITY_SETUP:
return new GXDLMSSecuritySetup();
case DISCONNECT_CONTROL:
return new GXDLMSDisconnectControl();
case LIMITER:
return new GXDLMSLimiter();
case MBUS_CLIENT:
return new GXDLMSMBusClient();
case MODEM_CONFIGURATION:
return new GXDLMSModemConfiguration();
case PPP_SETUP:
return new GXDLMSPppSetup();
case PROFILE_GENERIC:
return new GXDLMSProfileGeneric();
case REGISTER:
return new GXDLMSRegister();
case REGISTER_ACTIVATION:
return new GXDLMSRegisterActivation();
case REGISTER_MONITOR:
return new GXDLMSRegisterMonitor();
case REGISTER_TABLE:
return new GXDLMSObject();
case ZIG_BEE_SAS_STARTUP:
return new GXDLMSObject();
case ZIG_BEE_SAS_JOIN:
return new GXDLMSObject();
case SAP_ASSIGNMENT:
return new GXDLMSSapAssignment();
case SCHEDULE:
return new GXDLMSSchedule();
case SCRIPT_TABLE:
return new GXDLMSScriptTable();
case SPECIAL_DAYS_TABLE:
return new GXDLMSSpecialDaysTable();
case STATUS_MAPPING:
return new GXDLMSObject();
case TCP_UDP_SETUP:
return new GXDLMSTcpUdpSetup();
case ZIG_BEE_SAS_APS_FRAGMENTATION:
return new GXDLMSObject();
case UTILITY_TABLES:
return new GXDLMSUtilityTables();
case PUSH_SETUP:
return new GXDLMSPushSetup();
case MBUS_MASTER_PORT_SETUP:
return new GXDLMSMBusMasterPortSetup();
case GSM_DIAGNOSTIC:
return new GXDLMSGSMDiagnostic();
case ACCOUNT:
return new GXDLMSAccount();
case CREDIT:
return new GXDLMSCredit();
case CHARGE:
return new GXDLMSCharge();
case TOKEN_GATEWAY:
return new GXDLMSTokenGateway();
case PARAMETER_MONITOR:
return new GXDLMSParameterMonitor();
case COMPACT_DATA:
return new GXDLMSCompactData();
case LLC_SSCS_SETUP:
return new GXDLMSLlcSscsSetup();
case PRIME_NB_OFDM_PLC_PHYSICAL_LAYER_COUNTERS:
return new GXDLMSPrimeNbOfdmPlcPhysicalLayerCounters();
case PRIME_NB_OFDM_PLC_MAC_SETUP:
return new GXDLMSPrimeNbOfdmPlcMacSetup();
case PRIME_NB_OFDM_PLC_MAC_FUNCTIONAL_PARAMETERS:
return new GXDLMSPrimeNbOfdmPlcMacFunctionalParameters();
case PRIME_NB_OFDM_PLC_MAC_COUNTERS:
return new GXDLMSPrimeNbOfdmPlcMacCounters();
case PRIME_NB_OFDM_PLC_MAC_NETWORK_ADMINISTRATION_DATA:
return new GXDLMSPrimeNbOfdmPlcMacNetworkAdministrationData();
case PRIME_NB_OFDM_PLC_APPLICATIONS_IDENTIFICATION:
return new GXDLMSPrimeNbOfdmPlcApplicationsIdentification();
case IEC_8802_LLC_TYPE1_SETUP:
return new GXDLMSIec8802LlcType1Setup();
case IEC_8802_LLC_TYPE2_SETUP:
return new GXDLMSIec8802LlcType2Setup();
case IEC_8802_LLC_TYPE3_SETUP:
return new GXDLMSIec8802LlcType3Setup();
case SFSK_REPORTING_SYSTEM_LIST:
return new GXDLMSSFSKReportingSystemList();
case ARBITRATOR:
return new GXDLMSArbitrator();
case SFSK_MAC_COUNTERS:
return new GXDLMSSFSKMacCounters();
case SFSK_MAC_SYNCHRONIZATION_TIMEOUTS:
return new GXDLMSSFSKMacSynchronizationTimeouts();
case SFSK_ACTIVE_INITIATOR:
return new GXDLMSSFSKActiveInitiator();
case SFSK_PHY_MAC_SETUP:
return new GXDLMSSFSKPhyMacSetUp();
case NTP_SETUP:
return new GXDLMSNtpSetup();
case COMMUNICATION_PORT_PROTECTION:
return new GXDLMSCommunicationPortProtection();
case G3_PLC_MAC_LAYER_COUNTERS:
return new GXDLMSG3PlcMacLayerCounters();
case G3_PLC6_LO_WPAN:
return new GXDLMSG3Plc6LoWPan();
case G3_PLC_MAC_SETUP:
return new GXDLMSG3PlcMacSetup();
case ARRAY_MANAGER:
return new GXDLMSArrayManager();
case LTE_MONITORING:
return new GXDLMSLteMonitoring();
case FUNCTION_CONTROL:
return new GXDLMSFunctionControl();
case COAP_SETUP:
return new GXDLMSCoAPSetup();
case COAP_DIAGNOSTIC:
return new GXDLMSCoAPDiagnostic();
case MBUS_PORT_SETUP:
return new GXDLMSMBusPortSetup();
case MBUS_DIAGNOSTIC:
return new GXDLMSMBusDiagnostic();
default:
return new GXDLMSObject();
}
}

/**
* Generates an acknowledgment message, with which the server is informed to
* send next packets.
Expand Down
15 changes: 5 additions & 10 deletions development/src/main/java/gurux/dlms/GXDLMSClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,7 @@
import gurux.dlms.internal.GXCommon;
import gurux.dlms.internal.GXDataInfo;
import gurux.dlms.manufacturersettings.GXObisCodeCollection;
import gurux.dlms.objects.GXDLMSCaptureObject;
import gurux.dlms.objects.GXDLMSData;
import gurux.dlms.objects.GXDLMSObject;
import gurux.dlms.objects.GXDLMSObjectCollection;
import gurux.dlms.objects.GXDLMSProfileGeneric;
import gurux.dlms.objects.IGXDLMSBase;
import gurux.dlms.objects.*;
import gurux.dlms.objects.enums.CertificateType;
import gurux.dlms.objects.enums.SecuritySuite;
import gurux.dlms.secure.GXSecure;
Expand Down Expand Up @@ -240,7 +235,7 @@ protected final void setCipher(final GXICipher value) {
/**
* @return Get settings.
*/
protected final GXDLMSSettings getSettings() {
public final GXDLMSSettings getSettings() {
return settings;
}

Expand Down Expand Up @@ -1323,7 +1318,7 @@ public final byte[] disconnectRequest(final boolean force)
static GXDLMSObject createDLMSObject(final GXDLMSSettings settings, final int classID, final Object version,
final int baseName, final Object ln, final Object accessRights, final int lnVersion) {
ObjectType type = ObjectType.forValue(classID);
GXDLMSObject obj = GXDLMS.createObject(settings, type, classID, ((Number) version).intValue());
GXDLMSObject obj = GXCreateObject.createObject(settings, type, classID, ((Number) version).intValue());
updateObjectData(obj, type, version, baseName, (byte[]) ln, accessRights, lnVersion);
return obj;
}
Expand Down Expand Up @@ -3021,7 +3016,7 @@ else if ("0.0.1.2.0.255".equals(sort.getLogicalName())) {
* @return Created object.
*/
public static GXDLMSObject createObject(final ObjectType type) {
return GXDLMS.createObject(null, type, 0, 0);
return GXCreateObject.createObject(null, type, 0, 0);
}

/**
Expand All @@ -3032,7 +3027,7 @@ public static GXDLMSObject createObject(final ObjectType type) {
* @return Created object.
*/
public static GXDLMSObject createCustomObject(final GXDLMSSettings settings, final int type) {
return GXDLMS.createObject(settings, null, type, 0);
return GXCreateObject.createObject(settings, null, type, 0);
}

/**
Expand Down
4 changes: 4 additions & 0 deletions development/src/main/java/gurux/dlms/GXDLMSSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -1625,6 +1625,10 @@ public GXDLMSData getInvocationCounter() {
return invocationCounter;
}

public void setInvocationCounter(GXDLMSData invocationCounter) {
this.invocationCounter = invocationCounter;
}

/**
* @return Crypto notifier.
*/
Expand Down
Loading