/// <summary> /// LWM2M Security object instance. /// </summary> /// <param name="InstanceId">ID of object instance.</param> public Lwm2mSecurityObjectInstance(ushort InstanceId) : base(0, InstanceId) { // E.1 LwM2M Object: LwM2M Security // http://www.openmobilealliance.org/release/LightweightM2M/V1_0-20170208-A/OMA-TS-LightweightM2M-V1_0-20170208-A.pdf this.serverUri = new Lwm2mResourceString("Server", 0, InstanceId, 0, false, false, null); this.bootstrapServer = new Lwm2mResourceBoolean("BootstrapServer", 0, InstanceId, 1, false, false, null); this.securityMode = new Lwm2mResourceInteger("SecurityMode", 0, InstanceId, 2, false, false, null, false); this.publicKeyOrIdentity = new Lwm2mResourceOpaque(null, 0, InstanceId, 3, false, false, null); this.serverPublicKey = new Lwm2mResourceOpaque(null, 0, InstanceId, 4, false, false, null); this.secretKey = new Lwm2mResourceOpaque(null, 0, InstanceId, 5, false, false, null); this.shortServerId = new Lwm2mResourceInteger("ShortServerId", 0, InstanceId, 10, false, false, null, false); this.clientHoldOffTimeSeconds = new Lwm2mResourceInteger("ClientHoldOffTimeSeconds", 0, InstanceId, 11, false, false, null, false); this.serverUri.OnBeforeGet += CheckFromBootstrapServer; this.bootstrapServer.OnBeforeGet += CheckFromBootstrapServer; this.securityMode.OnBeforeGet += CheckFromBootstrapServer; this.publicKeyOrIdentity.OnBeforeGet += CheckFromBootstrapServer; this.serverPublicKey.OnBeforeGet += CheckFromBootstrapServer; this.secretKey.OnBeforeGet += CheckFromBootstrapServer; this.shortServerId.OnBeforeGet += CheckFromBootstrapServer; this.clientHoldOffTimeSeconds.OnBeforeGet += CheckFromBootstrapServer; this.Add(this.serverUri); this.Add(this.bootstrapServer); this.Add(this.securityMode); this.Add(this.publicKeyOrIdentity); this.Add(this.serverPublicKey); this.Add(this.secretKey); this.Add(new Lwm2mResourceNotSupported(0, InstanceId, 6)); // SMS Security Mode this.Add(new Lwm2mResourceNotSupported(0, InstanceId, 7)); // SMS Binding Key Parameters this.Add(new Lwm2mResourceNotSupported(0, InstanceId, 8)); // SMS Binding Secret Key(s) this.Add(new Lwm2mResourceNotSupported(0, InstanceId, 9)); // LwM2M Server SMS Number this.Add(this.shortServerId); this.Add(this.clientHoldOffTimeSeconds); this.Add(new Lwm2mResourceNotSupported(0, InstanceId, 12)); // BootstrapServer Account Timeout }
/// <summary> /// LWM2M Server object instance. /// </summary> /// <param name="InstanceId">ID of object instance.</param> public Lwm2mServerObjectInstance(ushort InstanceId) : base(1, InstanceId) { // E.2 LwM2M Object: LwM2M Server // http://www.openmobilealliance.org/release/LightweightM2M/V1_0-20170208-A/OMA-TS-LightweightM2M-V1_0-20170208-A.pdf this.shortServerId = new Lwm2mResourceInteger("ShortServerId", 1, InstanceId, 0, false, false, null, false); this.lifetimeSeconds = new Lwm2mResourceInteger("LifetimeSeconds", 1, InstanceId, 1, true, false, null, false); this.notificationStoring = new Lwm2mResourceBoolean("NotificationStoring", 1, InstanceId, 6, true, false, null); this.binding = new Lwm2mResourceString("Binding", 1, InstanceId, 7, true, false, null); this.registrationUpdateTrigger = new Lwm2mResourceCommand("RegistrationUpdateTrigger", 1, InstanceId, 8); this.registrationUpdateTrigger.OnExecute += RegistrationUpdateTrigger_OnExecute; this.Add(this.shortServerId); this.Add(this.lifetimeSeconds); this.Add(new Lwm2mResourceNotSupported(1, InstanceId, 2)); // Default Minimum Period this.Add(new Lwm2mResourceNotSupported(1, InstanceId, 3)); // Default Maximum Period this.Add(new Lwm2mResourceNotSupported(1, InstanceId, 4)); // Disable this.Add(new Lwm2mResourceNotSupported(1, InstanceId, 5)); // Disable Timeout this.Add(this.notificationStoring); this.Add(this.binding); this.Add(this.registrationUpdateTrigger); }