Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
IoTSharp
IoTSharp
提交
2c49ac3e
IoTSharp
项目概览
IoTSharp
/
IoTSharp
12 个月 前同步成功
通知
15
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
IoTSharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2c49ac3e
编写于
2月 08, 2022
作者:
W
wq1234wq
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://github.com/IoTSharp/IoTSharp
上级
60f56e8b
4fdcdefa
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
52 addition
and
55 deletion
+52
-55
IoTSharp.Data.MySQL/IoTSharp.Data.MySQL.csproj
IoTSharp.Data.MySQL/IoTSharp.Data.MySQL.csproj
+1
-1
IoTSharp.Data.Oracle/IoTSharp.Data.Oracle.csproj
IoTSharp.Data.Oracle/IoTSharp.Data.Oracle.csproj
+1
-1
IoTSharp.Data.PostgreSQL/IoTSharp.Data.PostgreSQL.csproj
IoTSharp.Data.PostgreSQL/IoTSharp.Data.PostgreSQL.csproj
+6
-6
IoTSharp.Data.SqlServer/IoTSharp.Data.SqlServer.csproj
IoTSharp.Data.SqlServer/IoTSharp.Data.SqlServer.csproj
+1
-1
IoTSharp.Data.Sqlite/IoTSharp.Data.Sqlite.csproj
IoTSharp.Data.Sqlite/IoTSharp.Data.Sqlite.csproj
+1
-1
IoTSharp.Data/IoTSharp.Data.csproj
IoTSharp.Data/IoTSharp.Data.csproj
+1
-1
IoTSharp.SDKs/IoTSharp.Sdk.MQTT/IoTSharp.Sdk.MQTT.csproj
IoTSharp.SDKs/IoTSharp.Sdk.MQTT/IoTSharp.Sdk.MQTT.csproj
+2
-2
IoTSharp.SDKs/IoTSharp.Sdk.MQTT/MQTTClient.cs
IoTSharp.SDKs/IoTSharp.Sdk.MQTT/MQTTClient.cs
+18
-22
IoTSharp/Clients/RpcClient.cs
IoTSharp/Clients/RpcClient.cs
+2
-2
IoTSharp/Dtos/DeviceDetailDto.cs
IoTSharp/Dtos/DeviceDetailDto.cs
+2
-2
IoTSharp/Extensions/MqttExtension.cs
IoTSharp/Extensions/MqttExtension.cs
+1
-1
IoTSharp/Handlers/MQTTServerHandler.cs
IoTSharp/Handlers/MQTTServerHandler.cs
+2
-2
IoTSharp/IoTSharp.csproj
IoTSharp/IoTSharp.csproj
+10
-10
IoTSharp/Models/Graph/DeviceProp.cs
IoTSharp/Models/Graph/DeviceProp.cs
+2
-1
IoTSharp/Models/Graph/Shape.cs
IoTSharp/Models/Graph/Shape.cs
+2
-2
未找到文件。
IoTSharp.Data.MySQL/IoTSharp.Data.MySQL.csproj
浏览文件 @
2c49ac3e
...
...
@@ -15,7 +15,7 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="6.0.1" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="6.0.1" />
<PackageReference Include="EFCore.Sharding.MySql" Version="6.0.
0
" />
<PackageReference Include="EFCore.Sharding.MySql" Version="6.0.
2
" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.NetTopologySuite" Version="6.0.1" />
</ItemGroup>
...
...
IoTSharp.Data.Oracle/IoTSharp.Data.Oracle.csproj
浏览文件 @
2c49ac3e
...
...
@@ -8,7 +8,7 @@
<PackageReference Include="AspNetCore.HealthChecks.Oracle" Version="6.0.1" />
<PackageReference Include="AspNetCore.HealthChecks.UI.Core" Version="6.0.2" />
<PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="6.0.2" />
<PackageReference Include="EFCore.Sharding.Oracle" Version="6.0.
0
" />
<PackageReference Include="EFCore.Sharding.Oracle" Version="6.0.
2
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.1" />
<PackageReference Include="Oracle.EntityFrameworkCore" Version="6.21.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.1">
...
...
IoTSharp.Data.PostgreSQL/IoTSharp.Data.PostgreSQL.csproj
浏览文件 @
2c49ac3e
...
...
@@ -14,12 +14,12 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="6.0.1" />
<PackageReference Include="Npgsql" Version="6.0.
2
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.
2
" />
<PackageReference Include="EFCore.Sharding.PostgreSql" Version="6.0.
0
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="6.0.
2
" />
<PackageReference Include="Npgsql.Json.NET" Version="6.0.
2
" />
<PackageReference Include="Npgsql.NodaTime" Version="6.0.
2
" />
<PackageReference Include="Npgsql" Version="6.0.
3
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.
3
" />
<PackageReference Include="EFCore.Sharding.PostgreSql" Version="6.0.
2
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="6.0.
3
" />
<PackageReference Include="Npgsql.Json.NET" Version="6.0.
3
" />
<PackageReference Include="Npgsql.NodaTime" Version="6.0.
3
" />
</ItemGroup>
<ItemGroup>
...
...
IoTSharp.Data.SqlServer/IoTSharp.Data.SqlServer.csproj
浏览文件 @
2c49ac3e
...
...
@@ -8,7 +8,7 @@
<PackageReference Include="AspNetCore.HealthChecks.SqlServer" Version="6.0.1" />
<PackageReference Include="AspNetCore.HealthChecks.UI.Core" Version="6.0.2" />
<PackageReference Include="AspNetCore.HealthChecks.UI.SqlServer.Storage" Version="6.0.2" />
<PackageReference Include="EFCore.Sharding.SqlServer" Version="6.0.
0
" />
<PackageReference Include="EFCore.Sharding.SqlServer" Version="6.0.
2
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.1" />
</ItemGroup>
...
...
IoTSharp.Data.Sqlite/IoTSharp.Data.Sqlite.csproj
浏览文件 @
2c49ac3e
...
...
@@ -14,7 +14,7 @@
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="6.0.1" />
<PackageReference Include="EFCore.Sharding.SQLite" Version="6.0.
0
" />
<PackageReference Include="EFCore.Sharding.SQLite" Version="6.0.
2
" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\IoTSharp.Data\IoTSharp.Data.csproj" />
...
...
IoTSharp.Data/IoTSharp.Data.csproj
浏览文件 @
2c49ac3e
...
...
@@ -9,7 +9,7 @@
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="EFCore.Sharding" Version="6.0.
0
" />
<PackageReference Include="EFCore.Sharding" Version="6.0.
2
" />
</ItemGroup>
...
...
IoTSharp.SDKs/IoTSharp.Sdk.MQTT/IoTSharp.Sdk.MQTT.csproj
浏览文件 @
2c49ac3e
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net4
5
2;netstandard2.0;netstandard2.1;net5.0;net6.0</TargetFrameworks>
<TargetFrameworks>net4
6
2;netstandard2.0;netstandard2.1;net5.0;net6.0</TargetFrameworks>
<Version>1.0.1</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
...
...
@@ -15,7 +15,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MQTTnet" Version="
3.1.1
" />
<PackageReference Include="MQTTnet" Version="
4.0.0-preview3
" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
...
...
IoTSharp.SDKs/IoTSharp.Sdk.MQTT/MQTTClient.cs
浏览文件 @
2c49ac3e
using
MQTTnet
;
using
MQTTnet.Client
;
using
MQTTnet.Client.Connecting
;
using
MQTTnet.Client.Disconnecting
;
using
MQTTnet.Client.Options
;
using
MQTTnet.Client.Receiving
;
using
MQTTnet.Diagnostics
;
using
MQTTnet.Protocol
;
using
System
;
...
...
@@ -21,7 +17,7 @@ namespace IoTSharp.EdgeSdk.MQTT
public
string
DeviceId
{
get
;
set
;
}
=
string
.
Empty
;
public
Uri
BrokerUri
{
get
;
set
;
}
public
bool
IsConnected
=>
(
Client
?.
IsConnected
).
GetValueOrDefault
();
private
I
MqttClient
Client
{
get
;
set
;
}
private
MqttClient
Client
{
get
;
set
;
}
public
delegate
void
DLogError
(
string
message
,
Exception
exception
);
public
event
DLogError
LogError
;
public
delegate
void
DLogInformation
(
string
message
);
...
...
@@ -48,9 +44,14 @@ namespace IoTSharp.EdgeSdk.MQTT
.
WithTcpServer
(
uri
.
Host
,
uri
.
Port
)
.
WithCredentials
(
username
,
password
)
.
Build
();
Client
.
ApplicationMessageReceivedHandler
=
new
MqttApplicationMessageReceivedHandlerDelegate
(
args
=>
Client_ApplicationMessageReceived
(
Client
,
args
));
Client
.
ConnectedHandler
=
new
MqttClientConnectedHandlerDelegate
(
args
=>
Client_ConnectedAsync
(
Client
,
args
));
Client
.
DisconnectedHandler
=
new
MqttClientDisconnectedHandlerDelegate
(
async
e
=>
Client
.
ApplicationMessageReceivedAsync
+=
Client_ApplicationMessageReceived
;
Client
.
ConnectedAsync
+=
e
=>
{
Client
.
SubscribeAsync
(
$"/devices/
{
DeviceId
}
/rpc/request/+/+"
);
Client
.
SubscribeAsync
(
$"/devices/
{
DeviceId
}
/attributes/update/"
,
MqttQualityOfServiceLevel
.
ExactlyOnce
);
LogInformation
?.
Invoke
(
$"CONNECTED WITH SERVER "
);
return
Task
.
CompletedTask
;
};
Client
.
DisconnectedAsync
+=
async
e
=>
{
try
{
...
...
@@ -60,7 +61,7 @@ namespace IoTSharp.EdgeSdk.MQTT
{
LogError
?.
Invoke
(
"CONNECTING FAILED"
,
exception
);
}
}
)
;
};
try
{
...
...
@@ -80,16 +81,11 @@ namespace IoTSharp.EdgeSdk.MQTT
return
initok
;
}
private
void
Client_ConnectedAsync
(
object
sender
,
MqttClientConnectedEventArgs
e
)
{
Client
.
SubscribeAsync
(
$"/devices/
{
DeviceId
}
/rpc/request/+/+"
);
Client
.
SubscribeAsync
(
$"/devices/
{
DeviceId
}
/attributes/update/"
,
MqttQualityOfServiceLevel
.
ExactlyOnce
);
LogInformation
?.
Invoke
(
$"CONNECTED WITH SERVER "
);
}
private
void
Client_ApplicationMessageReceived
(
object
sender
,
MqttApplicationMessageReceivedEventArgs
e
)
private
Task
Client_ApplicationMessageReceived
(
MqttApplicationMessageReceivedEventArgs
e
)
{
LogDebug
?.
Invoke
(
$"ApplicationMessageReceived Topic
{
e
.
ApplicationMessage
.
Topic
}
QualityOfServiceLevel:
{
e
.
ApplicationMessage
.
QualityOfServiceLevel
}
Retain:
{
e
.
ApplicationMessage
.
Retain
}
"
);
try
...
...
@@ -118,12 +114,12 @@ namespace IoTSharp.EdgeSdk.MQTT
});
}
}
}
catch
(
Exception
ex
)
{
LogError
?.
Invoke
(
$"ClientId:
{
e
.
ClientId
}
Topic:
{
e
.
ApplicationMessage
.
Topic
}
,Payload:
{
e
.
ApplicationMessage
.
ConvertPayloadToString
()}
"
,
ex
);
}
return
Task
.
CompletedTask
;
}
private
void
ReceiveAttributes
(
MqttApplicationMessageReceivedEventArgs
e
)
...
...
@@ -156,21 +152,21 @@ namespace IoTSharp.EdgeSdk.MQTT
public
Task
UploadAttributeAsync
(
string
_devicename
,
object
obj
)
{
return
Client
.
PublishAsync
(
$"devices/
{
_devicename
}
/attributes"
,
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
obj
));
return
Client
.
PublishAsync
(
new
MqttApplicationMessageBuilder
().
WithTopic
(
$"devices/
{
_devicename
}
/attributes"
).
WithPayload
(
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
obj
)).
Build
(
));
}
public
Task
UploadTelemetryDataAsync
(
object
obj
)
=>
UploadTelemetryDataAsync
(
"me"
,
obj
);
public
Task
UploadTelemetryDataAsync
(
string
_devicename
,
object
obj
)
{
return
Client
.
PublishAsync
(
$"devices/
{
_devicename
}
/telemetry"
,
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
obj
));
return
Client
.
PublishAsync
(
new
MqttApplicationMessageBuilder
().
WithTopic
(
$"devices/
{
_devicename
}
/telemetry"
).
WithPayload
(
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
obj
)).
Build
(
));
}
public
Task
ResponseExecommand
(
RpcResponse
rpcResult
)
{
///IoTSharp/Clients/RpcClient.cs#L65 var responseTopic = $"/devices/{deviceid}/rpc/response/{methodName}/{rpcid}";
string
topic
=
$"/devices/
{
rpcResult
.
DeviceId
}
/rpc/response/
{
rpcResult
.
Method
.
ToString
()}
/
{
rpcResult
.
ResponseId
}
"
;
return
Client
.
PublishAsync
(
topic
,
rpcResult
.
Data
.
ToString
(),
MqttQualityOfServiceLevel
.
ExactlyOnce
);
return
Client
.
PublishAsync
(
new
MqttApplicationMessageBuilder
().
WithTopic
(
topic
).
WithPayload
(
rpcResult
.
Data
.
ToString
()).
WithQualityOfServiceLevel
(
MqttQualityOfServiceLevel
.
ExactlyOnce
).
Build
()
);
}
public
Task
RequestAttributes
(
params
string
[]
args
)
=>
RequestAttributes
(
"me"
,
false
,
args
);
public
Task
RequestAttributes
(
string
_device
,
params
string
[]
args
)
=>
RequestAttributes
(
_device
,
false
,
args
);
...
...
@@ -183,7 +179,7 @@ namespace IoTSharp.EdgeSdk.MQTT
Dictionary
<
string
,
string
>
keys
=
new
Dictionary
<
string
,
string
>();
keys
.
Add
(
anySide
?
"anySide"
:
"server"
,
string
.
Join
(
","
,
args
));
Client
.
SubscribeAsync
(
$"/devices/
{
_device
}
/attributes/response/
{
id
}
"
,
MqttQualityOfServiceLevel
.
ExactlyOnce
);
return
Client
.
PublishAsync
(
topic
,
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
keys
),
MqttQualityOfServiceLevel
.
ExactlyOnce
);
return
Client
.
Publish
String
Async
(
topic
,
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
keys
),
MqttQualityOfServiceLevel
.
ExactlyOnce
);
}
}
public
class
RpcRequest
...
...
IoTSharp/Clients/RpcClient.cs
浏览文件 @
2c49ac3e
...
...
@@ -19,12 +19,12 @@ namespace IoTSharp.Extensions
public
class
RpcClient
:
IDisposable
{
private
readonly
ConcurrentDictionary
<
string
,
TaskCompletionSource
<
byte
[
]>
>
_waitingCalls
=
new
ConcurrentDictionary
<
string
,
TaskCompletionSource
<
byte
[
]>
>();
private
readonly
I
MqttClient
_mqttClient
;
private
readonly
MqttClient
_mqttClient
;
private
readonly
ILogger
_logger
;
private
IMqttClientOptions
_mqtt
;
private
bool
disposedValue
;
public
RpcClient
(
I
MqttClient
mqttClient
,
ILogger
logger
)
public
RpcClient
(
MqttClient
mqttClient
,
ILogger
logger
)
{
_mqttClient
=
mqttClient
??
throw
new
ArgumentNullException
(
nameof
(
mqttClient
));
_logger
=
logger
;
...
...
IoTSharp/Dtos/DeviceDetailDto.cs
浏览文件 @
2c49ac3e
...
...
@@ -48,9 +48,9 @@ namespace IoTSharp.Dtos
public
string
IdentityValue
{
get
;
set
;
}
public
string
IdentityId
{
get
;
set
;
}
#
nullable
enable
public
DeviceModel
?
Model
{
get
;
set
;
}
#
nullable
disable
}
}
IoTSharp/Extensions/MqttExtension.cs
浏览文件 @
2c49ac3e
...
...
@@ -14,7 +14,6 @@ using MQTTnet.Server;
using
System.Diagnostics
;
using
System.Runtime.InteropServices
;
using
System.Threading
;
using
MQTTnet.AspNetCore.Extensions
;
using
System.Security.Cryptography.X509Certificates
;
using
MQTTnet
;
...
...
@@ -46,6 +45,7 @@ namespace IoTSharp
{
options
.
WithoutEncryptedEndpoint
();
}
options
.
WithDefaultCommunicationTimeout
(
TimeSpan
.
FromSeconds
(
5
));
options
.
WithPersistentSessions
();
options
.
Build
();
}).
AddMqttConnectionHandler
()
...
...
IoTSharp/Handlers/MQTTServerHandler.cs
浏览文件 @
2c49ac3e
...
...
@@ -52,7 +52,7 @@ namespace IoTSharp.Handlers
static
long
clients
=
0
;
internal
Task
Server_ClientConnectedAsync
(
ClientConnectedEventArgs
e
)
{
_logger
.
LogInformation
(
$"Client [
{
e
.
ClientId
}
] connected"
);
_logger
.
LogInformation
(
$"Client [
{
e
.
ClientId
}
]
{
e
.
Endpoint
}
{
e
.
UserName
}
connected"
);
clients
++;
return
Task
.
CompletedTask
;
}
...
...
@@ -366,7 +366,7 @@ namespace IoTSharp.Handlers
var
devtmp
=
_dbContext
.
Device
.
FirstOrDefault
(
d
=>
d
.
Id
==
dev
.
Id
);
devtmp
.
LastActive
=
DateTime
.
Now
;
devtmp
.
Online
=
false
;
_dbContext
.
SaveChanges
();
await
_dbContext
.
SaveChangesAsync
();
_logger
.
LogInformation
(
$"Server_ClientDisconnected ClientId:
{
args
.
ClientId
}
DisconnectType:
{
args
.
DisconnectType
}
Device is
{
devtmp
.
Name
}
(
{
devtmp
.
Id
}
) "
);
}
}
...
...
IoTSharp/IoTSharp.csproj
浏览文件 @
2c49ac3e
...
...
@@ -68,7 +68,7 @@
<PackageReference Include="EasyCaching.LiteDB" Version="1.5.0" />
<PackageReference Include="EasyCaching.Redis" Version="1.5.0" />
<PackageReference Include="hyjiacan.pinyin4net" Version="4.1.0" />
<PackageReference Include="InfluxDB.Client" Version="3.
2
.0" />
<PackageReference Include="InfluxDB.Client" Version="3.
3
.0" />
<PackageReference Include="IoTSharp.CoAP.NET" Version="2.0.8" />
<PackageReference Include="IoTSharp.X509Extensions" Version="1.4.27" />
<PackageReference Include="Jdenticon-net" Version="3.1.2" />
...
...
@@ -89,14 +89,14 @@
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.14.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.1" />
<PackageReference Include="MQTTnet" Version="4.0.0-preview
1
" />
<PackageReference Include="MQTTnet.AspNetCore" Version="4.0.0-preview
1
" />
<PackageReference Include="MQTTnet.Extensions.Rpc" Version="4.0.0-preview
1
" />
<PackageReference Include="NetMQ" Version="4.0.1.
6
" />
<PackageReference Include="Npgsql" Version="6.0.
2
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.
2
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="6.0.
2
" />
<PackageReference Include="NSwag.AspNetCore" Version="13.15.
5
" />
<PackageReference Include="MQTTnet" Version="4.0.0-preview
3
" />
<PackageReference Include="MQTTnet.AspNetCore" Version="4.0.0-preview
3
" />
<PackageReference Include="MQTTnet.Extensions.Rpc" Version="4.0.0-preview
3
" />
<PackageReference Include="NetMQ" Version="4.0.1.
8
" />
<PackageReference Include="Npgsql" Version="6.0.
3
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.
3
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="6.0.
3
" />
<PackageReference Include="NSwag.AspNetCore" Version="13.15.
7
" />
<PackageReference Include="PinusDB" Version="1.0.10" />
<PackageReference Include="PinusDB.HealthChecks" Version="1.0.10" />
<PackageReference Include="ProxyKit" Version="2.3.4" />
...
...
@@ -123,7 +123,7 @@
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.0" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="4.0.0-preview
1
" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="4.0.0-preview
3
" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="6.0.1" />
<PackageReference Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="6.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="6.0.1" />
...
...
IoTSharp/Models/Graph/DeviceProp.cs
浏览文件 @
2c49ac3e
...
...
@@ -2,10 +2,11 @@
{
public
class
DeviceProp
{
#
nullable
enable
public
Body
?
body
{
get
;
set
;
}
public
Position
?
position
{
get
;
set
;
}
public
Size
?
size
{
get
;
set
;
}
public
Text
?
text
{
get
;
set
;
}
#
nullable
disable
}
}
\ No newline at end of file
IoTSharp/Models/Graph/Shape.cs
浏览文件 @
2c49ac3e
...
...
@@ -8,10 +8,10 @@
public
long
[]
incomes
{
get
;
set
;
}
public
long
[]
outgoings
{
get
;
set
;
}
#
nullable
enable
public
DeviceProp
?
prop
{
get
;
set
;
}
#
nullable
disable
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录