diff --git a/MConnectSDK/MConnectClient.cs b/MConnectSDK/MConnectClient.cs index 1c1ee40..e4cfdbb 100644 --- a/MConnectSDK/MConnectClient.cs +++ b/MConnectSDK/MConnectClient.cs @@ -318,28 +318,28 @@ namespace MConnectSDK { // init in stato ND... isHmiEnrolled = false, - cloudStatus = false, - localStatus = false, - source = Source.offline, - callResult = false + CloudStatusOk = false, + LocalStatusOk = false, + Source = SourceType.OFFLINE, + CallResultOk = false }; // verifico REDIS in primis - answ.localStatus = checkRedisAlive(); - if (answ.localStatus) + answ.LocalStatusOk = checkRedisAlive(); + if (answ.LocalStatusOk) { // cerco i TOKEN in REDIS... answ.isAuth = !string.IsNullOrEmpty(refresh_token); answ.isHmiEnrolled = enrollDate < DateTime.Now; - answ.source = Source.local; + answ.Source = SourceType.LOCAL; } // verifico chiamata server... if (_currParam.testMode) { // Fingo che tutto vada bene e di conseguenza setto risposta... - answ.cloudStatus = true; - answ.source = Source.cloud; - answ.callResult = true; + answ.CloudStatusOk = true; + answ.Source = SourceType.CLOUD; + answ.CallResultOk = true; // attesa random... Random r = new Random(); Thread.Sleep(100 + r.Next(0, 100)); @@ -484,18 +484,23 @@ namespace MConnectSDK } /// /// Metodo di INIT della classe di comunicazione - /// + /// + /// + /// /// - public Result initSDKAsync() + public async Task initSDKAsync(CancellationToken token, IProgress progress) { - // svuoto TUTTI i dati x INIT... - //ML.redFlushDB(_currParam.defaultDb); - ML.redFlushKey("MCC*", _currParam.defaultDb); - enrollDate = DateTime.Now.AddYears(100); - // iniziod a watchdog... - setWatchdog(); - // init output - reqStatus = preCheckStatus(); + await Task.Run(() => + { + // svuoto TUTTI i dati x INIT... + //ML.redFlushDB(_currParam.defaultDb); + ML.redFlushKey("MCC*", _currParam.defaultDb); + enrollDate = DateTime.Now.AddYears(100); + // iniziod a watchdog... + setWatchdog(); + // init output + reqStatus = preCheckStatus(); + }); return reqStatus; } /// diff --git a/MConnectSDK/MConnectSDK.csproj b/MConnectSDK/MConnectSDK.csproj index bace4f1..e763e2e 100644 --- a/MConnectSDK/MConnectSDK.csproj +++ b/MConnectSDK/MConnectSDK.csproj @@ -38,7 +38,7 @@ ..\packages\NLog.4.5.11\lib\net45\NLog.dll - ..\packages\Pipelines.Sockets.Unofficial.1.0.9\lib\net461\Pipelines.Sockets.Unofficial.dll + ..\packages\Pipelines.Sockets.Unofficial.1.1.14\lib\net461\Pipelines.Sockets.Unofficial.dll ..\packages\StackExchange.Redis.2.0.519\lib\net461\StackExchange.Redis.dll @@ -81,6 +81,9 @@ + + ..\packages\YamlDotNet.5.4.0\lib\net45\YamlDotNet.dll + diff --git a/MConnectSDK/Utils.cs b/MConnectSDK/Utils.cs index 3c8e18d..ca4ffdd 100644 --- a/MConnectSDK/Utils.cs +++ b/MConnectSDK/Utils.cs @@ -165,47 +165,48 @@ /// /// Indica lo stato di disponibilità del CLOUD (= connesso) /// - public bool cloudStatus = false; + public bool CloudStatusOk = false; /// /// Indica la disponibilità dello storage LOCALE (= connesso) /// - public bool localStatus = false; + public bool LocalStatusOk = false; /// /// Sorgente da cui deriva l'esito dell'operazione /// - public Source source; + public SourceType Source; /// /// Indica se la chiamata sia andata a buon fine (success) oppure ci siano stati errori/problemi /// - public bool callResult = false; + public bool CallResultOk = false; /// /// Property class associata ad eventuale errore riscontrato /// - public Error error; + public ErrorResult error; /// /// Payload associato alla chiamata /// - public PayLoad payLoad; + public PayLoadResult payLoad; } /// /// Enum delle sorgenti di comunicazione /// - public enum Source + public enum SourceType { /// /// Piattaforma Cloud MaestroConnect /// - cloud = 0, + CLOUD = 0, /// /// Storage cache locale /// - local, + LOCAL, /// /// Offline /// - offline + OFFLINE } +#if false /// /// Enum per status /// @@ -213,25 +214,26 @@ { KO = 0, OK = 1 + } +#endif + /// + /// Enum per causali errori + /// + public enum Reason + { + NotFound = 0, + PwdMismatch } /// /// Classe errore chiamata /// - public class Error + public class ErrorResult { - /// - /// Enum per causali errori - /// - public enum Reason - { - NotFound = 0, - PwdMismatch - } /// /// Classe causale errore /// - public Reason reason; + public Reason Reason; /// /// Messaggio di dettaglio errore /// @@ -241,7 +243,7 @@ /// /// Classe base per ritnro dati chiamate /// - public class PayLoad + public class PayLoadResult { } @@ -250,7 +252,7 @@ /// Classe che contiene PayLoad x fare auth iniziale, /// contentente i dati x user auth da mostrare con HMI /// - public class userAuthData : PayLoad + public class userAuthData : PayLoadResult { /// /// Codice device diff --git a/MConnectSDK/packages.config b/MConnectSDK/packages.config index 039d719..7db8a3d 100644 --- a/MConnectSDK/packages.config +++ b/MConnectSDK/packages.config @@ -2,7 +2,7 @@ - + @@ -12,4 +12,5 @@ + \ No newline at end of file diff --git a/TestClient/MainForm.cs b/TestClient/MainForm.cs index 4e2f0cf..c966f6c 100644 --- a/TestClient/MainForm.cs +++ b/TestClient/MainForm.cs @@ -119,9 +119,9 @@ namespace TestClient sb.AppendLine("-------------------------"); sb.AppendLine("isAuth: " + reqStatus.isAuth); sb.AppendLine("isHmiEnrolled: " + reqStatus.isHmiEnrolled); - sb.AppendLine("cloudConnection: " + reqStatus.cloudStatus); - sb.AppendLine("localConnection: " + reqStatus.localStatus); - sb.AppendLine("callSuccess: " + reqStatus.callResult); + sb.AppendLine("cloudConnection: " + reqStatus.CloudStatusOk); + sb.AppendLine("localConnection: " + reqStatus.LocalStatusOk); + sb.AppendLine("callSuccess: " + reqStatus.CallResultOk); sb.AppendLine("-------------------------"); lblReqStatus.Text = sb.ToString(); sb.AppendLine(""); @@ -219,7 +219,28 @@ namespace TestClient await Task.Run(() => { MCC = new MConnectClient(txtMConnectID.Text.Trim(), txtClientID.Text.Trim(), param); - reqStatus = MCC.initSDKAsync(); + + // elimino eventuali cancel presenti... + if (_cts.IsCancellationRequested) + { + _cts = new CancellationTokenSource(); + } + CancellationToken token = _cts.Token; + // gestione progress... + var progressHandler = new Progress(value => + { +#if false + // mostro i dati SPECIFICI x AUTH... + updateAuthData(value); +#endif + }); + var progress = progressHandler as IProgress; + + var taskResult = MCC.initSDKAsync(token, progress); + +#if false + reqStatus = MCC.initSDKAsync(token, progress); +#endif // sistemo retVal saveTokenResp(); diff --git a/TestClient/mconnect.conf.yaml b/TestClient/mconnect.conf.yaml new file mode 100644 index 0000000..05d29f0 --- /dev/null +++ b/TestClient/mconnect.conf.yaml @@ -0,0 +1,9 @@ +#File di conf per MConnectClientSDK +conf: + clientId: “UTE_TEST” + machineId: “ABCD000231234” + memoryLayer: + redis: + connectionString: “127.0.0.1,abortConnect=false,ssl=false“ + dbIndex: 1 + module: “MCC” \ No newline at end of file