Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
VerticalStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit e931b448
由
LN
编写于
2020-07-21 11:46:21 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
出入库bug修改
1 个父辈
4b2b9033
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
125 行增加
和
46 行删除
source/DeviceLibrary/StoreConfig/Data Matrix ECC 200.dcm
source/DeviceLibrary/StoreConfig/StoreConfig.csv
source/DeviceLibrary/StoreConfig/linePositions.csv
source/DeviceLibrary/acVerticalStore/VerticalStoreBean_InOut.cs
source/VerticalStoreClinet/FrmStoreBox.cs
source/DeviceLibrary/StoreConfig/Data Matrix ECC 200.dcm
deleted
100644 → 0
查看文件 @
4b2b903
此文件类型无法预览
source/DeviceLibrary/StoreConfig/StoreConfig.csv
查看文件 @
e931b44
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
AXIS,(轴一)料斗旋转轴,Middle_Axis,1,COM1,,,,250,80,80,80,60,50,10,1000,0,0
AXIS,(轴一)料斗旋转轴,Middle_Axis,1,COM1,,,,250,80,80,80,60,50,10,1000,0,0
PRO,IO模块对应的DI数量,IO_DILength,192.168.200.21#16,,,,,,,,,,,,,,
PRO,IO模块对应的DI数量,IO_DILength,192.168.200.21#16,,,,,,,,,,,,,,
PRO,模块对应的DO数量,IO_DOLength,192.168.200.21#16,,,,,,,,,,,,,,
PRO,模块对应的DO数量,IO_DOLength,192.168.200.21#16,,,,,,,,,,,,,,
PRO,Led控制器IP,LED_IP,192.168.20
0.192
,,,,,,,,,,,,,,
PRO,Led控制器IP,LED_IP,192.168.20
1.194
,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,
DI,急停,SuddenStop_BTN,0,192.168.200.21,急停,X01,X01,,,,,,,,,,
DI,急停,SuddenStop_BTN,0,192.168.200.21,急停,X01,X01,,,,,,,,,,
DI,复位,Reset_BTN,1,192.168.200.21,复位,X02,X02,,,,,,,,,,
DI,复位,Reset_BTN,1,192.168.200.21,复位,X02,X02,,,,,,,,,,
...
@@ -44,8 +44,8 @@ PRO,伺服停止时可误差的脉冲数的最小值,Axis_ErrorCountMin,10,,,,,,,,,,,,,,
...
@@ -44,8 +44,8 @@ PRO,伺服停止时可误差的脉冲数的最小值,Axis_ErrorCountMin,10,,,,,,,,,,,,,,
PRO,伺服停止时可误差的脉冲数的最大值,Axis_ErrorCountMax,1000,,,,,,,,,,,,,,
PRO,伺服停止时可误差的脉冲数的最大值,Axis_ErrorCountMax,1000,,,,,,,,,,,,,,
PRO,(轴一)旋转轴最小限位,MiddleAxis_PositionMin,0,,,,,,,,,,,,,,
PRO,(轴一)旋转轴最小限位,MiddleAxis_PositionMin,0,,,,,,,,,,,,,,
PRO,(轴一)旋转轴最大限位,MiddleAxis_PositionMax,0,,,,,,,,,,,,,,
PRO,(轴一)旋转轴最大限位,MiddleAxis_PositionMax,0,,,,,,,,,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,1
2
0,,,,,,,,,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,1
00
0,,,,,,,,,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,1
2
0,,,,,,,,,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,1
00
0,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,
PRO,设备是否处于调试状态(1=调试,0=正常),IsInDebug,0,,,,,,,,,,,,,,
PRO,设备是否处于调试状态(1=调试,0=正常),IsInDebug,0,,,,,,,,,,,,,,
...
...
source/DeviceLibrary/StoreConfig/linePositions.csv
查看文件 @
e931b44
位置,库位类型,优先级,料盒宽度,料盒高度,料仓ID,灯区域索引,亮灯索引,料斗旋转轴位置P2
位置,库位类型,优先级,料盒宽度,料盒高度,料仓ID,灯区域索引,亮灯索引,料斗旋转轴位置P2
P_1_1,1,1,210,300,1,0,1,10000
P_1_1,1,1,210,300,1,2,2,47499
P_1_2,1,2,210,300,1,0,2,10000
P_1_2,1,2,210,300,1,2,6,47499
P_1_3,1,3,210,300,1,0,3,10000
P_1_3,1,3,210,300,1,2,9,47499
P_1_4,1,4,210,300,1,0,4,10000
P_1_4,1,4,210,300,1,2,13,47499
P_1_5,1,5,210,300,1,0,5,10000
P_1_5,1,5,210,300,1,2,17,47499
P_1_6,1,6,210,300,1,0,6,10000
P_1_6,1,6,210,300,1,2,21,47499
P_1_7,1,7,210,300,1,0,7,10000
P_1_7,1,7,210,300,1,2,26,47499
P_1_8,1,8,210,300,1,0,8,10000
P_1_8,1,8,210,300,1,2,30,47499
P_1_9,1,9,210,300,1,0,9,10000
P_1_9,1,9,210,300,1,2,35,47499
P_1_10,1,10,210,300,1,0,10,10000
P_1_10,1,10,210,300,1,2,39,47499
P_2_1,1,11,210,300,1,0,11,50000
P_2_1,1,11,210,300,1,2,2,1433826
P_2_2,1,12,210,300,1,0,12,50000
P_2_2,1,12,210,300,1,2,6,1433826
P_2_3,1,13,210,300,1,0,13,50000
P_2_3,1,13,210,300,1,2,9,1433826
P_2_4,1,14,210,300,1,0,14,50000
P_2_4,1,14,210,300,1,2,13,1433826
P_2_5,1,15,210,300,1,0,15,50000
P_2_5,1,15,210,300,1,2,17,1433826
P_2_6,1,16,210,300,1,0,16,50000
P_2_6,1,16,210,300,1,2,21,1433826
P_2_7,1,17,210,300,1,0,17,50000
P_2_7,1,17,210,300,1,2,26,1433826
P_2_8,1,18,210,300,1,0,18,50000
P_2_8,1,18,210,300,1,2,30,1433826
P_2_9,1,19,210,300,1,0,19,50000
P_2_9,1,19,210,300,1,2,35,1433826
P_2_10,1,20,210,300,1,0,20,50000
P_2_10,1,20,210,300,1,2,39,1433826
P_3_1,2,21,400,300,1,0,21;22,90000
P_3_1,1,21,210,300,1,2,2,2839818
P_3_2,2,22,400,300,1,0,23;24,90000
P_3_2,1,22,210,300,1,2,6,2839818
P_3_3,2,23,400,300,1,0,25;26,90000
P_3_3,1,23,210,300,1,2,9,2839818
P_3_4,2,24,400,300,1,0,21;23,90000
P_3_4,1,24,210,300,1,2,13,2839818
P_3_5,2,25,400,300,1,0,23;25,90000
P_3_5,1,25,210,300,1,2,17,2839818
P_4_1,2,26,400,300,1,0,25;27,130000
P_3_6,1,26,210,300,1,2,21,2839818
P_4_2,2,27,400,300,1,0,21;24,130000
P_3_7,1,27,210,300,1,2,26,2839818
P_4_3,2,28,400,300,1,0,23;26,130000
P_3_8,1,28,210,300,1,2,30,2839818
P_4_4,2,29,400,300,1,0,25;28,130000
P_3_9,1,29,210,300,1,2,35,2839818
P_4_5,2,30,400,300,1,0,21;25,130000
P_3_10,1,30,210,300,1,2,39,2839818
P_4_1,1,31,210,300,1,2,2,4209479
P_4_2,1,32,210,300,1,2,6,4209479
P_4_3,1,33,210,300,1,2,6,4209479
P_4_4,1,34,210,300,1,2,9,4209479
P_4_5,1,35,210,300,1,2,11,4209479
P_4_6,1,36,210,300,1,2,13,4209479
P_4_7,1,37,210,300,1,2,17,4209479
P_4_8,1,38,210,300,1,2,19,4209479
P_4_9,1,39,210,300,1,2,21,4209479
P_4_10,1,40,210,300,1,2,26,4209479
P_5_1,1,41,210,300,1,2,2,5626805
P_5_2,1,42,210,300,1,2,4,5626805
P_5_3,1,43,210,300,1,2,6,5626805
P_5_4,1,44,210,300,1,2,9,5626805
P_5_5,1,45,210,300,1,2,11,5626805
P_5_6,1,46,210,300,1,2,13,5626805
P_5_7,1,47,210,300,1,2,17,5626805
P_5_8,1,48,210,300,1,2,19,5626805
P_5_9,1,49,210,300,1,2,21,5626805
P_5_10,1,50,210,300,1,2,26,5626805
P_6_1,1,51,210,300,1,2,2,7031465
P_6_2,1,52,210,300,1,2,4,7031465
P_6_3,1,53,210,300,1,2,6,7031465
P_6_4,1,54,210,300,1,2,9,7031465
P_6_5,1,55,210,300,1,2,11,7031465
P_6_6,1,56,210,300,1,2,13,7031465
P_6_7,1,57,210,300,1,2,17,7031465
P_6_8,1,58,210,300,1,2,19,7031465
P_6_9,1,59,210,300,1,2,21,7031465
P_6_10,1,60,210,300,1,2,26,7031465
P_7_1,1,61,210,300,1,2,2,8441458
P_7_2,1,62,210,300,1,2,4,8441458
P_7_3,1,63,210,300,1,2,6,8441458
P_7_4,1,64,210,300,1,2,9,8441458
P_7_5,1,65,210,300,1,2,11,8441458
P_7_6,1,66,210,300,1,2,13,8441458
P_7_7,1,67,210,300,1,2,17,8441458
P_7_8,1,68,210,300,1,2,19,8441458
P_7_9,1,69,210,300,1,2,21,8441458
P_7_10,1,70,210,300,1,2,26,8441458
P_8_1,1,71,210,300,1,2,2,9861284
P_8_2,1,72,210,300,1,2,4,9861284
P_8_3,1,73,210,300,1,2,6,9861284
P_8_4,1,74,210,300,1,2,9,9861284
P_8_5,1,75,210,300,1,2,11,9861284
P_8_6,1,76,210,300,1,2,13,9861284
P_8_7,1,77,210,300,1,2,17,9861284
P_8_8,1,78,210,300,1,2,19,9861284
P_8_9,1,79,210,300,1,2,21,9861284
P_8_10,1,80,210,300,1,2,26,9861284
P_9_1,1,81,210,300,1,2,2,11217278
P_9_2,1,82,210,300,1,2,4,11217278
P_9_3,1,83,210,300,1,2,6,11217278
P_9_4,1,84,210,300,1,2,9,11217278
P_9_5,1,85,210,300,1,2,11,11217278
P_9_6,1,86,210,300,1,2,13,11217278
P_9_7,1,87,210,300,1,2,17,11217278
P_9_8,1,88,210,300,1,2,19,11217278
P_9_9,1,89,210,300,1,2,21,11217278
P_9_10,1,90,210,300,1,2,26,11217278
P_10_1,1,91,210,300,1,2,2,12625938
P_10_2,1,92,210,300,1,2,4,12625938
P_10_3,1,93,210,300,1,2,6,12625938
P_10_4,1,94,210,300,1,2,9,12625938
P_10_5,1,95,210,300,1,2,11,12625938
P_10_6,1,96,210,300,1,2,13,12625938
P_10_7,1,97,210,300,1,2,17,12625938
P_10_8,1,98,210,300,1,2,19,12625938
P_10_9,1,99,210,300,1,2,21,12625938
P_10_10,1,100,210,300,1,2,26,12625938
P_11_1,2,101,400,300,1,2,2;4;6,14044097
P_11_2,2,102,400,300,1,2,9;11;13,14044097
P_11_3,2,103,400,300,1,2,17;19;21,14044097
P_11_4,2,104,400,300,1,2,26;28;30,14044097
P_11_5,2,105,400,300,1,2,35;37;39,14044097
P_12_1,2,106,400,300,1,2,2;4;6,15400591
P_12_2,2,107,400,300,1,2,9;11;13,15400591
P_12_3,2,108,400,300,1,2,17;19;21,15400591
P_12_4,2,109,400,300,1,2,26;28;30,15400591
P_12_5,2,110,400,300,1,2,35;37;39,15400591
source/DeviceLibrary/acVerticalStore/VerticalStoreBean_InOut.cs
查看文件 @
e931b44
...
@@ -188,19 +188,20 @@ namespace OnlineStore.DeviceLibrary
...
@@ -188,19 +188,20 @@ namespace OnlineStore.DeviceLibrary
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_MiddleToP2
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_MiddleToP2
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
InStoreLog
(
" 旋转轴到P2点"
);
InStoreLog
(
" 旋转轴到P2点
["
+
MoveInfo
.
MoveParam
.
Position
.
MiddleAxis_P2
+
"]
"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
Position
.
MiddleAxis_P2
,
Config
.
MiddleAxis_P2_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
Position
.
MiddleAxis_P2
,
Config
.
MiddleAxis_P2_Speed
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_03_MiddleToP2
))
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_03_MiddleToP2
))
{
{
int
dmx
=
MoveInfo
.
MoveParam
.
Position
.
LedDmx
;
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_OpenDoor
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_OpenDoor
);
InStoreLog
(
" 打开升降门,打开库位灯蓝色 ,更新状态为入仓完成 "
);
InStoreLog
(
" 打开升降门,打开库位灯
["
+
dmx
+
","
+
MoveInfo
.
MoveParam
.
Position
.
LedIndex
+
"]为
蓝色 ,更新状态为入仓完成 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
DoorBean
.
StartOpen
(
MoveInfo
);
DoorBean
.
StartOpen
(
MoveInfo
);
List
<
Light
>
lights
=
new
List
<
Light
>();
List
<
Light
>
lights
=
new
List
<
Light
>();
foreach
(
int
index
in
MoveInfo
.
MoveParam
.
Position
.
GetLedList
())
foreach
(
int
index
in
MoveInfo
.
MoveParam
.
Position
.
GetLedList
())
{
{
lights
.
Add
(
Light
.
BlueLight
(
MoveInfo
.
MoveParam
.
Position
.
LedD
mx
,
index
));
lights
.
Add
(
Light
.
BlueLight
(
d
mx
,
index
));
}
}
LEDManager
.
GetLedModule
(
Config
.
LED_IP
).
OnlyLightOn
(
lights
.
ToArray
<
Light
>());
LEDManager
.
GetLedModule
(
Config
.
LED_IP
).
OnlyLightOn
(
lights
.
ToArray
<
Light
>());
UpdateLastStatus
(
StoreStatus
.
InStoreEnd
);
UpdateLastStatus
(
StoreStatus
.
InStoreEnd
);
...
@@ -298,19 +299,20 @@ namespace OnlineStore.DeviceLibrary
...
@@ -298,19 +299,20 @@ namespace OnlineStore.DeviceLibrary
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_MiddleToP2
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_MiddleToP2
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
InStoreLog
(
" 旋转轴到P2点"
);
InStoreLog
(
" 旋转轴到P2点
["
+
MoveInfo
.
MoveParam
.
Position
.
MiddleAxis_P2
+
"]
"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
Position
.
MiddleAxis_P2
,
Config
.
MiddleAxis_P2_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
Position
.
MiddleAxis_P2
,
Config
.
MiddleAxis_P2_Speed
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_03_MiddleToP2
))
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_03_MiddleToP2
))
{
{
int
dmx
=
MoveInfo
.
MoveParam
.
Position
.
LedDmx
;
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_04_OpenDoor
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_04_OpenDoor
);
InStoreLog
(
" 打开升降门,打开库位灯绿色 ,更新状态为出仓完成 "
);
InStoreLog
(
" 打开升降门,打开库位灯
["
+
dmx
+
","
+
MoveInfo
.
MoveParam
.
Position
.
LedIndex
+
"]为
绿色 ,更新状态为出仓完成 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
DoorBean
.
StartOpen
(
MoveInfo
);
DoorBean
.
StartOpen
(
MoveInfo
);
List
<
Light
>
lights
=
new
List
<
Light
>();
List
<
Light
>
lights
=
new
List
<
Light
>();
foreach
(
int
index
in
MoveInfo
.
MoveParam
.
Position
.
GetLedList
())
foreach
(
int
index
in
MoveInfo
.
MoveParam
.
Position
.
GetLedList
())
{
{
lights
.
Add
(
Light
.
GreenLight
(
MoveInfo
.
MoveParam
.
Position
.
LedD
mx
,
index
));
lights
.
Add
(
Light
.
GreenLight
(
d
mx
,
index
));
}
}
LEDManager
.
GetLedModule
(
Config
.
LED_IP
).
OnlyLightOn
(
lights
.
ToArray
<
Light
>());
LEDManager
.
GetLedModule
(
Config
.
LED_IP
).
OnlyLightOn
(
lights
.
ToArray
<
Light
>());
UpdateLastStatus
(
StoreStatus
.
OutStoreBoxEnd
);
UpdateLastStatus
(
StoreStatus
.
OutStoreBoxEnd
);
...
...
source/VerticalStoreClinet/FrmStoreBox.cs
查看文件 @
e931b44
...
@@ -140,7 +140,7 @@ namespace OnlineStore.TinPasteStore
...
@@ -140,7 +140,7 @@ namespace OnlineStore.TinPasteStore
}
}
lblThisSta
.
Text
=
store
.
GetRunStr
()
+
" "
;
lblThisSta
.
Text
=
store
.
GetRunStr
()
+
" "
;
if
(
store
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
).
Equals
(
false
))
if
(
store
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
).
Equals
(
false
)
&&
(
store
.
MoveInfo
.
MoveParam
!=
null
)
)
{
{
lblThisSta
.
Text
+=
store
.
MoveInfo
.
MoveParam
.
ToStr
();
lblThisSta
.
Text
+=
store
.
MoveInfo
.
MoveParam
.
ToStr
();
}
}
...
@@ -218,10 +218,7 @@ namespace OnlineStore.TinPasteStore
...
@@ -218,10 +218,7 @@ namespace OnlineStore.TinPasteStore
lblWarnMsg
.
Text
=
""
;
lblWarnMsg
.
Text
=
""
;
btnStartAuTo
.
Text
=
"开始自动出入库"
;
btnStartAuTo
.
Text
=
"开始自动出入库"
;
}
}
}
}
private
void
FrmTest_FormClosing
(
object
sender
,
FormClosingEventArgs
e
)
private
void
FrmTest_FormClosing
(
object
sender
,
FormClosingEventArgs
e
)
{
{
if
(
e
.
CloseReason
==
CloseReason
.
UserClosing
)
//当用户点击窗体右上角X按钮或(Alt + F4)时 发生
if
(
e
.
CloseReason
==
CloseReason
.
UserClosing
)
//当用户点击窗体右上角X按钮或(Alt + F4)时 发生
...
@@ -238,7 +235,7 @@ namespace OnlineStore.TinPasteStore
...
@@ -238,7 +235,7 @@ namespace OnlineStore.TinPasteStore
VerticalPosition
p
=
CSVPositionReader
<
VerticalPosition
>.
GetPositon
(
PosID
);
VerticalPosition
p
=
CSVPositionReader
<
VerticalPosition
>.
GetPositon
(
PosID
);
if
(
p
!=
null
)
if
(
p
!=
null
)
{
{
p
.
LedIndex
=
txtLed
Index
.
Text
.
Trim
();
p
.
LedIndex
=
txtLed
s
.
Text
.
Trim
();
p
.
MiddleAxis_P2
=
FormUtil
.
GetIntValue
(
txtMP2
);
p
.
MiddleAxis_P2
=
FormUtil
.
GetIntValue
(
txtMP2
);
store
.
StartOutStore
(
new
InOutParam
(
MoveType
.
OutStore
,
PosID
,
p
));
store
.
StartOutStore
(
new
InOutParam
(
MoveType
.
OutStore
,
PosID
,
p
));
}
}
...
@@ -260,7 +257,7 @@ namespace OnlineStore.TinPasteStore
...
@@ -260,7 +257,7 @@ namespace OnlineStore.TinPasteStore
VerticalPosition
p
=
CSVPositionReader
<
VerticalPosition
>.
GetPositon
(
PosID
);
VerticalPosition
p
=
CSVPositionReader
<
VerticalPosition
>.
GetPositon
(
PosID
);
if
(
p
!=
null
)
if
(
p
!=
null
)
{
{
p
.
LedIndex
=
txtLed
Index
.
Text
.
Trim
();
p
.
LedIndex
=
txtLed
s
.
Text
.
Trim
();
p
.
MiddleAxis_P2
=
FormUtil
.
GetIntValue
(
txtMP2
);
p
.
MiddleAxis_P2
=
FormUtil
.
GetIntValue
(
txtMP2
);
store
.
StartInStore
(
new
InOutParam
(
MoveType
.
OutStore
,
PosID
,
p
));
store
.
StartInStore
(
new
InOutParam
(
MoveType
.
OutStore
,
PosID
,
p
));
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论