Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
JmpZbChannel
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
zxw
JmpZbChannel
Commits
c1711ef1
Commit
c1711ef1
authored
Sep 22, 2022
by
zonevg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
除湿机
parent
53bdb476
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
299 行增加
和
0 行删除
+299
-0
FrmMgr.cs
JmpServiceMgr/FrmMgr.cs
+8
-0
DevService.cs
JmpServiceMgr/Helper/DevService.cs
+284
-0
JmpServiceMgr.csproj
JmpServiceMgr/JmpServiceMgr.csproj
+7
-0
JmpDehumidifierLib.dll
Lib/JmpDehumidifierLib.dll
+0
-0
LitJSON.dll
Lib/LitJSON.dll
+0
-0
没有找到文件。
JmpServiceMgr/FrmMgr.cs
View file @
c1711ef1
...
...
@@ -322,6 +322,14 @@ namespace JmpServiceMgr
SetLogs
(
$"通道程序启动
{(
_stu
?
"成功"
:
"失败"
)}
"
);
XfVioceMsc
.
Text2Voice
(
$"通道程序启动
{(
_stu
?
"成功"
:
"失败"
)}
"
);
try
{
new
DevService
().
OnStart
(
MyCache
.
SysConfig
.
DomainUrl
);
}
catch
(
Exception
e
)
{
Log
.
ErrorLog
(
"除湿机异常:"
+
e
.
ToString
());
}
if
(
_stu
)
{
...
...
JmpServiceMgr/Helper/DevService.cs
0 → 100644
View file @
c1711ef1
using
JmpDehumidifierLib
;
using
LitJson
;
using
System
;
using
System.Collections
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Diagnostics
;
using
System.IO
;
using
System.Linq
;
using
System.Management
;
using
System.Net
;
using
System.ServiceProcess
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
namespace
JmpServiceMgr.Helper
{
public
class
DevService
{
public
DevService
()
{
}
Dictionary
<
string
,
Dehumidifier
>
devList
=
new
Dictionary
<
string
,
Dehumidifier
>();
private
string
URL
=
""
;
private
string
devCode
=
""
;
private
Thread
ThreadSend
=
null
;
public
void
OnStart
(
String
URL
)
{
try
{
//获取接口地址
//URL = Properties.Settings.Default.URL;
devCode
=
GetMacAddress
().
ToUpper
();
#
region
开启一个线程
ThreadSend
=
new
Thread
(
new
ThreadStart
(
ContorlDev
));
ThreadSend
.
IsBackground
=
true
;
ThreadSend
.
Start
();
#
endregion
if
(!
"unknow"
.
Equals
(
devCode
))
{
//先根据用户请求的uri构造请求地址
string
serviceUrl
=
string
.
Format
(
"{0}/{1}"
,
URL
,
"api/WarehouseDev/GetListDev"
);
string
data
=
"{'devCode':'"
+
devCode
+
"'}"
;
string
retrundata
=
GetHttpRqst
(
serviceUrl
,
data
);
JsonData
json
=
JsonMapper
.
ToObject
(
retrundata
);
if
(
getKey
(
json
,
"code"
).
Equals
(
"10000"
))
{
if
(
JsonDataContainsKey
(
json
,
"data"
))
{
JsonData
dataList
=
json
[
"data"
];
for
(
var
i
=
0
;
i
<
dataList
.
Count
;
i
++)
{
var
devIp
=
getKey
(
dataList
[
i
],
"devIp"
);
var
devPort
=
getKey
(
dataList
[
i
],
"devPort"
);
//ipList.Add(devIp + ":" + devPort);
Dehumidifier
dev
=
new
Dehumidifier
(
devIp
,
int
.
Parse
(
devPort
));
devList
.
Add
(
devIp
,
dev
);
}
}
else
{
//数据格式有误
}
foreach
(
var
item
in
devList
)
{
if
(
item
.
Value
.
Open
())
{
item
.
Value
.
OnStatusChanged
+=
new
Dehumidifier
.
StatusChanged
(
OnStatusChanged
);
}
}
}
else
{
//调用接口失败
}
}
else
{
//mac地址获取失败
}
}
catch
(
Exception
ex
)
{
//异常处理
}
}
//控制设备
private
void
ContorlDev
()
{
while
(
true
)
{
try
{
string
serviceUrl
=
string
.
Format
(
"{0}/{1}"
,
URL
,
"api/WarehouseDev/GetDevControlInfo"
);
string
data
=
"{'devCode':'"
+
devCode
+
"'}"
;
string
retrundata
=
GetHttpRqst
(
serviceUrl
,
data
);
JsonData
json
=
JsonMapper
.
ToObject
(
retrundata
);
if
(
getKey
(
json
,
"code"
).
Equals
(
"10000"
))
{
if
(
JsonDataContainsKey
(
json
,
"msg"
))
{
JsonData
devInfo
=
JsonMapper
.
ToObject
(
json
[
"msg"
].
ToString
());
var
devIp
=
getKey
(
devInfo
,
"DevIp"
);
var
Humid
=
getKey
(
devInfo
,
"Humid"
);
var
OpenState
=
getKey
(
devInfo
,
"OpenState"
);
foreach
(
var
item
in
devList
)
{
if
(
item
.
Key
.
Equals
(
devIp
))
{
if
(!
string
.
IsNullOrEmpty
(
Humid
))
{
item
.
Value
.
SetHumid
((
byte
)
int
.
Parse
(
Humid
));
}
if
(!
string
.
IsNullOrEmpty
(
OpenState
)
&&
OpenState
.
Equals
(
"1"
))
{
item
.
Value
.
OpenMachine
(
true
);
}
if
(!
string
.
IsNullOrEmpty
(
OpenState
)
&&
OpenState
.
Equals
(
"0"
))
{
item
.
Value
.
OpenMachine
(
false
);
}
}
}
}
}
}
catch
{
}
Thread
.
Sleep
(
5000
);
}
}
private
void
OnStatusChanged
(
MachineStatus
args
)
{
if
(
args
.
ErrorCode
==
0
)
{
var
devIp
=
args
.
ip
;
var
warehouseWd
=
args
.
Temp
.
ToString
();
// 室内温度
var
warehouseSd
=
args
.
Humid
.
ToString
();
// 室内湿度
var
devState
=
args
.
IsWorking
?
1
:
0
;
string
serviceUrl
=
string
.
Format
(
"{0}/{1}"
,
URL
,
"api/WarehouseDev/UpDev"
);
string
data
=
"{'devCode':'"
+
devCode
+
"','devIp':'"
+
devIp
+
"','warehouseWd':'"
+
warehouseWd
+
"','warehouseSd':'"
+
warehouseSd
+
"','devState':'"
+
devState
+
"'}"
;
string
retrundata
=
GetHttpRqst
(
serviceUrl
,
data
);
}
else
{
foreach
(
var
item
in
devList
)
{
if
(
item
.
Key
.
Equals
(
args
.
ip
))
{
Dehumidifier
dev
=
new
Dehumidifier
(
args
.
ip
,
args
.
port
);
devList
.
Remove
(
item
.
Key
);
devList
.
Add
(
args
.
ip
,
dev
);
if
(
dev
.
Open
())
{
dev
.
OnStatusChanged
+=
new
Dehumidifier
.
StatusChanged
(
OnStatusChanged
);
}
}
}
}
}
public
static
string
GetMacAddress
()
{
try
{
string
mac
=
""
;
ManagementClass
mc
=
new
ManagementClass
(
"Win32_NetworkAdapterConfiguration"
);
ManagementObjectCollection
moc
=
mc
.
GetInstances
();
foreach
(
ManagementObject
mo
in
moc
)
{
if
((
bool
)
mo
[
"IPEnabled"
]
==
true
)
{
mac
=
mo
[
"MacAddress"
].
ToString
();
break
;
}
}
return
mac
;
}
catch
{
return
"unknow"
;
}
}
public
static
string
GetHttpRqst
(
string
strUrl
,
string
json
=
""
)
{
try
{
HttpWebRequest
request
=
(
HttpWebRequest
)
WebRequest
.
Create
(
strUrl
);
request
.
Method
=
"POST"
;
if
(!
string
.
IsNullOrEmpty
(
json
))
{
request
.
ContentType
=
"application/json"
;
byte
[]
data
=
Encoding
.
UTF8
.
GetBytes
(
json
);
request
.
ContentLength
=
data
.
Length
;
using
(
Stream
reqStream
=
request
.
GetRequestStream
())
{
reqStream
.
Write
(
data
,
0
,
data
.
Length
);
reqStream
.
Close
();
}
}
HttpWebResponse
response
=
(
HttpWebResponse
)
request
.
GetResponse
();
Stream
responseStream
=
response
.
GetResponseStream
();
StreamReader
streamReader
=
new
StreamReader
(
responseStream
,
Encoding
.
UTF8
);
string
retString
=
streamReader
.
ReadToEnd
();
streamReader
.
Close
();
responseStream
.
Close
();
response
.
Close
();
return
retString
;
}
catch
(
Exception
ex
)
{
return
string
.
Empty
;
}
}
public
static
string
getKey
(
JsonData
data
,
string
key
)
{
if
(
JsonDataContainsKey
(
data
,
key
))
{
if
(
data
[
key
]
==
null
)
{
return
""
;
}
else
{
return
data
[
key
].
ToString
();
}
}
else
{
return
""
;
}
}
public
static
bool
JsonDataContainsKey
(
JsonData
data
,
string
key
)
{
bool
result
=
false
;
if
(
data
==
null
)
return
result
;
if
(!
data
.
IsObject
)
{
return
result
;
}
IDictionary
tdictionary
=
data
as
IDictionary
;
if
(
tdictionary
==
null
)
return
result
;
if
(
tdictionary
.
Contains
(
key
))
{
result
=
true
;
}
return
result
;
}
}
}
JmpServiceMgr/JmpServiceMgr.csproj
View file @
c1711ef1
...
...
@@ -70,9 +70,15 @@
<Reference Include="Impinj.OctaneSdk, Version=3.4.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\OctaneSDK.3.4.0\lib\net461\Impinj.OctaneSdk.dll</HintPath>
</Reference>
<Reference Include="JmpDehumidifierLib">
<HintPath>..\Lib\JmpDehumidifierLib.dll</HintPath>
</Reference>
<Reference Include="JunmpDALib">
<HintPath>..\Lib\JunmpDALib.dll</HintPath>
</Reference>
<Reference Include="LitJSON">
<HintPath>..\Lib\LitJSON.dll</HintPath>
</Reference>
<Reference Include="LLRP, Version=10.40.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\libltknet-sdk.10.40.0\lib\net461\LLRP.dll</HintPath>
</Reference>
...
...
@@ -127,6 +133,7 @@
<Compile Include="FrmMgr.Designer.cs">
<DependentUpon>FrmMgr.cs</DependentUpon>
</Compile>
<Compile Include="Helper\DevService.cs" />
<Compile Include="Helper\HikFaceHelper.cs" />
<Compile Include="Helper\CameraHelper.cs" />
<Compile Include="Helper\Model\ShelfMessageStatus.cs" />
...
...
Lib/JmpDehumidifierLib.dll
0 → 100644
View file @
c1711ef1
File added
Lib/LitJSON.dll
0 → 100644
View file @
c1711ef1
File added
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论