Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
SO491-DUOStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 37489a6f
由
刘韬
编写于
2024-05-10 14:04:27 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
添加语言选项
1 个父辈
e35141b7
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
137 行增加
和
88 行删除
source/Common/CodeResourceControl.cs
source/Common/Common.csproj
source/DUOStore/App.config
source/DUOStore/DUOStore.csproj
source/DUOStore/FrmStore.Designer.cs
source/DUOStore/FrmStore.cs
source/DUOStore/Program.cs
source/DUOStore/Properties/Resources.Designer.cs
source/DUOStore/Properties/Settings.Designer.cs
source/DUOStore/useControl/AxisMoveControl.Designer.cs
source/DeviceLibrary/DeviceLibrary.csproj
source/DeviceLibrary/device/halcon/CodeManager.cs
source/DeviceLibrary/duoStore/BoxBean_Partial.cs
source/DeviceLibrary/duoStore/DUOStoreBean.cs
source/LoadCVSLibrary/LoadCSVLibrary.csproj
source/Common/CodeResourceControl.cs
查看文件 @
37489a6
...
@@ -100,6 +100,7 @@ namespace OnlineStore
...
@@ -100,6 +100,7 @@ namespace OnlineStore
{
{
if
(
OpenResourceLog
)
if
(
OpenResourceLog
)
{
{
getLangRes
(
"zh-CN"
);
if
(!
LangMap
[
"zh-CN"
].
ContainsKey
(
id
)
&&
checkInterid
(
id
))
if
(!
LangMap
[
"zh-CN"
].
ContainsKey
(
id
)
&&
checkInterid
(
id
))
LOG
.
Info
(
"No Res id:"
+
id
+
"#"
+
defaultStr
);
LOG
.
Info
(
"No Res id:"
+
id
+
"#"
+
defaultStr
);
}
}
...
...
source/Common/Common.csproj
查看文件 @
37489a6
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.Common</RootNamespace>
<RootNamespace>OnlineStore.Common</RootNamespace>
<AssemblyName>Common</AssemblyName>
<AssemblyName>Common</AssemblyName>
<TargetFrameworkVersion>v4.
6.1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
8
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<TargetFrameworkProfile />
</PropertyGroup>
</PropertyGroup>
...
...
source/DUOStore/App.config
查看文件 @
37489a6
<?
xml
version
=
"1.0"
?>
<?
xml
version
=
"1.0"
?>
<
configuration
>
<
configuration
>
<
configSections
>
<
configSections
>
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
</
configSections
>
</
configSections
>
<
appSettings
>
<
appSettings
>
<!--是否开机自动启动料仓-->
<!--是否开机自动启动料仓-->
<
add
key
=
"App_AutoRun"
value
=
"0"
/>
<
add
key
=
"App_AutoRun"
value
=
"0"
/>
<
add
key
=
"App_Title"
value
=
"DUO料仓"
/>
<
add
key
=
"App_Title"
value
=
"DUO料仓"
/>
<!-- 开始吹气的判断值(配置值=服务器发送的湿度值-开始吹气值)-->
<!-- 开始吹气的判断值(配置值=服务器发送的湿度值-开始吹气值)-->
<
add
key
=
"StartBlowValue"
value
=
"4"
/>
<
add
key
=
"StartBlowValue"
value
=
"4"
/>
<!-- 停止吹气的判断值(配置值=服务器发送的湿度值-停止吹气值)-->
<!-- 停止吹气的判断值(配置值=服务器发送的湿度值-停止吹气值)-->
<
add
key
=
"StopBlowValue"
value
=
"4"
/>
<
add
key
=
"StopBlowValue"
value
=
"4"
/>
<!--
Server
address
-->
<!--
Server
address
-->
<!--<
add
key
=
"http.server"
value
=
"http://10.85.160.25/myproject/"
/>-->
<!--<
add
key
=
"http.server"
value
=
"http://10.85.160.25/myproject/"
/>-->
<!--
storeType
-->
<!--
storeType
-->
<
add
key
=
"store_count"
value
=
"2"
/>
<
add
key
=
"store_count"
value
=
"2"
/>
<
add
key
=
"Store_ConfigPath"
value
=
"\StoreConfig\StoreConfig.csv"
/>
<
add
key
=
"Store_ConfigPath"
value
=
"\StoreConfig\StoreConfig.csv"
/>
<!--
start
one
store
config
-->
<!--
start
one
store
config
-->
<
add
key
=
"Store_Position_Config"
value
=
"\StoreConfig\linePositions.csv"
/>
<
add
key
=
"Store_Position_Config"
value
=
"\StoreConfig\linePositions.csv"
/>
<
add
key
=
"BOX_ConfigPath"
value
=
"\StoreConfig\BoxConfig.csv"
/>
<
add
key
=
"BOX_ConfigPath"
value
=
"\StoreConfig\BoxConfig.csv"
/>
<
add
key
=
"Store_Type"
value
=
"RC_AC_PA"
/>
<
add
key
=
"Store_Type"
value
=
"RC_AC_PA"
/>
<
add
key
=
"Store_CID"
value
=
"duo-store"
/>
<
add
key
=
"Store_CID"
value
=
"duo-store"
/>
<
add
key
=
"Store_CID_1"
value
=
"duo-1"
/>
<
add
key
=
"Store_CID_1"
value
=
"duo-1"
/>
<
add
key
=
"Store_CID_2"
value
=
"duo-2"
/>
<
add
key
=
"Store_CID_2"
value
=
"duo-2"
/>
<
add
key
=
"Store_CID_1_disabled"
value
=
"1"
/>
<
add
key
=
"Store_CID_1_disabled"
value
=
"1"
/>
<
add
key
=
"Store_CID_2_disabled"
value
=
"1"
/>
<
add
key
=
"Store_CID_2_disabled"
value
=
"1"
/>
<!--
end
one
store
config
-->
<!--
end
one
store
config
-->
<
add
key
=
"ACBaudRate"
value
=
"115200"
/>
<
add
key
=
"ACBaudRate"
value
=
"115200"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<!--二维码类型列表配置,用
#分割,一维码=Barcode 二维码: QR Code#Data Matrix ECC 200#Micro QR Code-->
<!--二维码类型列表配置,用
#分割,一维码=Barcode 二维码: QR Code#Data Matrix ECC 200#Micro QR Code-->
<
add
key
=
"CodeType"
value
=
"QR Code#Data Matrix ECC 200"
/>
<
add
key
=
"CodeType"
value
=
"QR Code#Data Matrix ECC 200"
/>
<!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<
add
key
=
"CodeParamPath"
value
=
"\CodeParam\"
/>
<
add
key
=
"CodeParamPath"
value
=
"\CodeParam\"
/>
<!--出库等待料盘拿走的时间,秒-->
<!--出库等待料盘拿走的时间,秒-->
<
add
key
=
"OutStoreWaitSeconds"
value
=
"1"
/>
<
add
key
=
"OutStoreWaitSeconds"
value
=
"1"
/>
<!--温控器类型,
0
=壁挂王字壳温湿度变送器,
1
=妙昕温湿度记录仪-->
<!--温控器类型,
0
=壁挂王字壳温湿度变送器,
1
=妙昕温湿度记录仪-->
<
add
key
=
"HumitureControllerType"
value
=
"0"
/>
<
add
key
=
"HumitureControllerType"
value
=
"0"
/>
<
add
key
=
"Default_Language"
value
=
"zh-CN"
/>
<
add
key
=
"Default_Language"
value
=
"zh-CN"
/>
<
add
key
=
"UseBuzzer"
value
=
"0"
/>
<
add
key
=
"UseBuzzer"
value
=
"0"
/>
<!--
IO
模块是否主动上传-->
<!--
IO
模块是否主动上传-->
<
add
key
=
"AIOAutoUpload"
value
=
"0"
/>
<
add
key
=
"AIOAutoUpload"
value
=
"0"
/>
<
add
key
=
"CodeCount"
value
=
"3"
/>
<
add
key
=
"CodeCount"
value
=
"3"
/>
<
add
key
=
"Tool_P3_Offset"
value
=
"7000"
/>
<
add
key
=
"Tool_P3_Offset"
value
=
"7000"
/>
<
add
key
=
"Tool_P4_Offset"
value
=
"-2000"
/>
<
add
key
=
"Tool_P4_Offset"
value
=
"-2000"
/>
<
add
key
=
"Tool_P5_Offset"
value
=
"-2000"
/>
<
add
key
=
"Tool_P5_Offset"
value
=
"-2000"
/>
<
add
key
=
"Tool_P6_Offset"
value
=
"7000"
/>
<
add
key
=
"Tool_P6_Offset"
value
=
"7000"
/>
<
add
key
=
"Tool_TargetSpeed"
value
=
"20"
/>
<
add
key
=
"Tool_TargetSpeed"
value
=
"20"
/>
<
add
key
=
"Tool_TargetPosition"
value
=
"1835000"
/>
<
add
key
=
"Tool_TargetPosition"
value
=
"1835000"
/>
<
add
key
=
"Agv_Log_Open"
value
=
"1"
/>
<
add
key
=
"Agv_Log_Open"
value
=
"1"
/>
<!--进出轴位置-->
<!--进出轴位置-->
<
add
key
=
"InOutDefaultPosition"
value
=
"3000"
/>
<
add
key
=
"InOutDefaultPosition"
value
=
"3000"
/>
<!--当前料架信息-料架号-->
<!--当前料架信息-料架号-->
<
add
key
=
"CurrShelfNum"
value
=
"-1"
/>
<
add
key
=
"CurrShelfNum"
value
=
"-1"
/>
<!--当前料架信息-料架类型,
0
=空料架,
1
=入库料架,
2
=出库料架-->
<!--当前料架信息-料架类型,
0
=空料架,
1
=入库料架,
2
=出库料架-->
<
add
key
=
"CurrShelfType"
value
=
"-1"
/>
<
add
key
=
"CurrShelfType"
value
=
"-1"
/>
<
add
key
=
"Code_Block_Size_List"
value
=
"17,19"
/>
<
add
key
=
"Code_Block_Size_List"
value
=
"17,19"
/>
</
appSettings
>
</
appSettings
>
<
log4net
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/duoStore.log"
/>
<
file
value
=
"logs/duoStore.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
layout
>
</
appender
>
</
appender
>
<
appender
name
=
"AIOBOX"
type
=
"log4net.Appender.RollingFileAppender"
>
<
appender
name
=
"AIOBOX"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/aio/AIOBOX.log"
/>
<
file
value
=
"logs/aio/AIOBOX.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
layout
>
</
appender
>
</
appender
>
<
appender
name
=
"LngResource"
type
=
"log4net.Appender.RollingFileAppender"
>
<
appender
name
=
"LngResource"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/LngResource.log"
/>
<
file
value
=
"logs/LngResource.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
layout
>
</
appender
>
</
appender
>
<
logger
name
=
"RollingLogFileAppender"
>
<
logger
name
=
"RollingLogFileAppender"
>
<
level
value
=
"Info"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
</
logger
>
</
logger
>
<
logger
name
=
"AIOBOX"
>
<
logger
name
=
"AIOBOX"
>
<
level
value
=
"Info"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"AIOBOX"
/>
<
appender
-
ref
ref
=
"AIOBOX"
/>
</
logger
>
</
logger
>
<
logger
name
=
"LngResource"
>
<
logger
name
=
"LngResource"
>
<
level
value
=
"Info"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"LngResource"
/>
<
appender
-
ref
ref
=
"LngResource"
/>
</
logger
>
</
logger
>
<!--<
root
>
<!--<
root
>
<
level
value
=
"Info"
/>
<
level
value
=
"Info"
/>
...
@@ -106,6 +106,6 @@
...
@@ -106,6 +106,6 @@
</
root
>-->
</
root
>-->
</
log4net
>
</
log4net
>
<
startup
>
<
startup
>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.
6.1"
/>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.
8"
/>
</
startup
>
</
startup
>
</
configuration
>
\ No newline at end of file
\ No newline at end of file
</
configuration
>
source/DUOStore/DUOStore.csproj
查看文件 @
37489a6
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.DUOStore</RootNamespace>
<RootNamespace>OnlineStore.DUOStore</RootNamespace>
<AssemblyName>DUOStore</AssemblyName>
<AssemblyName>DUOStore</AssemblyName>
<TargetFrameworkVersion>v4.
6.1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
8
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<TargetFrameworkProfile />
</PropertyGroup>
</PropertyGroup>
...
...
source/DUOStore/FrmStore.Designer.cs
查看文件 @
37489a6
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
this
.
chkDebug
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
chkDebug
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
lblMoveInfo
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblMoveInfo
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
chbAutoRun
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
chbAutoRun
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
btn_releaseShelf
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCopyLog
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCopyLog
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnClearLog
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnClearLog
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
lblShelf
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblShelf
=
new
System
.
Windows
.
Forms
.
Label
();
...
@@ -120,6 +121,7 @@
...
@@ -120,6 +121,7 @@
this
.
panel1
.
Controls
.
Add
(
this
.
chkDebug
);
this
.
panel1
.
Controls
.
Add
(
this
.
chkDebug
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblMoveInfo
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblMoveInfo
);
this
.
panel1
.
Controls
.
Add
(
this
.
chbAutoRun
);
this
.
panel1
.
Controls
.
Add
(
this
.
chbAutoRun
);
this
.
panel1
.
Controls
.
Add
(
this
.
btn_releaseShelf
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnCopyLog
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnCopyLog
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnClearLog
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnClearLog
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblShelf
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblShelf
);
...
@@ -176,6 +178,19 @@
...
@@ -176,6 +178,19 @@
this
.
chbAutoRun
.
UseVisualStyleBackColor
=
true
;
this
.
chbAutoRun
.
UseVisualStyleBackColor
=
true
;
this
.
chbAutoRun
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chbAutoRun_CheckedChanged
);
this
.
chbAutoRun
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chbAutoRun_CheckedChanged
);
//
//
// btn_releaseShelf
//
this
.
btn_releaseShelf
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
btn_releaseShelf
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btn_releaseShelf
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btn_releaseShelf
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
383
);
this
.
btn_releaseShelf
.
Name
=
"btn_releaseShelf"
;
this
.
btn_releaseShelf
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
35
);
this
.
btn_releaseShelf
.
TabIndex
=
191
;
this
.
btn_releaseShelf
.
Text
=
"释放料架"
;
this
.
btn_releaseShelf
.
UseVisualStyleBackColor
=
false
;
this
.
btn_releaseShelf
.
Click
+=
new
System
.
EventHandler
(
this
.
btn_releaseShelf_Click
);
//
// btnCopyLog
// btnCopyLog
//
//
this
.
btnCopyLog
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
btnCopyLog
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
...
@@ -450,7 +465,7 @@
...
@@ -450,7 +465,7 @@
// 中文ToolStripMenuItem
// 中文ToolStripMenuItem
//
//
this
.
中文
ToolStripMenuItem
.
Name
=
"中文ToolStripMenuItem"
;
this
.
中文
ToolStripMenuItem
.
Name
=
"中文ToolStripMenuItem"
;
this
.
中文
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
中文
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
34
,
26
);
this
.
中文
ToolStripMenuItem
.
Tag
=
"not"
;
this
.
中文
ToolStripMenuItem
.
Tag
=
"not"
;
this
.
中文
ToolStripMenuItem
.
Text
=
"中文"
;
this
.
中文
ToolStripMenuItem
.
Text
=
"中文"
;
this
.
中文
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
中文
ToolStripMenuItem_Click
);
this
.
中文
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
中文
ToolStripMenuItem_Click
);
...
@@ -458,7 +473,7 @@
...
@@ -458,7 +473,7 @@
// 英语ToolStripMenuItem
// 英语ToolStripMenuItem
//
//
this
.
英语
ToolStripMenuItem
.
Name
=
"英语ToolStripMenuItem"
;
this
.
英语
ToolStripMenuItem
.
Name
=
"英语ToolStripMenuItem"
;
this
.
英语
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
英语
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
34
,
26
);
this
.
英语
ToolStripMenuItem
.
Tag
=
"not"
;
this
.
英语
ToolStripMenuItem
.
Tag
=
"not"
;
this
.
英语
ToolStripMenuItem
.
Text
=
"English"
;
this
.
英语
ToolStripMenuItem
.
Text
=
"English"
;
this
.
英语
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
英语
ToolStripMenuItem_Click
);
this
.
英语
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
英语
ToolStripMenuItem_Click
);
...
@@ -584,6 +599,7 @@
...
@@ -584,6 +599,7 @@
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
语言
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
语言
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
中文
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
中文
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
英语
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
英语
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
Button
btn_releaseShelf
;
}
}
}
}
source/DUOStore/FrmStore.cs
查看文件 @
37489a6
...
@@ -29,14 +29,17 @@ namespace OnlineStore.DUOStore
...
@@ -29,14 +29,17 @@ namespace OnlineStore.DUOStore
private
System
.
Timers
.
Timer
startTimer
=
null
;
private
System
.
Timers
.
Timer
startTimer
=
null
;
internal
FrmStore
()
internal
FrmStore
()
{
{
CodeResourceControl
.
GetLanguageEvent
+=
CodeResourceControl_GetLanguageEvent
;
InitializeComponent
();
InitializeComponent
();
startTimer
=
new
System
.
Timers
.
Timer
();
startTimer
=
new
System
.
Timers
.
Timer
();
startTimer
.
Interval
=
1000
;
startTimer
.
Interval
=
1000
;
startTimer
.
Enabled
=
false
;
startTimer
.
Enabled
=
false
;
startTimer
.
AutoReset
=
false
;
startTimer
.
AutoReset
=
false
;
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
this
.
Shown
+=
FrmStore_Shown
;
this
.
Shown
+=
FrmStore_Shown
;
CodeResourceControl
.
GetLanguageEvent
+=
CodeResourceControl_GetLanguageEvent
;
}
}
private
string
CodeResourceControl_GetLanguageEvent
()
private
string
CodeResourceControl_GetLanguageEvent
()
...
@@ -57,6 +60,7 @@ namespace OnlineStore.DUOStore
...
@@ -57,6 +60,7 @@ namespace OnlineStore.DUOStore
{
{
try
try
{
{
CodeResourceControl
.
LanguageProcess
(
this
,
this
.
GetType
().
Name
);
FrmBase
.
GetVersion
();
FrmBase
.
GetVersion
();
store
=
StoreManager
.
InitStore
();
store
=
StoreManager
.
InitStore
();
if
(
store
==
null
)
if
(
store
==
null
)
...
@@ -120,10 +124,10 @@ namespace OnlineStore.DUOStore
...
@@ -120,10 +124,10 @@ namespace OnlineStore.DUOStore
{
{
this
.
listView1
.
Columns
.
Clear
();
this
.
listView1
.
Columns
.
Clear
();
AddHealder
(
crc
.
GetString
(
"table_name"
,
"名称"
),
90
);
AddHealder
(
crc
.
GetString
(
"table_name"
,
"名称"
),
90
);
AddHealder
(
crc
.
GetString
(
"table_enable"
,
"启用"
),
5
0
);
AddHealder
(
crc
.
GetString
(
"table_enable"
,
"启用"
),
6
0
);
AddHealder
(
crc
.
GetString
(
"table_alarm"
,
"报警"
),
130
);
AddHealder
(
crc
.
GetString
(
"table_alarm"
,
"报警"
),
130
);
AddHealder
(
crc
.
GetString
(
"table_state"
,
"状态"
),
1
1
0
);
AddHealder
(
crc
.
GetString
(
"table_state"
,
"状态"
),
1
3
0
);
AddHealder
(
crc
.
GetString
(
"table_reelinfo"
,
"料盘信息"
),
listView1
.
Size
.
Width
-
1
10
-
130
-
5
0
-
90
-
10
);
AddHealder
(
crc
.
GetString
(
"table_reelinfo"
,
"料盘信息"
),
listView1
.
Size
.
Width
-
1
30
-
130
-
6
0
-
90
-
10
);
//AddHealder("BOX状态", listView1.Size.Width - 100 - 80 - 80 - 100 - 100 - 100 -40- 8);
//AddHealder("BOX状态", listView1.Size.Width - 100 - 80 - 80 - 100 - 100 - 100 -40- 8);
AddRow
(
store
,
false
);
AddRow
(
store
,
false
);
...
@@ -775,5 +779,10 @@ namespace OnlineStore.DUOStore
...
@@ -775,5 +779,10 @@ namespace OnlineStore.DUOStore
ConfigAppSettings
.
SaveValue
(
"Default_Language"
,
"zh-CN"
);
ConfigAppSettings
.
SaveValue
(
"Default_Language"
,
"zh-CN"
);
FrmStore_Shown
(
this
,
EventArgs
.
Empty
);
FrmStore_Shown
(
this
,
EventArgs
.
Empty
);
}
}
private
void
btn_releaseShelf_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
LineOut_BTN_Process
(
true
);
}
}
}
}
}
source/DUOStore/Program.cs
查看文件 @
37489a6
...
@@ -5,10 +5,12 @@ using OnlineStore.DUOStore;
...
@@ -5,10 +5,12 @@ using OnlineStore.DUOStore;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Diagnostics
;
using
System.IO
;
using
System.Linq
;
using
System.Linq
;
using
System.Runtime.InteropServices
;
using
System.Runtime.InteropServices
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
using
System.Windows.Forms
;
using
System.Xml
;
namespace
OnlineStore.DUOStore
namespace
OnlineStore.DUOStore
{
{
...
@@ -55,11 +57,11 @@ namespace OnlineStore.DUOStore
...
@@ -55,11 +57,11 @@ namespace OnlineStore.DUOStore
[
STAThread
]
[
STAThread
]
static
void
Main
(
string
[]
Args
)
static
void
Main
(
string
[]
Args
)
{
{
//string path = @"http://localhost:4090/rest/api/v1/station/status";
//string path = @"http://localhost:4090/rest/api/v1/station/status";
//HttpHelper.PostOperation(path, new Operation());
//HttpHelper.PostOperation(path, new Operation());
//var a = DeviceLibrary.InOutParam.GetPosStoreId("4#AC3_17_3_22");
//var a = DeviceLibrary.InOutParam.GetPosStoreId("4#AC3_17_3_22");
CheckConfigFile
();
Application
.
ThreadException
+=
new
System
.
Threading
.
ThreadExceptionEventHandler
(
Application_ThreadException
);
Application
.
ThreadException
+=
new
System
.
Threading
.
ThreadExceptionEventHandler
(
Application_ThreadException
);
AppDomain
.
CurrentDomain
.
UnhandledException
+=
new
UnhandledExceptionEventHandler
(
CurrentDomain_UnhandledException
);
AppDomain
.
CurrentDomain
.
UnhandledException
+=
new
UnhandledExceptionEventHandler
(
CurrentDomain_UnhandledException
);
...
@@ -109,6 +111,24 @@ namespace OnlineStore.DUOStore
...
@@ -109,6 +111,24 @@ namespace OnlineStore.DUOStore
Application
.
Run
(
new
FrmStore
());
Application
.
Run
(
new
FrmStore
());
}
}
}
}
private
static
void
CheckConfigFile
()
{
string
configfile
=
AppDomain
.
CurrentDomain
.
SetupInformation
.
ConfigurationFile
;
string
backupfile
=
configfile
+
".backup"
;
try
{
var
c
=
new
XmlDocument
();
c
.
Load
(
configfile
);
File
.
Copy
(
configfile
,
backupfile
,
true
);
}
catch
{
if
(
File
.
Exists
(
backupfile
))
{
File
.
Copy
(
backupfile
,
configfile
,
true
);
}
}
}
static
void
CurrentDomain_UnhandledException
(
object
sender
,
UnhandledExceptionEventArgs
e
)
static
void
CurrentDomain_UnhandledException
(
object
sender
,
UnhandledExceptionEventArgs
e
)
{
{
LogUnhandledException
(
e
.
ExceptionObject
);
LogUnhandledException
(
e
.
ExceptionObject
);
...
...
source/DUOStore/Properties/Resources.Designer.cs
查看文件 @
37489a6
...
@@ -19,7 +19,7 @@ namespace OnlineStore.DUOStore.Properties {
...
@@ -19,7 +19,7 @@ namespace OnlineStore.DUOStore.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
// (以 /str 作为命令选项),或重新生成 VS 项目。
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"System.Resources.Tools.StronglyTypedResourceBuilder"
,
"1
5
.0.0.0"
)]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"System.Resources.Tools.StronglyTypedResourceBuilder"
,
"1
7
.0.0.0"
)]
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
internal
class
Resources
{
internal
class
Resources
{
...
@@ -47,8 +47,8 @@ namespace OnlineStore.DUOStore.Properties {
...
@@ -47,8 +47,8 @@ namespace OnlineStore.DUOStore.Properties {
}
}
/// <summary>
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性
,对
///
重写当前线程的 CurrentUICulture 属性
。
///
使用此强类型资源类的所有资源查找执行重写
。
/// </summary>
/// </summary>
[
global
::
System
.
ComponentModel
.
EditorBrowsableAttribute
(
global
::
System
.
ComponentModel
.
EditorBrowsableState
.
Advanced
)]
[
global
::
System
.
ComponentModel
.
EditorBrowsableAttribute
(
global
::
System
.
ComponentModel
.
EditorBrowsableState
.
Advanced
)]
internal
static
global
::
System
.
Globalization
.
CultureInfo
Culture
{
internal
static
global
::
System
.
Globalization
.
CultureInfo
Culture
{
...
...
source/DUOStore/Properties/Settings.Designer.cs
查看文件 @
37489a6
...
@@ -12,7 +12,7 @@ namespace OnlineStore.DUOStore.Properties {
...
@@ -12,7 +12,7 @@ namespace OnlineStore.DUOStore.Properties {
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator"
,
"1
5.9
.0.0"
)]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator"
,
"1
7.5
.0.0"
)]
internal
sealed
partial
class
Settings
:
global
::
System
.
Configuration
.
ApplicationSettingsBase
{
internal
sealed
partial
class
Settings
:
global
::
System
.
Configuration
.
ApplicationSettingsBase
{
private
static
Settings
defaultInstance
=
((
Settings
)(
global
::
System
.
Configuration
.
ApplicationSettingsBase
.
Synchronized
(
new
Settings
())));
private
static
Settings
defaultInstance
=
((
Settings
)(
global
::
System
.
Configuration
.
ApplicationSettingsBase
.
Synchronized
(
new
Settings
())));
...
...
source/DUOStore/useControl/AxisMoveControl.Designer.cs
查看文件 @
37489a6
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
37489a6
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.DeviceLibrary</RootNamespace>
<RootNamespace>OnlineStore.DeviceLibrary</RootNamespace>
<AssemblyName>DeviceLibrary</AssemblyName>
<AssemblyName>DeviceLibrary</AssemblyName>
<TargetFrameworkVersion>v4.
6.1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
8
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<TargetFrameworkProfile />
</PropertyGroup>
</PropertyGroup>
...
...
source/DeviceLibrary/device/halcon/CodeManager.cs
查看文件 @
37489a6
...
@@ -159,16 +159,16 @@ namespace OnlineStore.DeviceLibrary
...
@@ -159,16 +159,16 @@ namespace OnlineStore.DeviceLibrary
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
string
r
=
""
;
string
r
=
""
;
foreach
(
int
codesize
in
Code_Block_Size_List
)
//
foreach (int codesize in Code_Block_Size_List)
{
{
//if (codeList.Count > 0)
//if (codeList.Count > 0)
// break;
// break;
List
<
CodeInfo
>
tlci
=
EyemDecode
.
Decoder
(
ref
bmp
,
null
,
codesize
);
List
<
CodeInfo
>
tlci
=
EyemDecode
2
.
Decoder
(
ref
bmp
);
foreach
(
CodeInfo
code
in
tlci
)
foreach
(
CodeInfo
code
in
tlci
)
{
{
LogUtil
.
info
(
" 【"
+
cameraName
+
$
"】[eyemDecode
blocksize:{codesize}
]"
+
code
.
CodeType
+
"(X: "
+
code
.
X
+
",Y: "
+
code
.
Y
+
") "
+
code
.
CodeStr
);
LogUtil
.
info
(
" 【"
+
cameraName
+
$
"】[eyemDecode]"
+
code
.
CodeType
+
"(X: "
+
code
.
X
+
",Y: "
+
code
.
Y
+
") "
+
code
.
CodeStr
);
string
str
=
CodeManager
.
ReplaceCode
(
code
.
CodeStr
);
string
str
=
CodeManager
.
ReplaceCode
(
code
.
CodeStr
);
lock
(
codeList
)
lock
(
codeList
)
{
{
...
...
source/DeviceLibrary/duoStore/BoxBean_Partial.cs
查看文件 @
37489a6
...
@@ -207,6 +207,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -207,6 +207,7 @@ namespace OnlineStore.DeviceLibrary
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P11
,
Config
.
MiddleAxis_P11_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P11
,
Config
.
MiddleAxis_P11_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P12
,
Config
.
UpDownAxis_P12_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P12
,
Config
.
UpDownAxis_P12_Speed
);
}
}
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Fixture_Check
,
IO_VALUE
.
HIGH
));
}
}
#
region
正常入库处理
#
region
正常入库处理
...
@@ -245,6 +246,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -245,6 +246,7 @@ namespace OnlineStore.DeviceLibrary
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Fixture_Check
,
IO_VALUE
.
LOW
));
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_10_GoBack
))
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_10_GoBack
))
{
{
...
@@ -460,6 +462,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -460,6 +462,7 @@ namespace OnlineStore.DeviceLibrary
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P11
,
Config
.
MiddleAxis_P11_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P11
,
Config
.
MiddleAxis_P11_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P12
,
Config
.
UpDownAxis_P12_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P12
,
Config
.
UpDownAxis_P12_Speed
);
}
}
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Fixture_Check
,
IO_VALUE
.
HIGH
));
}
}
#
region
批量出料,到料串
#
region
批量出料,到料串
...
...
source/DeviceLibrary/duoStore/DUOStoreBean.cs
查看文件 @
37489a6
...
@@ -650,9 +650,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -650,9 +650,9 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
p
rivate
void
LineOut_BTN_Process
(
)
p
ublic
void
LineOut_BTN_Process
(
bool
force
=
false
)
{
{
if
(
IOValue
(
IO_Type
.
LineOut_BTN
).
Equals
(
IO_VALUE
.
LOW
))
if
(
IOValue
(
IO_Type
.
LineOut_BTN
).
Equals
(
IO_VALUE
.
LOW
)
&&
!
force
)
return
;
return
;
if
(
IOValue
(
IO_Type
.
Line_OutCheck
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
IOValue
(
IO_Type
.
Line_OutCheck
).
Equals
(
IO_VALUE
.
HIGH
))
...
@@ -660,7 +660,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -660,7 +660,7 @@ namespace OnlineStore.DeviceLibrary
//IOMove(IO_Type.Line_Run, IO_VALUE.HIGH, false, 4000);
//IOMove(IO_Type.Line_Run, IO_VALUE.HIGH, false, 4000);
LineRun
(
"LineOut_BTN_Process"
,
4
);
LineRun
(
"LineOut_BTN_Process"
,
4
);
IOMove
(
IO_Type
.
Line_Stop4_Out
,
IO_VALUE
.
HIGH
,
false
,
2000
);
IOMove
(
IO_Type
.
Line_Stop4_Out
,
IO_VALUE
.
HIGH
,
false
,
2000
);
LogUtil
.
info
(
Name
+
"脚踩
按钮,放行区放行"
);
LogUtil
.
info
(
Name
+
$
"{(force?"
界面
": "
脚踩
")}
按钮,放行区放行"
);
}
}
if
(
IOValue
(
IO_Type
.
Line_OutCheck
).
Equals
(
IO_VALUE
.
LOW
)
if
(
IOValue
(
IO_Type
.
Line_OutCheck
).
Equals
(
IO_VALUE
.
LOW
)
...
@@ -671,7 +671,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -671,7 +671,7 @@ namespace OnlineStore.DeviceLibrary
{
{
LineRun
(
"LineOut_BTN_Process"
,
3
);
LineRun
(
"LineOut_BTN_Process"
,
3
);
IOMove
(
IO_Type
.
Line_Stop2_Work
,
IO_VALUE
.
HIGH
,
false
,
2000
);
IOMove
(
IO_Type
.
Line_Stop2_Work
,
IO_VALUE
.
HIGH
,
false
,
2000
);
LogUtil
.
info
(
Name
+
"脚踩
按钮,工作区放行"
);
LogUtil
.
info
(
Name
+
$
"{(force?"
界面
": "
脚踩
")}
按钮,工作区放行"
);
}
}
bool
box1stay
=
BoxMap
[
1
].
runStatus
==
StoreRunStatus
.
Runing
||
BoxMap
[
1
].
runStatus
==
StoreRunStatus
.
Wait
;
bool
box1stay
=
BoxMap
[
1
].
runStatus
==
StoreRunStatus
.
Runing
||
BoxMap
[
1
].
runStatus
==
StoreRunStatus
.
Wait
;
bool
box2stay
=
BoxMap
[
2
].
runStatus
==
StoreRunStatus
.
Runing
||
BoxMap
[
2
].
runStatus
==
StoreRunStatus
.
Wait
;
bool
box2stay
=
BoxMap
[
2
].
runStatus
==
StoreRunStatus
.
Runing
||
BoxMap
[
2
].
runStatus
==
StoreRunStatus
.
Wait
;
...
@@ -680,7 +680,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -680,7 +680,7 @@ namespace OnlineStore.DeviceLibrary
{
{
//OutstoreEndSendShelf = true;
//OutstoreEndSendShelf = true;
LO_31_BatchAxisToP1
();
LO_31_BatchAxisToP1
();
LogUtil
.
info
(
Name
+
"脚踩
按钮,出库强制放行"
);
LogUtil
.
info
(
Name
+
$
"{(force ? "
界面
" : "
脚踩
")}
按钮,出库强制放行"
);
}
}
}
}
...
...
source/LoadCVSLibrary/LoadCSVLibrary.csproj
查看文件 @
37489a6
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<AssemblyName>LoadCSVLibrary</AssemblyName>
<AssemblyName>LoadCSVLibrary</AssemblyName>
<TargetFrameworkVersion>v4.
6.1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
8
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<TargetFrameworkProfile />
</PropertyGroup>
</PropertyGroup>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论