Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSingleStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 999ff99e
由
几米阳光
编写于
2019-05-05 14:44:00 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加新温湿度
1 个父辈
17c99dc5
全部展开
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
186 行增加
和
2 行删除
source/ACSingleStore/App.config
source/ACSingleStore/FrmStoreBox.Designer.cs
source/ACSingleStore/FrmStoreBox.cs
source/ACSingleStore/记录.txt
source/Common/Setting_Init.cs
source/Common/util/HumitureController.cs
source/ACSingleStore/App.config
查看文件 @
999ff99
...
@@ -37,6 +37,8 @@
...
@@ -37,6 +37,8 @@
<
add
key
=
"OutStoreWaitSeconds"
value
=
"10"
/>
<
add
key
=
"OutStoreWaitSeconds"
value
=
"10"
/>
<!--压紧轴对应
1
mm
的脉冲-->
<!--压紧轴对应
1
mm
的脉冲-->
<
add
key
=
"ComAxisChangeValue"
value
=
"2400"
/>
<
add
key
=
"ComAxisChangeValue"
value
=
"2400"
/>
<!--温控器类型,
0
=壁挂王字壳温湿度变送器,
1
=妙昕温湿度记录仪-->
<
add
key
=
"HumitureControllerType"
value
=
"1"
/>
</
appSettings
>
</
appSettings
>
<
log4net
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
...
...
source/ACSingleStore/FrmStoreBox.Designer.cs
查看文件 @
999ff99
此文件的差异被折叠,
点击展开。
source/ACSingleStore/FrmStoreBox.cs
查看文件 @
999ff99
...
@@ -158,6 +158,14 @@ namespace OnlineStore.ACSingleStore
...
@@ -158,6 +158,14 @@ namespace OnlineStore.ACSingleStore
HideForm
();
HideForm
();
this
.
Opacity
=
1
;
this
.
Opacity
=
1
;
txtTempPort
.
Text
=
store
.
Config
.
Humiture_Port
;
txtTempPort
.
Text
=
store
.
Config
.
Humiture_Port
;
if
(
HumitureController
.
HumitureControllerType
.
Equals
(
1
))
{
groupHistory
.
Visible
=
true
;
}
else
{
groupHistory
.
Visible
=
false
;
}
}
}
private
DateTime
preReadModblsTime
=
DateTime
.
Now
;
private
DateTime
preReadModblsTime
=
DateTime
.
Now
;
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
...
@@ -1454,5 +1462,22 @@ namespace OnlineStore.ACSingleStore
...
@@ -1454,5 +1462,22 @@ namespace OnlineStore.ACSingleStore
DebugStatus
(
false
);
DebugStatus
(
false
);
}
}
}
}
private
void
btnSelHistory_Click
(
object
sender
,
EventArgs
e
)
{
int
count
=
HumitureController
.
QueryHistoryCount
();
txtHistoryCount
.
Text
=
count
.
ToString
();
int
cuCount
=
HumitureController
.
QueryCurrCount
();
txtCurrCount
.
Text
=
cuCount
.
ToString
();
List
<
object
>
data
=
HumitureController
.
QueryHistory
();
if
(
data
.
Count
>=
3
)
{
txtHistoryTemp
.
Text
=
data
[
0
].
ToString
();
txtHistoryHum
.
Text
=
data
[
1
].
ToString
();
txtHistoryTime
.
Text
=
data
[
2
].
ToString
();
}
}
}
}
}
}
source/ACSingleStore/记录.txt
查看文件 @
999ff99
...
@@ -61,8 +61,14 @@
...
@@ -61,8 +61,14 @@
20190326修改:
20190326修改:
伺服若已在原点但未回过原点,需要匀速走1500秒,再回原点
伺服若已在原点但未回过原点,需要匀速走1500秒,再回原点
20190410
如果是7*32的料格,升降轴先上升,压紧轴再运动
增加新温控器:妙昕温湿度记录仪文档
20190411
增加相机重新加载功能
增加新的温湿度代码。
...
...
source/Common/Setting_Init.cs
查看文件 @
999ff99
...
@@ -79,5 +79,10 @@ namespace OnlineStore.Common
...
@@ -79,5 +79,10 @@ namespace OnlineStore.Common
/// 压紧轴1mm对应的脉冲
/// 压紧轴1mm对应的脉冲
/// </summary>
/// </summary>
public
static
string
ComAxisChangeValue
=
"ComAxisChangeValue"
;
public
static
string
ComAxisChangeValue
=
"ComAxisChangeValue"
;
/// <summary>
/// 温控器类型,0=壁挂王字壳温湿度变送器,1=妙昕温湿度记录仪
/// </summary>
public
static
string
HumitureControllerType
=
"HumitureControllerType"
;
}
}
}
}
source/Common/util/HumitureController.cs
查看文件 @
999ff99
...
@@ -23,8 +23,9 @@ namespace OnlineStore.Common
...
@@ -23,8 +23,9 @@ namespace OnlineStore.Common
private
static
int
dataBits
=
8
;
//数据位
private
static
int
dataBits
=
8
;
//数据位
private
static
StopBits
stopBits
=
StopBits
.
One
;
//停止位
private
static
StopBits
stopBits
=
StopBits
.
One
;
//停止位
private
static
AcSerialBean
sb
=
null
;
private
static
AcSerialBean
sb
=
null
;
private
static
string
LogName
=
""
;
private
static
string
LogName
=
""
;
public
static
int
HumitureControllerType
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
HumitureControllerType
);
public
static
bool
Init
(
string
port
)
public
static
bool
Init
(
string
port
)
{
{
if
(
IsRun
&&
port
.
Equals
(
serialPort
))
if
(
IsRun
&&
port
.
Equals
(
serialPort
))
...
@@ -40,6 +41,10 @@ namespace OnlineStore.Common
...
@@ -40,6 +41,10 @@ namespace OnlineStore.Common
if
(
sb
==
null
)
if
(
sb
==
null
)
{
{
serialPort
=
port
;
serialPort
=
port
;
if
(
HumitureControllerType
.
Equals
(
1
))
{
bautRate
=
9600
;
//波特率
}
sb
=
new
AcSerialBean
(
serialPort
,
bautRate
,
parity
,
dataBits
,
stopBits
);
sb
=
new
AcSerialBean
(
serialPort
,
bautRate
,
parity
,
dataBits
,
stopBits
);
}
}
try
try
...
@@ -102,14 +107,21 @@ namespace OnlineStore.Common
...
@@ -102,14 +107,21 @@ namespace OnlineStore.Common
}
}
byte
[]
sendData
=
new
byte
[
8
];
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
sendData
[
0
]
=
0x01
;
if
(
HumitureControllerType
.
Equals
(
1
))
{
sendData
[
1
]
=
0x04
;
}
else
{
sendData
[
1
]
=
0x03
;
sendData
[
1
]
=
0x03
;
}
sendData
[
2
]
=
0x00
;
sendData
[
2
]
=
0x00
;
sendData
[
3
]
=
0x00
;
sendData
[
3
]
=
0x00
;
sendData
[
4
]
=
0x00
;
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x02
;
sendData
[
5
]
=
0x02
;
sendData
[
6
]
=
0x00
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
9
];
byte
[]
reviceData
=
new
byte
[
9
];
...
@@ -119,12 +131,124 @@ namespace OnlineStore.Common
...
@@ -119,12 +131,124 @@ namespace OnlineStore.Common
}
}
public
static
int
QueryHistoryCount
()
{
if
(
IsRun
.
Equals
(
false
)
||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
-
1
;
}
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
sendData
[
1
]
=
0x04
;
sendData
[
2
]
=
0x20
;
sendData
[
3
]
=
0x00
;
byte
[]
addrByte
=
AcSerialBean
.
StringToByte
(
"2000"
);
if
(
addrByte
.
Length
==
1
)
{
sendData
[
2
]
=
0x00
;
sendData
[
3
]
=
addrByte
[
0
];
}
else
if
(
addrByte
.
Length
==
2
)
{
sendData
[
3
]
=
addrByte
[
1
];
sendData
[
2
]
=
addrByte
[
0
];
}
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x02
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
9
];
bool
isOk
=
false
;
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
return
getReviceIntData
(
reviceData
);
}
public
static
int
QueryCurrCount
()
{
if
(
IsRun
.
Equals
(
false
)
||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
-
1
;
}
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
sendData
[
1
]
=
0x04
;
sendData
[
2
]
=
0x20
;
sendData
[
3
]
=
0x02
;
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x02
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
9
];
bool
isOk
=
false
;
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
return
getReviceIntData
(
reviceData
);
}
public
static
List
<
object
>
QueryHistory
()
{
List
<
object
>
list
=
new
List
<
object
>();
if
(
IsRun
.
Equals
(
false
)||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
list
;
}
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
sendData
[
1
]
=
0x04
;
sendData
[
2
]
=
0x20
;
sendData
[
3
]
=
0x04
;
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x05
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
15
];
bool
isOk
=
false
;
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
try
{
if
(
reviceData
!=
null
&&
reviceData
.
Length
>=
9
)
{
string
temp
=
String
.
Format
(
"{0:X2}"
,
reviceData
[
3
])
+
String
.
Format
(
"{0:X2}"
,
reviceData
[
4
]);
string
hum
=
String
.
Format
(
"{0:X2}"
,
reviceData
[
5
])
+
String
.
Format
(
"{0:X2}"
,
reviceData
[
6
]);
double
tempV
=
(
double
)
Convert
.
ToInt32
(
temp
,
16
)
/
10
;
double
humV
=
(
double
)
Convert
.
ToInt32
(
hum
,
16
)
/
10
;
int
year
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
7
]),
16
);
int
mouth
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
8
]),
16
);
int
day
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
9
]),
16
);
int
hour
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
10
]),
16
);
int
minute
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
11
]),
16
);
int
second
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
12
]),
16
);
DateTime
time
=
new
DateTime
(
year
,
mouth
,
day
,
hour
,
minute
,
second
);
list
.
Add
(
tempV
);
list
.
Add
(
humV
);
list
.
Add
(
time
);
}
}
catch
(
Exception
ex
)
{
LOGGER
.
Info
(
LogName
+
"转换出错:"
+
ex
.
ToString
());
}
return
list
;
}
private
static
byte
[]
buildCheckData
(
byte
[]
sendData
,
int
length
)
private
static
byte
[]
buildCheckData
(
byte
[]
sendData
,
int
length
)
{
{
ushort
pChecksum
=
0
;
ushort
pChecksum
=
0
;
AcSerialBean
.
CalculateCRC
(
sendData
,
length
,
out
pChecksum
);
AcSerialBean
.
CalculateCRC
(
sendData
,
length
,
out
pChecksum
);
string
checkStr
=
Convert
.
ToString
(
pChecksum
,
16
);
string
checkStr
=
Convert
.
ToString
(
pChecksum
,
16
);
byte
[]
checkByte
=
AcSerialBean
.
StringToByte
(
checkStr
);
byte
[]
checkByte
=
AcSerialBean
.
StringToByte
(
checkStr
);
if
(
checkByte
.
Length
==
1
)
if
(
checkByte
.
Length
==
1
)
{
{
sendData
[
length
]
=
checkByte
[
0
];
sendData
[
length
]
=
checkByte
[
0
];
...
@@ -138,6 +262,28 @@ namespace OnlineStore.Common
...
@@ -138,6 +262,28 @@ namespace OnlineStore.Common
return
sendData
;
return
sendData
;
}
}
private
static
int
getReviceIntData
(
byte
[]
dataArray
)
{
List
<
double
>
list
=
new
List
<
double
>();
try
{
if
(
dataArray
==
null
)
{
return
-
1
;
}
if
(
dataArray
.
Length
>=
9
)
{
string
data
=
String
.
Format
(
"{0:X2}"
,
dataArray
[
5
])
+
String
.
Format
(
"{0:X2}"
,
dataArray
[
6
]+
String
.
Format
(
"{0:X2}"
,
dataArray
[
3
])
+
String
.
Format
(
"{0:X2}"
,
dataArray
[
4
])
);
int
tempV
=
Convert
.
ToInt32
(
data
,
16
);
return
tempV
;
}
}
catch
(
Exception
ex
)
{
LOGGER
.
Info
(
LogName
+
"转换出错:"
+
ex
.
ToString
());
}
return
-
1
;
}
private
static
List
<
double
>
getReviceData
(
byte
[]
dataArray
)
private
static
List
<
double
>
getReviceData
(
byte
[]
dataArray
)
{
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论