/
IoTApp_cs.tt
100 lines (85 loc) · 3.11 KB
/
IoTApp_cs.tt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<#
// Copyright (c) Knowledge & Experience. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#>
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
// ------------------------------------------------------------------------------
// <auto-generated>
// このコードはツールによって生成されました。
// ランタイム バージョン: <#= Version #>
//
// このファイルへの変更は、正しくない動作の原因になる可能性があり、
// コードが再生成されると失われます。
// </auto-generated>
// ------------------------------------------------------------------------------
using Kae.IoT.Framework;
using Kae.Utility.Logging;
using Microsoft.Azure.Devices.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace <#= nameSpace #>
{
partial class IoTApp
{
private <#= appConnectorName #> appConnector;
private IoTClient iotClient;
// Sensing Data can be stored in this variable
<#
foreach (var telemetryInfo in dtTelemetries.Values)
{
var telemetry = telemetryInfo.Info;
string telmetryDataTypeName = $"D2CData_{telemetry.Name}";
string telemetryMemberVarName = $"sensingData_{telemetry.Name}";
string getD2CDataMethodName = $"Get{telmetryDataTypeName}";
#>
private <#= telmetryDataTypeName #> <#= telemetryMemberVarName #>;
public <#= telmetryDataTypeName #> <#= getD2CDataMethodName #>()
{
return <#= telemetryMemberVarName #>;
}
<#
}
#>
private Logger logger;
public IoTApp(Logger logger = null)
{
this.logger = logger;
<#
foreach (var telemetryInfo in dtTelemetries.Values)
{
var telemetry = telemetryInfo.Info;
string telmetryDataTypeName = $"D2CData_{telemetry.Name}";
string telemetryMemberVarName = $"sensingData_{telemetry.Name}";
#>
<#= telemetryMemberVarName #> = new <#= telmetryDataTypeName #>();
<#
}
#>
}
public async Task InitializeAsync(string configYamlFile)
{
DesiredProperties = new AppDTDesiredProperties();
ReportedProperties = new AppDTReporetedProperties();
if (logger == null)
{
logger = ConsoleLogger.CreateLogger();
}
var iotAppConfig = IoTAppConfigResolver.ResolveConfig(configYamlFile);
appConnector = new <#= appConnectorName #>(iotAppConfig, this);
iotClient = IoTClientFactory.<#= factoryCreationMethod #>(appConnector, logger);
await iotClient.OpenAsync();
DesiredProperties = (AppDTDesiredProperties)await iotClient.GetDeviceTwinsDesiredPropertiesAsync(DesiredProperties);
}
public async Task TerminateAsync()
{
await iotClient.CloseAsync();
}
}
}