Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
IoTSharp
IoTSharp
提交
a22b2f9a
IoTSharp
项目概览
IoTSharp
/
IoTSharp
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
a22b2f9a
编写于
12月 18, 2021
作者:
麦壳饼
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调整docker以及TaskAction 适应新版本
上级
36d5ffcd
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
33 addition
and
33 deletion
+33
-33
IoTSharp.TaskAction/Air720Sx.cs
IoTSharp.TaskAction/Air720Sx.cs
+2
-2
IoTSharp.TaskAction/DeviceActionExcutor.cs
IoTSharp.TaskAction/DeviceActionExcutor.cs
+3
-3
IoTSharp.TaskAction/ITaskAction.cs
IoTSharp.TaskAction/ITaskAction.cs
+2
-2
IoTSharp.TaskAction/MessagePullExcutor.cs
IoTSharp.TaskAction/MessagePullExcutor.cs
+8
-8
IoTSharp/Dockerfile
IoTSharp/Dockerfile
+9
-11
IoTSharp/FlowRuleEngine/FlowRuleProcessor.cs
IoTSharp/FlowRuleEngine/FlowRuleProcessor.cs
+3
-3
IoTSharp/Handlers/PublishAttributeDataTask.cs
IoTSharp/Handlers/PublishAttributeDataTask.cs
+2
-2
IoTSharp/Handlers/PublishTelemetryDataTask.cs
IoTSharp/Handlers/PublishTelemetryDataTask.cs
+2
-2
IoTSharp/IoTSharp.csproj
IoTSharp/IoTSharp.csproj
+2
-0
未找到文件。
IoTSharp.TaskAction/Air720Sx.cs
浏览文件 @
a22b2f9a
...
...
@@ -20,11 +20,11 @@ namespace IoTSharp.TaskAction
}
public
override
Task
ActionOutput
Execute
(
TaskActionInput
_input
)
public
override
Task
<
TaskActionOutput
>
ExecuteAsync
(
TaskActionInput
_input
)
{
var
msg
=
_input
.
DynamicInput
;
var
playload
=
System
.
Text
.
Encoding
.
Default
.
GetString
(
Convert
.
FromBase64String
(
msg
.
Payload
));
return
new
TaskActionOutput
()
{
Output
=
playload
,
DeviceId
=
_input
.
DeviceId
}
;
return
Task
.
FromResult
(
new
TaskActionOutput
()
{
Output
=
playload
,
DeviceId
=
_input
.
DeviceId
})
;
}
}
}
IoTSharp.TaskAction/DeviceActionExcutor.cs
浏览文件 @
a22b2f9a
...
...
@@ -20,20 +20,20 @@ namespace IoTSharp.TaskAction
}
public
override
TaskActionOutput
Execute
(
TaskActionInput
input
)
public
override
async
Task
<
TaskActionOutput
>
ExecuteAsync
(
TaskActionInput
input
)
{
var
config
=
JsonConvert
.
DeserializeObject
<
ModelExecutorConfig
>(
input
.
ExecutorConfig
);
string
contentType
=
"application/json"
;
var
restclient
=
new
RestClient
(
config
.
BaseUrl
);
var
request
=
new
RestRequest
(
config
.
Url
+
(
input
.
DeviceId
==
Guid
.
Empty
?
""
:
"/"
+
input
.
DeviceId
),
Method
.
P
OST
);
var
request
=
new
RestRequest
(
config
.
Url
+
(
input
.
DeviceId
==
Guid
.
Empty
?
""
:
"/"
+
input
.
DeviceId
),
Method
.
P
ost
);
request
.
AddHeader
(
"X-Access-Token"
,
config
.
Token
);
request
.
RequestFormat
=
DataFormat
.
Json
;
request
.
AddHeader
(
"Content-Type"
,
contentType
);
request
.
AddHeader
(
"cache-control"
,
"no-cache"
);
request
.
AddJsonBody
(
JsonConvert
.
SerializeObject
(
new
{
sosType
=
"1"
,
sosContent
=
input
.
Input
,
usingUserId
=
"zhangsan"
}));
var
response
=
restclient
.
Execute
(
request
);
var
response
=
await
restclient
.
ExecuteAsync
(
request
);
if
(
response
.
StatusCode
==
HttpStatusCode
.
OK
)
{
var
result
=
JsonConvert
.
DeserializeObject
<
DeviceActionResult
>(
response
.
Content
);
...
...
IoTSharp.TaskAction/ITaskAction.cs
浏览文件 @
a22b2f9a
...
...
@@ -2,13 +2,13 @@
using
Newtonsoft.Json.Converters
;
using
System
;
using
System.Dynamic
;
using
System.Threading.Tasks
;
namespace
IoTSharp.TaskAction
{
public
abstract
class
ITaskAction
{
public
abstract
Task
ActionOutput
Execute
(
TaskActionInput
_input
);
public
abstract
Task
<
TaskActionOutput
>
ExecuteAsync
(
TaskActionInput
_input
);
public
IServiceProvider
ServiceProvider
{
get
;
set
;
}
...
...
IoTSharp.TaskAction/MessagePullExcutor.cs
浏览文件 @
a22b2f9a
...
...
@@ -25,18 +25,18 @@ namespace IoTSharp.TaskAction
}
public
override
Task
ActionOutput
Execute
(
TaskActionInput
input
)
public
override
Task
<
TaskActionOutput
>
ExecuteAsync
(
TaskActionInput
input
)
{
try
{
// var cache = this.ServiceProvider.GetService(typeof(IMemoryCache)) as IMemoryCache;
return
SendData
(
input
);
return
SendData
(
input
);
}
catch
(
Exception
ex
)
{
return
new
TaskActionOutput
()
{
ExecutionInfo
=
ex
.
Message
,
ExecutionStatus
=
false
,
}
;
return
Task
.
FromResult
(
new
TaskActionOutput
()
{
ExecutionInfo
=
ex
.
Message
,
ExecutionStatus
=
false
})
;
}
}
...
...
@@ -50,7 +50,7 @@ namespace IoTSharp.TaskAction
}
private
TaskActionOutput
SendData
(
TaskActionInput
input
)
private
async
Task
<
TaskActionOutput
>
SendData
(
TaskActionInput
input
)
{
try
{
...
...
@@ -64,13 +64,13 @@ namespace IoTSharp.TaskAction
var
dd
=
o
.
Properties
().
Select
(
c
=>
new
ParamObject
{
keyName
=
c
.
Name
,
value
=
JPropertyToObject
(
c
.
Value
.
First
as
JProperty
)
}).
ToList
();
string
contentType
=
"application/json"
;
var
restclient
=
new
RestClient
(
config
.
BaseUrl
);
var
request
=
new
RestRequest
(
config
.
Url
+
(
input
.
DeviceId
==
Guid
.
Empty
?
""
:
"/"
+
input
.
DeviceId
),
Method
.
P
OST
);
var
request
=
new
RestRequest
(
config
.
Url
+
(
input
.
DeviceId
==
Guid
.
Empty
?
""
:
"/"
+
input
.
DeviceId
),
Method
.
P
ost
);
request
.
AddHeader
(
"X-Access-Token"
,
config
.
Token
);
request
.
RequestFormat
=
DataFormat
.
Json
;
request
.
AddHeader
(
"cache-control"
,
"no-cache"
);
request
.
AddJsonBody
(
JsonConvert
.
SerializeObject
(
dd
));
var
response
=
restclient
.
Execute
(
request
);
var
response
=
await
restclient
.
ExecuteAsync
(
request
);
if
(
response
.
StatusCode
==
HttpStatusCode
.
OK
)
{
var
result
=
JsonConvert
.
DeserializeObject
<
MessagePullResult
>(
response
.
Content
);
...
...
@@ -98,13 +98,13 @@ namespace IoTSharp.TaskAction
var
dd
=
o
.
Properties
().
Select
(
c
=>
new
ParamObject
{
keyName
=
c
.
Name
,
value
=
JPropertyToObject
(
c
)
}).
ToList
();
string
contentType
=
"application/json"
;
var
restclient
=
new
RestClient
(
config
.
BaseUrl
);
var
request
=
new
RestRequest
(
config
.
Url
+
(
input
.
DeviceId
==
Guid
.
Empty
?
""
:
"/"
+
input
.
DeviceId
),
Method
.
P
OST
);
var
request
=
new
RestRequest
(
config
.
Url
+
(
input
.
DeviceId
==
Guid
.
Empty
?
""
:
"/"
+
input
.
DeviceId
),
Method
.
P
ost
);
request
.
AddHeader
(
"X-Access-Token"
,
config
.
Token
);
request
.
RequestFormat
=
DataFormat
.
Json
;
request
.
AddHeader
(
"cache-control"
,
"no-cache"
);
request
.
AddJsonBody
(
JsonConvert
.
SerializeObject
(
dd
));
var
response
=
restclient
.
Execute
(
request
);
var
response
=
await
restclient
.
ExecuteAsync
(
request
);
if
(
response
.
StatusCode
==
HttpStatusCode
.
OK
)
{
var
result
=
JsonConvert
.
DeserializeObject
<
MessagePullResult
>(
response
.
Content
);
...
...
IoTSharp/Dockerfile
浏览文件 @
a22b2f9a
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM
mcr.microsoft.com/dotnet/aspnet:6.0-bu
ster
-slim AS base
FROM
mcr.microsoft.com/dotnet/aspnet:6.0-bu
llseye
-slim AS base
MAINTAINER
Yanhong Ma 2022 <mysticboy@live.com>
RUN
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free"
>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free"
>>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free"
>>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free"
>>
/etc/apt/sources.list
&&
\
RUN
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free"
>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free"
>>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free"
>>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian-security jessie/updates main contrib non-free"
>>
/etc/apt/sources.list
&&
\
apt-get
-y
-q
update
&&
apt-get
install
-y
-q
apt-utils libgdiplus libc6-dev lsof net-tools wget sqlite3 python3
bashtop
iputils-ping inetutils-tools libssl-dev libssl1.0.0 curl
&&
\
apt-get
-y
-q
update
&&
apt-get
install
-y
-q
apt-utils libgdiplus libc6-dev lsof net-tools wget sqlite3 python3
iputils-ping inetutils-tools libssl-dev libssl1.0.0 curl
&&
\
apt-get autoremove
-y
&&
apt-get clean
&&
apt-get autoclean
&&
rm
/var/cache/apt/
*
-rf
&&
\
ln
-sf
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#RUN curl -o TDengine-client.tar.gz "https://www.taosdata.com/download/download-gettingStarted.php?pkg=tdengine_linux&pkgName=TDengine-client-2.0.12.0-Linux-x64.tar.gz" && \
...
...
@@ -27,12 +26,11 @@ EXPOSE 5684
EXPOSE
8080
FROM
mcr.microsoft.com/dotnet/sdk:6.0-bu
ster
-slim AS build
FROM
mcr.microsoft.com/dotnet/sdk:6.0-bu
llseye
-slim AS build
RUN
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free"
>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free"
>>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free"
>>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free"
>>
/etc/apt/sources.list
&&
\
RUN
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free"
>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free"
>>
/etc/apt/sources.list
&&
\
echo
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free"
>>
/etc/apt/sources.list
&&
\
apt-get
-y
-q
update
&&
apt-get
install
-y
-q
git libssl-dev curl gnupg libcurl4 gcc g++ make gnupg2 build-essential wget
&&
\
apt-get autoremove
-y
&&
apt-get clean
&&
apt-get autoclean
&&
rm
/var/cache/apt/
*
-rf
...
...
IoTSharp/FlowRuleEngine/FlowRuleProcessor.cs
浏览文件 @
a22b2f9a
...
...
@@ -276,7 +276,7 @@ namespace IoTSharp.FlowRuleEngine
{
try
{
var
result
=
executor
.
Execute
(
new
TaskActionInput
()
var
result
=
await
executor
.
ExecuteAsync
(
new
TaskActionInput
()
{
Input
=
taskoperation
.
Data
,
DeviceId
=
deviceId
,
...
...
@@ -599,7 +599,7 @@ namespace IoTSharp.FlowRuleEngine
{
try
{
var
result
=
executor
.
Execute
(
new
TaskActionInput
()
var
result
=
await
executor
.
ExecuteAsync
(
new
TaskActionInput
()
{
Input
=
data
,
ExecutorConfig
=
flow
.
NodeProcessParams
,
...
...
@@ -607,7 +607,7 @@ namespace IoTSharp.FlowRuleEngine
});
obj
=
result
.
DynamicOutput
;
obj
=
result
.
DynamicOutput
;
}
catch
(
Exception
ex
)
{
...
...
IoTSharp/Handlers/PublishAttributeDataTask.cs
浏览文件 @
a22b2f9a
...
...
@@ -23,7 +23,7 @@ namespace IoTSharp.Handlers
_queue
=
queue
;
}
public
override
TaskActionOutput
Execute
(
TaskActionInput
param
)
public
override
Task
<
TaskActionOutput
>
ExecuteAsync
(
TaskActionInput
param
)
{
var
result
=
new
TaskActionOutput
()
{
DynamicOutput
=
new
{
code
=
ApiCode
.
Success
,
msg
=
"OK"
}
};
try
...
...
@@ -38,7 +38,7 @@ namespace IoTSharp.Handlers
{
result
.
DynamicOutput
=
new
{
code
=
ApiCode
.
Exception
,
msg
=
ex
.
Message
};
}
return
result
;
return
Task
.
FromResult
(
result
)
;
}
}
}
IoTSharp/Handlers/PublishTelemetryDataTask.cs
浏览文件 @
a22b2f9a
...
...
@@ -23,7 +23,7 @@ namespace IoTSharp.Handlers
_queue
=
queue
;
}
public
override
Task
ActionOutput
Execute
(
TaskActionInput
param
)
public
override
Task
<
TaskActionOutput
>
ExecuteAsync
(
TaskActionInput
param
)
{
var
result
=
new
TaskActionOutput
()
{
DynamicOutput
=
new
{
code
=
ApiCode
.
Success
,
msg
=
"OK"
}
};
try
...
...
@@ -38,7 +38,7 @@ namespace IoTSharp.Handlers
{
result
.
DynamicOutput
=
new
{
code
=
ApiCode
.
Exception
,
msg
=
ex
.
Message
};
}
return
result
;
return
Task
.
FromResult
(
result
)
;
}
}
}
IoTSharp/IoTSharp.csproj
浏览文件 @
a22b2f9a
...
...
@@ -87,7 +87,9 @@
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Features" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Features" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="4.0.1" />
<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" />
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录