public bool ConnectToServer(string serverURI) { bool result = false; SecurityResource securityResource; if (_SecurityResources.Children.Count() > 0) { securityResource = _SecurityResources.Children.First() as SecurityResource; } else { securityResource = new SecurityResource("1"); _SecurityResources.Add(securityResource); } securityResource.ServerURI = serverURI; if (serverURI.StartsWith("coaps")) { if (!string.IsNullOrEmpty(_Channel.PSKIdentity)) { securityResource.SecurityMode = TSecurityMode.PreSharedKey; securityResource.ClientPublicKey = Encoding.UTF8.GetBytes(_Channel.PSKIdentity); securityResource.SecretKey = StringUtils.HexStringToByteArray(_Channel.PSKSecret); } else if (!string.IsNullOrEmpty(_Channel.CertificateFile)) { securityResource.SecurityMode = TSecurityMode.Certificate; } } else { securityResource.SecurityMode = TSecurityMode.NoSecurity; } result = ConnectToServer(); return(result); }