Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
1069_MIMO_PlUS
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4eaa20d8
由
LN
编写于
2024-06-13 15:03:05 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
新增:氛围灯,红外传感器,压力传感器。
1 个父辈
599eba92
隐藏空白字符变更
内嵌
并排
正在显示
23 个修改的文件
包含
1608 行增加
和
32 行删除
.gitignore
Common/Setting_Init.cs
Common/StringList.cs
DeviceLibrary/DeviceLibrary.csproj
DeviceLibrary/DeviceLibrary/AxisBean.cs
DeviceLibrary/DeviceLibrary/dauxiKS107/DauxiKS107Controller.cs
DeviceLibrary/DeviceLibrary/flyelectronicControl/Flyelectronic_485_RGB_Controller.cs
DeviceLibrary/DeviceLibrary/weightSensor/OKLE_WeightSensor.cs
DeviceLibrary/theMachine/BoxTransport.cs
DeviceLibrary/theMachine/MainMachine _LedRGBProcess.cs
DeviceLibrary/theMachine/MainMachine.cs
DeviceLibrary/theMachine/MainMachine_Store.cs
DeviceLibrary/theMachine/MoveStep.cs
DeviceLibrary/theMachine/RobotManage.cs
TheMachine/AxisControl.Designer.cs
TheMachine/AxisControl.cs
TheMachine/AxisControl.resx
TheMachine/TheMachine.csproj
TheMachine/ledColor/green.txt
TheMachine/ledColor/yellow.txt
TheMachine/resources/en-US.lngres
TheMachine/resources/ja-JP.lngres
TheMachine/resources/zh-CN.lngres
.gitignore
查看文件 @
4eaa20d
...
...
@@ -360,4 +360,5 @@ MigrationBackup/
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
\ No newline at end of file
FodyWeavers.xsd
/doc
Common/Setting_Init.cs
查看文件 @
4eaa20d
...
...
@@ -225,6 +225,23 @@ namespace OnlineStore.Common
public
static
MyConfig
<
int
>
UploadVideo_ImgHeight
=
1080
;
[
MyConfigComment
(
"监控上传功能_图像质量"
)]
public
static
MyConfig
<
int
>
UploadVideo_ImgQuality
=
100
;
[
MyConfigComment
(
"LED氛围灯_端口号"
)]
public
static
MyConfig
<
string
>
Device_LedLight_PortName
=
""
;
[
MyConfigComment
(
"红外传感器_端口号"
)]
public
static
MyConfig
<
string
>
Device_DauxiKS107_PortName
=
""
;
[
MyConfigComment
(
"红外传感器_基准值"
)]
public
static
MyConfig
<
int
>
Device_DauxiKS107_BaseValue
=
1000
;
[
MyConfigComment
(
"红外传感器_最大误差值"
)]
public
static
MyConfig
<
int
>
Device_DauxiKS107_ErrorValue
=
10000
;
[
MyConfigComment
(
"重力传感器_端口号"
)]
public
static
MyConfig
<
string
>
Device_WeightSensor_PortName
=
""
;
[
MyConfigComment
(
"重力传感器_上限值"
)]
public
static
MyConfig
<
int
>
Device_WeightSensor_MaxValue
=
10000
;
}
public
enum
InOut_Roller_Mode
{
...
...
Common/StringList.cs
查看文件 @
4eaa20d
...
...
@@ -52,6 +52,7 @@ namespace OnlineStore.Common
out_store_wait_string_ready
,
in_store_detect_material
,
wait_reel_transfer
,
sensor_alarm
,
reset_press
,
reset_press_with_sudden
,
runbtn_press
,
...
...
@@ -144,5 +145,6 @@ namespace OnlineStore.Common
temp
,
outstore_abnormal_reel
,
bacth_no_fix
,
comInitError
,
}
}
DeviceLibrary/DeviceLibrary.csproj
查看文件 @
4eaa20d
...
...
@@ -78,6 +78,8 @@
<Compile Include="DeviceLibrary\Camera.cs" />
<Compile Include="DeviceLibrary\CameraTest.cs" />
<Compile Include="DeviceLibrary\CylinderManger.cs" />
<Compile Include="DeviceLibrary\dauxiKS107\DauxiKS107Controller.cs" />
<Compile Include="DeviceLibrary\flyelectronicControl\Flyelectronic_485_RGB_Controller.cs" />
<Compile Include="DeviceLibrary\IOMonitor.cs" />
<Compile Include="DeviceLibrary\IPCamera.cs" />
<Compile Include="DeviceLibrary\I_SafetyDevice.cs" />
...
...
@@ -89,11 +91,13 @@
<Compile Include="DeviceLibrary\AxisBean.cs" />
<Compile Include="DeviceLibrary\ServerCommunication_AgvProcess.cs" />
<Compile Include="DeviceLibrary\VisionHelper.cs" />
<Compile Include="DeviceLibrary\weightSensor\OKLE_WeightSensor.cs" />
<Compile Include="TestRoi.cs" />
<Compile Include="theMachine\BoxTransport.cs" />
<Compile Include="theMachine\Common.cs" />
<Compile Include="theMachine\JobList.cs" />
<Compile Include="theMachine\LabelParam.cs" />
<Compile Include="theMachine\MainMachine _LedRGBProcess.cs" />
<Compile Include="theMachine\MainMachine_AGV.cs" />
<Compile Include="theMachine\MainMachine_ServerControl.cs" />
<Compile Include="theMachine\MainMachine _BtnProcess.cs" />
...
...
@@ -172,5 +176,6 @@
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
DeviceLibrary/DeviceLibrary/AxisBean.cs
查看文件 @
4eaa20d
...
...
@@ -27,11 +27,13 @@ namespace DeviceLibrary
public
event
Func
<
int
,
int
,
(
bool
,
string
)>
interference
;
public
string
AxisName
;
public
bool
ForceSafeCheck
=
false
;
public
AxisBean
(
ConfigMoveAxis
axisConfig
,
string
deviceName
)
public
int
maxSensorValue
=
0
;
public
AxisBean
(
ConfigMoveAxis
axisConfig
,
string
deviceName
,
int
maxSensorValue
=
0
)
{
this
.
Config
=
axisConfig
;
AxisName
=
deviceName
+
" "
+
Config
.
Explain
+
"["
+
Config
.
DeviceName
+
"-"
+
Config
.
GetAxisValue
()
+
"]"
;
List
.
Add
(
this
);
this
.
maxSensorValue
=
maxSensorValue
;
}
public
bool
Open
(
bool
isCheck
,
out
string
Msg
)
...
...
@@ -203,7 +205,7 @@ namespace DeviceLibrary
return
true
;
}
//判断是否需要重新运动
if
(
MoveInfo
.
CanWhileCount
>
0
)
if
(
MoveInfo
.
CanWhileCount
>
0
&&
CanRMove
(
axis
)
)
{
string
clearMsg
=
""
;
//判断轴是否报警
...
...
@@ -256,7 +258,7 @@ namespace DeviceLibrary
return
true
;
}
//判断是否需要重新运动
if
(
MoveInfo
.
CanWhileCount
>
0
)
if
(
MoveInfo
.
CanWhileCount
>
0
&&
CanRMove
(
axis
)
)
{
LogUtil
.
error
(
MoveInfo
.
Name
+
axis
.
DisplayStr
+
"收到原点完成信号,当前位置["
+
outCount
+
"],重新回原点,剩余["
+
MoveInfo
.
CanWhileCount
+
"]次"
);
//LogUtil.error( StoreName + moveAxis.DisplayStr + "重新回原点");
...
...
@@ -371,33 +373,91 @@ namespace DeviceLibrary
}
public
void
MonitorAxisLoadRate
(
float
maxloadrate
)
{
//Task.Run(() =>
//{
// Task.Delay(200).Wait();
// LogUtil.info($"{AxisName}-开始负载监控,最大负载阈值:{maxloadrate}");
// List<float> loadrate = new List<float>();
// while (IsBusy)
// {
// var loadval = ((HCAxisManager)AxisManager.instance).GetAxisLoadRate(Config.DeviceName, Config.GetAxisValue());
// loadrate.Add(loadval);
// if (loadval > maxloadrate)
// {
// LogUtil.info($"{AxisName}-{loadval}>{maxloadrate}超过负载,系统急停");
// SuddenStop();
// Msg.add(AxisName + "-超过负载,系统急停", MsgLevel.alarm, ErrInfo.SuddenStop);
// break;
// }
// Task.Delay(50).Wait();
// }
// if (loadrate.Count > 5)
// {
// loadrate.Sort();
// int middleIndex = loadrate.Count / 2;
// LogUtil.info($"{AxisName}-本次负载监控:最小值:{loadrate.Min()}, 平均值:{loadrate.Average()}, 最大值{loadrate.Max()},中位数:{loadrate[middleIndex]}, 最大阈值:{maxloadrate}");
// }
//});
}
private
static
bool
CanRMove
(
ConfigMoveAxis
axis
)
{
string
AxisName
=
axis
.
GetNameStr
();
try
{
//判断是否进出轴
if
(
RobotManage
.
mainMachine
.
InOut_Axis
.
Config
.
IsSameAxis
(
axis
.
DeviceName
,
axis
.
GetAxisValue
()))
{
int
maxSensorValue
=
Setting_Init
.
Device_WeightSensor_MaxValue
;
if
(
Setting_Init
.
Device_WeightSensor_PortName
==
""
||
RobotManage
.
oKLE_WeightSensor
==
null
||
(!
RobotManage
.
oKLE_WeightSensor
.
IsPortOpen
))
{
return
true
;
}
double
value
=
RobotManage
.
oKLE_WeightSensor
.
GetWeight
();
double
maxV
=
RobotManage
.
oKLE_WeightSensor
.
PeakWeight
();
bool
canRM
=
true
;
if
(
value
>=
maxSensorValue
||
maxV
>=
maxSensorValue
)
{
canRM
=
false
;
}
LogUtil
.
info
(
$
"{AxisName}-压力传感器当前值:{value} ,峰值:{maxV},上限值:{maxSensorValue}, 是否能重复运动:{canRM}"
);
return
canRM
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
$
"{AxisName}CanRMove 出错:"
+
ex
.
ToString
());
return
false
;
}
return
true
;
}
public
void
SensorDetection
(
float
maxValue
)
{
if
(
Setting_Init
.
Device_WeightSensor_PortName
==
""
||
RobotManage
.
oKLE_WeightSensor
==
null
||
(!
RobotManage
.
oKLE_WeightSensor
.
IsPortOpen
))
{
return
;
}
Task
.
Run
(()
=>
{
Task
.
Delay
(
200
).
Wait
();
LogUtil
.
info
(
$
"{AxisName}-
开始负载监控,最大负载阈值:{maxloadrat
e}"
);
List
<
float
>
loadrate
=
new
List
<
float
>();
LogUtil
.
info
(
$
"{AxisName}-
压力传感器开始检测,配置最大值:{maxValu
e}"
);
List
<
double
>
loadrate
=
new
List
<
double
>();
while
(
IsBusy
)
{
var
loadval
=
((
HCAxisManager
)
AxisManager
.
instance
).
GetAxisLoadRate
(
Config
.
DeviceName
,
Config
.
GetAxisValue
());
loadrate
.
Add
(
loadval
);
if
(
loadval
>
maxloadrate
)
{
LogUtil
.
info
(
$
"{AxisName}-{loadval}>{maxloadrate}超过负载,系统急停"
);
SuddenStop
();
Msg
.
add
(
AxisName
+
"-超过负载,系统急停"
,
MsgLevel
.
alarm
,
ErrInfo
.
SuddenStop
);
break
;
}
double
value
=
RobotManage
.
oKLE_WeightSensor
.
GetWeight
();
double
maxV
=
RobotManage
.
oKLE_WeightSensor
.
PeakWeight
();
loadrate
.
Add
(
value
);
LogUtil
.
info
(
$
"{AxisName}-压力传感器当前值:{value},上限值:{maxValue}"
);
Task
.
Delay
(
50
).
Wait
();
}
if
(
loadrate
.
Count
>
5
)
{
loadrate
.
Sort
();
int
middleIndex
=
loadrate
.
Count
/
2
;
LogUtil
.
info
(
$
"{AxisName}-本次
负载监控:最小值:{loadrate.Min()}, 平均值:{loadrate.Average()}, 最大值{loadrate.Max()},中位数:{loadrate[middleIndex]}, 最大阈值:{maxloadrat
e}"
);
LogUtil
.
info
(
$
"{AxisName}-本次
压力传感器监控:最小值:{loadrate.Min()}, 平均值:{loadrate.Average()}, 最大值{loadrate.Max()},中位数:{loadrate[middleIndex]}, 最大阈值:{maxValu
e}"
);
}
});
}
#
region
匀速上升处理
private
System
.
Timers
.
Timer
axisCheckTimer
=
null
;
internal
string
TargetIoType
=
""
;
...
...
DeviceLibrary/DeviceLibrary/dauxiKS107/DauxiKS107Controller.cs
0 → 100644
查看文件 @
4eaa20d
using
OnlineStore.Common
;
using
OnlineStore
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.IO.Ports
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
namespace
DeviceLibrary
{
public
class
DauxiKS107Controller
{
private
static
int
baudRate
=
9600
;
//波特率
private
static
Parity
parity
=
Parity
.
None
;
//校验位
private
static
int
dataBits
=
8
;
//数据位
private
static
StopBits
stopBits
=
StopBits
.
One
;
//停止位
private
SerialPort
_serialPort
=
null
;
string
comPortName
;
System
.
Timers
.
Timer
timer
;
public
volatile
int
Distance
;
public
bool
IsRunning
{
get
=>
timer
.
Enabled
;
}
public
DauxiKS107Controller
(
int
Elapsms
=
5000
)
{
timer
=
new
System
.
Timers
.
Timer
(
Elapsms
);
timer
.
Elapsed
+=
Timer_Elapsed
;
timer
.
AutoReset
=
true
;
timer
.
Enabled
=
false
;
}
~
DauxiKS107Controller
()
{
LogUtil
.
info
(
$
"{comPortName}声波传感器退出"
);
timer
.
Enabled
=
false
;
_serialPort
?.
Close
();
}
List
<
int
>
distantlist
=
new
List
<
int
>()
{
1000
,
100
,
100
,
100
,
10
};
private
void
Timer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
bool
readok
=
true
;
for
(
int
i
=
0
;
i
<
5
;
i
++)
{
if
(
Quary
(
out
int
value
,
out
string
errmsg
))
{
LogUtil
.
info
(
$
"{comPortName}读取到声波距离:{value}mm,err:{errmsg}"
);
readok
=
true
;
if
(
value
>
0
&&
value
<
1000
)
{
//Distance = value;
lock
(
distantlist
)
{
distantlist
.
Add
(
value
);
if
(
distantlist
.
Count
>
8
)
{
distantlist
.
RemoveAt
(
0
);
}
Distance
=
TrimMean
(
distantlist
,
0.8
);
}
return
;
}
else
readok
=
false
;
}
else
{
readok
=
false
;
}
}
if
(!
readok
)
{
LogUtil
.
info
(
$
"{comPortName}声波传感器读取失败,重新打开"
);
if
(!
OpenPort
(
comPortName
,
out
string
errmsg
))
{
LogUtil
.
info
(
$
"{comPortName}声波传感器打开失败:"
+
errmsg
);
}
}
}
/// <summary>
/// 打开串口资源
/// <returns>返回bool类型</returns>
/// </summary>
public
bool
OpenPort
(
string
_comport
,
out
string
errmsg
)
{
comPortName
=
_comport
;
//如果串口是打开的,先关闭
errmsg
=
""
;
if
(
_serialPort
==
null
)
{
try
{
_serialPort
=
new
SerialPort
(
comPortName
,
baudRate
,
parity
,
dataBits
,
stopBits
);
_serialPort
.
RtsEnable
=
true
;
//自动请求
_serialPort
.
ReadTimeout
=
100
;
//超时
LogUtil
.
info
(
"声波传感器"
+
comPortName
+
"打开成功"
);
}
catch
(
Exception
e
)
{
errmsg
+=
crc
.
GetString
(
"comOpenFail"
,
"串口{0}打开失败"
,
_comport
);
LogUtil
.
info
(
"串口"
+
_comport
+
"打开失败:"
+
e
.
ToString
());
return
false
;
}
}
//errmsg += crc.GetString("Res0095.e19bb66e", "初始化.");
if
(
_serialPort
.
IsOpen
)
_serialPort
.
Close
();
bool
ok
=
false
;
try
{
//打开串口
//errmsg += $"打开串口:{comPortName}.";
_serialPort
.
Open
();
LogUtil
.
info
(
_comport
+
"声波传感器端口打开成功"
);
Thread
.
Sleep
(
200
);
for
(
int
i
=
1
;
i
<
10
;
i
++)
{
Thread
.
Sleep
(
100
);
//errmsg += crc.GetString("Res0096.184519ba", "检测数据.");
Quary
(
out
int
value
,
out
string
err
);
//errmsg += err;
LogUtil
.
info
(
_comport
+
"声波传感器检测数据结果:"
+
value
+
"/"
+
err
);
if
(
value
>
0
)
{
timer
.
Enabled
=
true
;
ok
=
true
;
break
;
}
}
}
catch
(
Exception
Ex
)
{
errmsg
+=
Ex
.
ToString
();
//throw Ex;
}
return
ok
;
}
public
bool
PortIsOpen
()
{
return
(
_serialPort
!=
null
)
&&
(
_serialPort
.
IsOpen
);
}
public
bool
ClosePort
()
{
if
(
_serialPort
!=
null
&&
_serialPort
.
IsOpen
)
{
_serialPort
.
Close
();
}
return
true
;
}
static
byte
[]
quarycommand
=
new
byte
[]
{
0xe8
,
0x02
,
0xb0
};
public
bool
Quary
(
out
int
value
,
out
string
errmsg
)
{
errmsg
=
""
;
byte
[]
buf
=
new
byte
[
8
];
value
=
0
;
try
{
_serialPort
.
Write
(
quarycommand
,
0
,
quarycommand
.
Length
);
Thread
.
Sleep
(
80
);
var
readlen
=
_serialPort
.
Read
(
buf
,
0
,
buf
.
Length
);
if
(
readlen
==
2
)
{
var
c
=
new
byte
[]
{
buf
[
1
],
buf
[
0
]
};
value
=
(
int
)
BitConverter
.
ToUInt16
(
c
,
0
);
}
else
{
errmsg
+=
crc
.
GetString
(
"comDataError"
,
"串口{0}数据错误{1}"
,
_serialPort
.
PortName
,
BitConverter
.
ToString
(
buf
));
LogUtil
.
error
(
$
"{comPortName}返回数据不正确:"
+
BitConverter
.
ToString
(
buf
));
return
false
;
}
}
catch
(
Exception
ex
)
{
errmsg
=
ex
.
ToString
();
return
false
;
}
return
true
;
}
public
static
int
TrimMean
(
List
<
int
>
array
,
double
percent
)
{
try
{
if
(
array
.
Count
<
4
)
{
return
array
[
0
];
}
List
<
int
>
templist
=
new
List
<
int
>(
array
);
templist
.
Sort
();
templist
.
RemoveAt
(
0
);
templist
.
RemoveAt
(
0
);
templist
.
RemoveAt
(
templist
.
Count
-
1
);
templist
.
RemoveAt
(
templist
.
Count
-
1
);
return
(
int
)
templist
.
Average
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
ex
.
ToString
());
return
0
;
}
}
}
}
DeviceLibrary/DeviceLibrary/flyelectronicControl/Flyelectronic_485_RGB_Controller.cs
0 → 100644
查看文件 @
4eaa20d
using
log4net
;
using
OnlineStore.Common
;
using
OnlineStore
;
using
System
;
using
System.Collections.Generic
;
using
System.Drawing
;
using
System.IO
;
using
System.IO.Ports
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
DeviceLibrary
{
public
class
Flyelectronic_485_RGB_Controller
:
IDisposable
{
ILog
loge
;
int
baudRate
=
115200
;
//波特率
Parity
parity
=
Parity
.
None
;
//校验位
int
dataBits
=
8
;
//数据位
StopBits
stopBits
=
StopBits
.
One
;
//停止位
SerialPort
_serialPort
=
null
;
string
comPortName
;
string
Name
;
public
Flyelectronic_485_RGB_Controller
(
string
name
,
string
logname
=
"RollingLogFileAppender"
)
{
Name
=
name
;
loge
=
LogManager
.
GetLogger
(
logname
);
}
/// <summary>
/// 打开串口资源
/// <returns>返回bool类型</returns>
/// </summary>
public
bool
OpenPort
(
string
_comport
,
out
string
errmsg
)
{
comPortName
=
_comport
;
//如果串口是打开的,先关闭
errmsg
=
""
;
if
(
_serialPort
==
null
)
{
_serialPort
=
new
SerialPort
(
comPortName
,
baudRate
,
parity
,
dataBits
,
stopBits
);
//_serialPort.RtsEnable = true; //自动请求
_serialPort
.
ReadTimeout
=
100
;
//超时
}
errmsg
+=
crc
.
GetString
(
"comInitError"
,
"{0}初始化失败"
,
_comport
)
;
if
(
_serialPort
.
IsOpen
)
{
_serialPort
.
Close
();
_serialPort
=
null
;
OpenPort
(
comPortName
,
out
errmsg
);
}
bool
ok
=
false
;
try
{
//打开串口
errmsg
+=
crc
.
GetString
(
"comOpenFail"
,
"串口{0}打开失败"
,
_comport
);
_serialPort
.
Open
();
LogUtil
.
info
(
"氛围灯"
+
comPortName
+
"打开成功"
);
for
(
int
i
=
1
;
i
<
10
;
i
++)
{
Thread
.
Sleep
(
100
);
//errmsg += "检测数据.";
var
rev
=
SendAndReceive
(
CommandByte
.
GetDeviceID
);
errmsg
+=
Encoding
.
ASCII
.
GetString
(
rev
);
if
(
rev
.
Count
()
>
0
)
{
ok
=
true
;
break
;
}
}
}
catch
(
Exception
Ex
)
{
errmsg
+=
Ex
.
ToString
();
//throw Ex;
}
return
ok
;
}
public
bool
ShowColor
(
Color
color
,
ColorFormat
colorFormat
=
ColorFormat
.
GRB
)
{
var
newbyte
=
CommandByte
.
SetOneColor
;
var
colorbyte
=
ConvertColorToByteArray
(
color
,
colorFormat
);
newbyte
[
16
]
=
colorbyte
[
0
];
newbyte
[
17
]
=
colorbyte
[
1
];
newbyte
[
18
]
=
colorbyte
[
2
];
var
rev
=
SendAndReceive
(
newbyte
);
if
(
rev
.
Length
>
0
)
{
var
txt
=
Encoding
.
ASCII
.
GetString
(
rev
);
if
(
txt
.
IndexOf
(
"RecvEnd"
)
>=
0
)
{
return
true
;
}
}
return
false
;
}
public
bool
ShowEffact
(
string
fileName
)
{
if
(
fileName
!=
""
&&
File
.
Exists
(
fileName
))
{
string
Text
=
File
.
ReadAllText
(
fileName
);
var
newbyte
=
CommandByte
.
GetEffBytes
(
Text
);
foreach
(
var
b
in
newbyte
)
{
var
rev
=
SendAndReceive
(
b
);
}
return
true
;
}
else
{
var
newbyte
=
CommandByte
.
GetEffBytes
(
CommandByte
.
eff1
);
foreach
(
var
b
in
newbyte
)
{
var
rev
=
SendAndReceive
(
b
);
}
return
true
;
}
}
public
bool
ShowYellowLight
()
{
string
fileName
=
Application
.
StartupPath
+
"/ledColor/green.txt"
;
return
ShowEffact
(
fileName
);
}
public
bool
ShowGreenLight
()
{
string
fileName
=
Application
.
StartupPath
+
"/ledColor/yellow.txt"
;
return
ShowEffact
(
fileName
);
}
public
bool
CloseLed
()
{
return
ShowColor
(
Color
.
Black
);
}
byte
[]
SendAndReceive
(
byte
[]
buff
)
{
byte
[]
restr
=
new
byte
[
0
];
if
(
_serialPort
==
null
||
!
_serialPort
.
IsOpen
)
{
if
(!
OpenPort
(
comPortName
,
out
string
errmsg
))
{
log
(
"未初始化,或已断开连接:"
+
errmsg
);
return
restr
;
}
}
var
t
=
Task
.
Run
(
delegate
{
byte
[]
recv
=
new
byte
[
512
];
try
{
_serialPort
.
Write
(
buff
,
0
,
buff
.
Length
);
Thread
.
Sleep
(
20
);
int
r
=
_serialPort
.
Read
(
recv
,
0
,
recv
.
Length
);
if
(
r
>
0
)
{
var
recvdata
=
Encoding
.
ASCII
.
GetString
(
recv
,
0
,
r
);
log
(
"recvdata: "
+
recvdata
);
return
recv
.
Take
(
r
).
ToArray
();
//.Split(',');
}
}
catch
(
Exception
e
)
{
log
(
string
.
Format
(
"{0}"
,
e
));
}
return
restr
;
});
try
{
t
.
Wait
(
500
);
if
(
t
.
IsCompleted
)
return
t
.
Result
;
else
return
new
byte
[
0
];
}
catch
{
return
new
byte
[
0
];
}
}
void
log
(
string
msg
)
{
loge
.
Info
(
Name
+
$
"[{comPortName}]"
+
":"
+
msg
);
Console
.
WriteLine
(
msg
);
}
static
class
CommandByte
{
public
static
byte
[]
GetDeviceID
=
ConvertStringToByteArray
(
"DD 55 EE 00 00 00 00 00 8F 01 00 00 00 03 00 01 00 00 00 AA BB"
);
public
static
byte
[]
SetOneColor
=
ConvertStringToByteArray
(
"DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 04 00 FF 00 00 AA BB"
);
public
static
string
eff1
=
@
"
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
6D
67
44
4D
43
53
2
C
1D
63
1D
0
B
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
C4
CC
18
9
A
9
C
2D
5
A
51
4D
2
B
1
C
64
1
C
0
A
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
E6
F4
07
D5
E0
10
A0
A2
2
A
55
4D
4F
29
19
65
1D
0
B
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
E7
F5
07
E7
F5
07
D5
E0
10
9
B
9
E
2
C
52
49
51
29
19
65
1
C
0
A
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
D6
E1
0F
E8
F6
06
E9
F7
06
D5
E0
10
9
A
9
C
2D
50
46
52
26
15
67
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
A3
A6
29
D8
E3
0F
E8
F6
06
EA
F8
06
D1
DC
12
90
90
32
48
3D
56
25
14
67
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
5D
55
4
B
A5
A9
27
D8
E4
0
E
EA
F8
06
E6
F3
08
CA
D4
15
8
B
8
B
35
49
3
E
55
27
16
66
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
2F
20
62
61
5
A
49
AA
AF
25
DD
EA
0
C
EB
F9
05
E6
F3
08
CD
D7
14
91
91
32
4
E
44
53
28
18
65
1
C
0
A
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1D
0
C
6
B
32
24
61
68
63
46
B2
B7
21
DF
EC
0
B
EB
FA
05
E8
F6
06
D1
DC
12
99
9
B
2
E
54
4
B
50
29
19
65
1D
0
B
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
E
0D
6
A
34
26
60
6
A
64
45
B3
B9
21
DE
EB
0
B
EA
F8
06
E8
F6
06
D5
E0
10
9
C
9F
2
C
55
4
C
4F
2
A
1
A
65
1
C
0
A
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1F
0
E
6
A
34
26
60
65
5F
47
A9
AD
26
D9
E5
0
E
E9
F7
06
E8
F6
06
D6
E1
0F
9D
A0
2
C
54
4
B
50
28
18
65
1
C
0
A
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1D
0
B
6
B
30
21
62
5
C
54
4
C
A4
A7
28
D8
E3
0F
E7
F5
07
EA
F8
06
D3
DE
11
9
B
9
E
2
C
54
4
B
50
29
19
65
1
C
0
A
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1D
0
B
6
B
2D
1
E
63
5
B
53
4
C
A2
A5
29
D5
E0
10
E7
F5
07
E7
F5
07
D3
DE
11
9
A
9
C
2D
51
47
51
27
17
66
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1D
0
B
6
B
2
E
1F
63
5
A
52
4D
A2
A5
29
D8
E3
0F
E9
F7
06
E8
F6
06
D3
DE
11
93
94
30
4
A
3F
55
25
14
67
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1D
0
C
6
B
2D
1
E
63
5
C
54
4
C
A5
A8
28
D8
E4
0
E
E9
F7
06
E7
F5
07
CC
D6
14
88
87
36
42
36
59
22
11
69
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
2D
1
E
63
5D
55
4
B
A8
AC
26
DD
EA
0
C
EB
FA
05
E5
F2
08
C4
CC
18
7
E
7
B
3
B
41
35
59
22
11
69
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
2F
20
62
63
5
C
49
B2
B7
21
E1
EE
0
A
EA
F8
06
E3
F1
09
C0
C8
1
A
7
C
79
3
C
3F
33
5
A
22
12
68
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1D
0
C
6
B
34
26
60
6
E
69
43
BC
C4
1
C
E1
EF
0
A
E9
F7
06
E1
EF
0
A
C1
C9
1
A
7F
7
C
3
B
40
34
5
A
22
12
68
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
20
0F
6
A
3D
30
5
B
7
B
78
3D
C0
C8
1
A
E2
F0
09
E8
F6
06
E2
F0
09
C3
CB
19
7D
7
A
3
B
3
A
2D
5D
1
E
0D
6
A
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
22
11
69
3F
33
5
A
7
B
78
3D
BD
C5
1
C
E0
ED
0
B
EA
F8
06
E5
F2
08
BD
C5
1
C
6
B
65
44
31
23
61
1
C
0
A
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
22
12
68
3
E
31
5
B
78
75
3
E
BC
C4
1
C
E2
F0
09
EB
FA
05
E0
ED
0
B
AD
B2
24
5
E
56
4
B
2
C
1D
63
1D
0
B
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
21
10
69
3D
30
5
B
7
C
79
3
C
C6
CF
17
E6
F4
07
EA
F8
06
D9
E5
0
E
A4
A7
28
5
A
52
4D
2D
1
E
63
1D
0
C
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
21
10
69
43
37
58
8D
8D
34
D0
DB
12
E8
F6
06
E9
F7
06
D8
E3
0F
A1
A4
2
A
5
B
53
4
C
2
B
1
B
64
1D
0
B
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
27
17
66
50
46
52
98
9
A
2
E
D6
E1
0F
E9
F7
06
E8
F6
06
D6
E1
0F
A1
A4
2
A
5
A
52
4D
2
B
1
C
64
1D
0
B
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
29
19
65
55
4D
4F
9D
A0
2
C
D6
E1
0F
E9
F7
06
E8
F6
06
D7
E2
0F
A1
A4
2
A
5
A
52
4D
2
B
1
C
64
1D
0
B
6
B
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
2
A
1
A
65
55
4
C
4F
9D
A0
2
C
D7
E2
0F
E9
F7
06
E8
F6
06
D8
E4
0
E
A8
AC
26
61
5
A
49
31
23
61
1
E
0D
6
A
1
B
09
6
C
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
2
C
1D
63
56
4
E
4F
9
E
A1
2
B
D5
E0
10
E7
F5
07
EA
F8
06
DD
E9
0
C
AD
B2
24
66
60
47
34
26
60
20
0F
6
A
1
B
09
6
C
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1D
0
B
6
B
2
B
1
B
64
54
4
B
50
9
B
9D
2D
D3
DE
11
E7
F5
07
EB
FA
05
DE
EB
0
B
B1
B6
22
6
C
66
44
39
2
B
5D
1F
0
E
6
A
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1D
0
B
6
B
2
A
1
A
65
53
4
A
50
94
95
30
CF
DA
13
E6
F4
07
E9
F7
06
DD
EA
0
C
B4
BA
20
6F
6
A
42
38
2
A
5
E
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
28
18
65
4D
43
53
8
E
8
E
33
CB
D5
15
E5
F2
08
E7
F5
07
DE
EB
0
B
B4
BA
20
71
6D
41
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
27
17
66
49
3
E
55
88
87
36
C9
D2
16
E4
F2
08
E7
F5
07
DD
EA
0
C
B7
BD
1F
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
24
13
68
47
3
C
56
88
87
36
C5
CE
18
E3
F1
09
E8
F6
06
E0
ED
0
B
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
25
14
67
45
3
A
57
87
86
37
C5
CD
18
E4
F2
08
EB
F9
05
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
25
14
67
43
38
58
82
80
39
C2
CA
19
E4
F2
08
AA
BB
DD
55
EE
00
00
00
01
00
99
01
00
00
00
5
A
00
01
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
B
09
6
C
1
C
0
A
6
C
23
13
68
41
35
59
77
74
3
E
BA
C1
1D
AA
BB
";
public
static
byte
[][]
GetEffBytes
(
string
eff
)
{
List
<
byte
[
]>
bytes
=
new
List
<
byte
[
]>
();
var
effs
=
eff
.
Split
(
new
char
[]
{
'\r'
,
'\n'
},
StringSplitOptions
.
RemoveEmptyEntries
);
foreach
(
var
ef
in
effs
)
{
bytes
.
Add
(
ConvertStringToByteArray
(
ef
));
}
return
bytes
.
ToArray
();
}
}
static
byte
[]
ConvertStringToByteArray
(
string
input
)
{
// 去除字符串中的空格
string
[]
hexValues
=
input
.
Trim
().
Split
(
' '
);
// 创建一个与字符串长度相等的byte[]数组
byte
[]
byteArray
=
new
byte
[
hexValues
.
Length
];
// 将每个字符串转换为对应的byte值
for
(
int
i
=
0
;
i
<
hexValues
.
Length
;
i
++)
{
byteArray
[
i
]
=
Convert
.
ToByte
(
hexValues
[
i
],
16
);
}
return
byteArray
;
}
public
enum
ColorFormat
{
RGB
,
BGR
,
BRG
,
GRB
,
GBR
,
RBG
}
public
static
byte
[]
ConvertColorToByteArray
(
Color
color
,
ColorFormat
format
)
{
byte
[]
result
=
new
byte
[
3
];
switch
(
format
)
{
case
ColorFormat
.
RGB
:
result
[
0
]
=
color
.
R
;
result
[
1
]
=
color
.
G
;
result
[
2
]
=
color
.
B
;
break
;
case
ColorFormat
.
BGR
:
result
[
0
]
=
color
.
B
;
result
[
1
]
=
color
.
G
;
result
[
2
]
=
color
.
R
;
break
;
case
ColorFormat
.
BRG
:
result
[
0
]
=
color
.
B
;
result
[
1
]
=
color
.
R
;
result
[
2
]
=
color
.
G
;
break
;
case
ColorFormat
.
GRB
:
result
[
0
]
=
color
.
G
;
result
[
1
]
=
color
.
R
;
result
[
2
]
=
color
.
B
;
break
;
case
ColorFormat
.
GBR
:
result
[
0
]
=
color
.
G
;
result
[
1
]
=
color
.
B
;
result
[
2
]
=
color
.
R
;
break
;
case
ColorFormat
.
RBG
:
result
[
0
]
=
color
.
R
;
result
[
1
]
=
color
.
B
;
result
[
2
]
=
color
.
G
;
break
;
default
:
throw
new
ArgumentException
(
"Invalid format specified."
);
}
return
result
;
}
public
void
Dispose
()
{
_serialPort
?.
Close
();
}
}
}
DeviceLibrary/DeviceLibrary/weightSensor/OKLE_WeightSensor.cs
0 → 100644
查看文件 @
4eaa20d
using
log4net
;
using
OnlineStore
;
using
OnlineStore.Common
;
using
System
;
using
System.Collections.Generic
;
using
System.IO.Ports
;
using
System.Linq
;
using
System.Net.Sockets
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
namespace
DeviceLibrary
{
public
class
OKLE_WeightSensor
{
SerialPort
port
;
Thread
thread
;
ILog
loge
;
ushort
seq
=
0
;
public
byte
station
=
1
;
public
OKLE_WeightSensor
(
string
logName
=
"RollingLogFileAppender"
)
{
this
.
loge
=
LogManager
.
GetLogger
(
logName
);
port
=
new
SerialPort
();
port
.
BaudRate
=
9600
;
port
.
Parity
=
Parity
.
None
;
port
.
DataBits
=
8
;
port
.
StopBits
=
StopBits
.
One
;
port
.
ReadTimeout
=
1000
;
port
.
WriteTimeout
=
1000
;
thread
=
new
Thread
(
new
ThreadStart
(
Monitor
));
thread
.
Start
();
}
void
Monitor
()
{
}
public
bool
IsPortOpen
{
get
=>
port
==
null
?
false
:
port
.
IsOpen
;
}
public
void
Close
()
{
port
.
Close
();
}
string
PortName
=
""
;
#
region
地址对应
enum
Addr
{
传感器灵敏度
=
46
,
//uint32 传感器灵敏度大小,免砝码标定用。范围:0.1mv/V~7.8mv/V,设置时无需输入小数点,比如灵敏度为2.0000mv/V,则写入20000(小数点后保留4位)
传感器量程
=
48
,
//uint32 传感器量程大小,免砝码标定用。如传感器量程为100kg,要精确到1g,则输入100000;(V1.1版固件以上支持)
毛重
=
80
,
//int32 实际毛重,负数采用标准补码方式
最大称量
=
86
,
//uint32 最大称量值;范围:0~8000000;使用称台功能前需先设置此值
称台分度
=
88
,
//uint16 称台分度值;使用称台功能前需先设置此值。0x00:0.0001 0x01:0.0002 0x02:0x0005
//0x03:0.001 0x04:0.002 0x05:0.005
//0x06:0.01 0x07:0.02 0x08;0.05
//0x09:0.1 0x0A:0.2 0x0B:0.5
//0x0C:1 0x0D:2 0x0E:5
//0x0F:10 0x10:20 0x11:50
手动置零范围
=
93
,
//uint16 设置手动清零的范围;单位为满量程的百分比;写0后手动清零功能无效
执行手动置零
=
94
,
//uint16 写入0x01后执行手动置零操作
自动零位跟踪范围
=
96
,
//uint16 参数范围:0~10000;单位:0.1d;设置0时关闭零位跟踪功能
清除峰谷值
=
290
,
//uint16 写入0x01后清除峰谷值
峰值
=
291
,
//int32
峰值检测使能方式
=
295
,
//uint16 0:关闭峰值检测;1:力值超过峰值阈值后启动峰值检测;2:由外部触发并满足峰值阈值后启动峰值检测
比较器
0
使能方式
=
310
,
//uint16 0:比较器停止;1:上电即启动比较器;2:外部信号启停比较器
比较器
0
判断方式
=
311
,
//uint16 比较器判断方式如下;0x00:力值>上限 0x01:中限<力值≤上限 0x02:下限<力值≤中限 0x03:力值≤下限 0x04:力值>上限 下限<力值≤中限 0x05:力值>上限 力值≤下限 0x06:力值≤下限 中限<力值≤上限
比较器
0
数据来源
=
312
,
//uint16 比较器数据来源如下;0x00:测量值 0x01:毛重; 0x02:净重;0x03:峰值; 0x04:谷值; 0x05:峰值-谷值
比较器
0
判断延时
=
313
,
//uint16 比较器判断延时时间;单位0.1秒
上限比较值
0
=
314
,
//uint32 设置上限值大小
}
#
endregion
public
bool
Open
(
string
portName
,
out
string
msg
)
{
try
{
msg
=
""
;
PortName
=
portName
;
port
=
new
SerialPort
();
port
.
BaudRate
=
9600
;
port
.
Parity
=
Parity
.
None
;
port
.
DataBits
=
8
;
port
.
StopBits
=
StopBits
.
One
;
port
.
ReadTimeout
=
1000
;
port
.
WriteTimeout
=
1000
;
port
.
PortName
=
PortName
;
port
.
Open
();
if
(!
port
.
IsOpen
)
{
msg
+=
crc
.
GetString
(
"comOpenFail"
,
"串口{0}打开失败"
,
PortName
);
//msg = "端口连接失败:" + PortName;
log
(
"串口打开失败:"
+
PortName
.
ToString
());
return
false
;
}
else
{
LogUtil
.
info
(
"压力传感器"
+
PortName
+
"打开成功"
);
}
Init
();
ReadAndLog
();
int
v
=
Setting_Init
.
Device_WeightSensor_MaxValue
;
if
(
v
>
0
)
{
SetAlarmWeight
(
v
);
log
(
"SetAlarmWeight="
+
v
);
}
log
(
"GetWeight: "
+
GetWeight
());
return
true
;
}
catch
(
Exception
e
)
{
msg
=
crc
.
GetString
(
"comOpenFail"
,
"串口{0}打开失败"
,
PortName
);
//msg =e.ToString();
log
(
"串口"
+
PortName
+
"打开失败:"
+
e
.
ToString
());
return
false
;
}
}
double
ReadInt32
(
Addr
addr
)
{
var
ret
=
Read
(
addr
,
2
);
if
(
ret
.
Length
>
7
)
{
var
b
=
new
byte
[]
{
ret
[
6
],
ret
[
5
],
ret
[
4
],
ret
[
3
]
};
return
((
double
)
BitConverter
.
ToInt32
(
b
,
0
))
/
100
;
}
return
double
.
MinValue
;
}
short
ReadShort
(
Addr
addr
)
{
var
ret
=
Read
(
addr
,
1
);
if
(
ret
.
Length
>=
7
)
{
var
b
=
new
byte
[]
{
ret
[
4
],
ret
[
3
]
};
return
BitConverter
.
ToInt16
(
b
,
0
);
}
return
-
1
;
}
byte
[]
Read
(
Addr
addr
,
int
quantity
)
{
var
seqhead
=
BitConverter
.
GetBytes
(
seq
);
var
addrbyte
=
BitConverter
.
GetBytes
((
uint
)
addr
);
var
quantitybyte
=
BitConverter
.
GetBytes
(
quantity
);
byte
[]
by
=
new
byte
[]
{
station
,
0x03
,
//读地址
addrbyte
[
1
],
addrbyte
[
0
],
//读数量
quantitybyte
[
1
],
quantitybyte
[
0
],
0x00
,
0x00
};
CalculateCRC
(
by
,
by
.
Length
-
2
,
out
ushort
checksun
);
var
crcbyte
=
BitConverter
.
GetBytes
(
checksun
);
by
[
by
.
Length
-
2
]
=
crcbyte
[
0
];
by
[
by
.
Length
-
1
]
=
crcbyte
[
1
];
log
(
addr
.
ToString
()
+
"\treaddata: "
+
BitConverter
.
ToString
(
by
).
Replace
(
"-"
,
" "
));
return
SendAndReceive
(
by
,
addr
.
ToString
());
}
bool
WriteUShort
(
Addr
addr
,
ushort
value
)
{
var
b
=
BitConverter
.
GetBytes
(
value
);
b
=
b
.
Reverse
().
ToArray
();
var
ret
=
Write
(
addr
,
b
);
return
ret
.
Length
>
0
;
}
bool
WriteUInt
(
Addr
addr
,
uint
value
)
{
var
b
=
BitConverter
.
GetBytes
(
value
);
b
=
b
.
Reverse
().
ToArray
();
var
ret
=
Write
(
addr
,
b
);
return
ret
.
Length
>
0
;
}
byte
[]
Write
(
Addr
addr
,
byte
[]
value
)
{
var
seqhead
=
BitConverter
.
GetBytes
(
seq
);
var
addrbyte
=
BitConverter
.
GetBytes
((
uint
)
addr
);
byte
[]
by2
=
new
byte
[]
{
station
,
0x10
,
//读地址
addrbyte
[
1
],
addrbyte
[
0
],
//要写入的寄存器数量
0x00
,
(
byte
)(
value
.
Length
/
2
),
//数据字节计数,表示后面要写入的数据字节数
(
byte
)
value
.
Length
,
};
var
by3
=
by2
.
ToList
();
by3
.
AddRange
(
value
);
by3
.
AddRange
(
new
byte
[]
{
0x00
,
0x00
});
var
by
=
by3
.
ToArray
();
CalculateCRC
(
by
,
by
.
Length
-
2
,
out
ushort
checksun
);
var
crcbyte
=
BitConverter
.
GetBytes
(
checksun
);
by
[
by
.
Length
-
2
]
=
crcbyte
[
0
];
by
[
by
.
Length
-
1
]
=
crcbyte
[
1
];
log
(
addr
.
ToString
()
+
"\twritedata: "
+
BitConverter
.
ToString
(
by
).
Replace
(
"-"
,
" "
));
return
SendAndReceive
(
by
,
addr
.
ToString
());
}
byte
[]
SendAndReceive
(
byte
[]
buff
,
string
cmdname
=
""
)
{
lock
(
port
)
{
byte
[]
restr
=
new
byte
[
0
];
if
(
port
==
null
||
!
port
.
IsOpen
)
{
if
(!
Open
(
PortName
,
out
string
msg
))
{
log
(
PortName
+
"未初始化,或已断开连接"
);
return
restr
;
}
}
var
t
=
Task
.
Run
(
delegate
{
byte
[]
recv
=
new
byte
[
256
];
try
{
port
.
Write
(
buff
,
0
,
buff
.
Length
);
//port.DiscardInBuffer();
Thread
.
Sleep
(
60
);
int
r
=
port
.
Read
(
recv
,
0
,
recv
.
Length
);
var
recvdata
=
recv
.
Take
(
r
).
ToArray
();
port
.
DiscardOutBuffer
();
port
.
DiscardInBuffer
();
CalculateCRC
(
recvdata
,
recvdata
.
Length
-
2
,
out
ushort
checksun
);
var
crcbyte
=
BitConverter
.
GetBytes
(
checksun
);
log
(
cmdname
+
"\trecvdata: "
+
BitConverter
.
ToString
(
recvdata
).
Replace
(
"-"
,
" "
)
+
" crc:"
+
BitConverter
.
ToString
(
crcbyte
).
Replace
(
"-"
,
" "
));
if
(
recvdata
.
Length
>
5
&&
recvdata
[
1
]
==
buff
[
1
]
&&
recvdata
[
recvdata
.
Length
-
2
]
==
crcbyte
[
0
]
&&
recvdata
[
recvdata
.
Length
-
1
]
==
crcbyte
[
1
])
{
return
recvdata
;
}
return
restr
;
}
catch
(
SocketException
e
)
{
log
(
string
.
Format
(
"{0} Error code: {1}."
,
e
.
Message
,
e
.
ErrorCode
));
}
return
restr
;
});
t
.
Wait
(
2000
);
if
(
t
.
IsCompleted
)
return
t
.
Result
;
else
return
new
byte
[
0
];
}
}
/// <summary>
/// 初始化设置
/// </summary>
/// <returns></returns>
public
bool
Init
()
{
if
(!
WriteUInt
(
Addr
.
传感器灵敏度
,
4202
))
return
false
;
if
(!
WriteUInt
(
Addr
.
传感器量程
,
1000
))
return
false
;
if
(!
WriteUInt
(
Addr
.
最大称量
,
1000
))
return
false
;
if
(!
WriteUShort
(
Addr
.
称台分度
,
6
))
return
false
;
if
(!
WriteUShort
(
Addr
.
峰值检测使能方式
,
1
))
return
false
;
if
(!
WriteUShort
(
Addr
.
比较器
0
使能方式
,
1
))
return
false
;
if
(!
WriteUShort
(
Addr
.
比较器
0
判断方式
,
0
))
return
false
;
if
(!
WriteUShort
(
Addr
.
比较器
0
数据来源
,
0
))
return
false
;
if
(!
WriteUShort
(
Addr
.
比较器
0
判断延时
,
0
))
return
false
;
if
(!
WriteUShort
(
Addr
.
手动置零范围
,
100
))
return
false
;
return
false
;
}
public
void
ReadAndLog
()
{
double
lingmindu
=
ReadInt32
(
Addr
.
传感器灵敏度
);
loge
.
Info
(
$
"读取到灵敏度:{lingmindu}"
);
double
licheng
=
ReadInt32
(
Addr
.
传感器量程
);
loge
.
Info
(
$
"读取到传感器量程:{licheng}"
);
double
chengliang
=
ReadInt32
(
Addr
.
最大称量
);
loge
.
Info
(
$
"读取到最大称量:{chengliang}"
);
double
fendu
=
ReadShort
(
Addr
.
称台分度
);
loge
.
Info
(
$
"读取到称台分度:{fendu}"
);
double
fengzhi
=
ReadShort
(
Addr
.
峰值检测使能方式
);
loge
.
Info
(
$
"读取到峰值检测使能方式:{fengzhi}"
);
double
bijiaoqi
=
ReadShort
(
Addr
.
比较器
0
使能方式
);
loge
.
Info
(
$
"读取到比较器0使能方式:{bijiaoqi}"
);
double
panduan
=
ReadShort
(
Addr
.
比较器
0
判断方式
);
loge
.
Info
(
$
"读取到比较器0判断方式:{panduan}"
);
double
laiyuan
=
ReadShort
(
Addr
.
比较器
0
数据来源
);
loge
.
Info
(
$
"读取到比较器0数据来源:{laiyuan}"
);
double
yanchi
=
ReadShort
(
Addr
.
比较器
0
判断延时
);
loge
.
Info
(
$
"读取到比较器0判断延时:{yanchi}"
);
double
fanwei
=
ReadShort
(
Addr
.
手动置零范围
);
loge
.
Info
(
$
"读取到手动置零范围:{fanwei}"
);
}
/// <summary>
/// 获取重量值
/// </summary>
/// <returns></returns>
public
double
GetWeight
()
{
return
ReadInt32
(
Addr
.
毛重
);
}
/// <summary>
/// 重置尖峰重量值
/// </summary>
/// <returns></returns>
public
bool
ResetPeakWeight
()
{
return
WriteUShort
(
Addr
.
清除峰谷值
,
1
);
}
/// <summary>
/// 获取尖峰重量值
/// </summary>
/// <returns></returns>
public
double
PeakWeight
()
{
return
ReadInt32
(
Addr
.
峰值
);
}
/// <summary>
/// 归零
/// </summary>
/// <returns></returns>
public
bool
ResetZero
()
{
return
WriteUShort
(
Addr
.
执行手动置零
,
1
);
}
/// <summary>
/// 设置报警阈值
/// </summary>
/// <returns></returns>
public
bool
SetAlarmWeight
(
double
kg
)
{
return
WriteUInt
(
Addr
.
上限比较值
0
,
(
uint
)(
kg
*
100
));
}
static
void
CalculateCRC
(
byte
[]
pByte
,
int
nNumberOfBytes
,
out
ushort
pChecksum
)
{
int
nBit
;
ushort
nShiftedBit
;
pChecksum
=
0xFFFF
;
for
(
int
nByte
=
0
;
nByte
<
nNumberOfBytes
;
nByte
++)
{
pChecksum
^=
pByte
[
nByte
];
for
(
nBit
=
0
;
nBit
<
8
;
nBit
++)
{
if
((
pChecksum
&
0x1
)
==
1
)
{
nShiftedBit
=
1
;
}
else
{
nShiftedBit
=
0
;
}
pChecksum
>>=
1
;
if
(
nShiftedBit
!=
0
)
{
pChecksum
^=
0xA001
;
}
}
}
}
void
log
(
string
msg
)
{
loge
.
Info
(
"x光高压:"
+
msg
);
Console
.
WriteLine
(
msg
);
}
}
}
DeviceLibrary/theMachine/BoxTransport.cs
查看文件 @
4eaa20d
...
...
@@ -159,7 +159,8 @@ namespace DeviceLibrary
case
MoveStep
.
StoreTS06
:
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreTS07
);
InOut_Axis
.
AbsMove
(
MoveInfo
,
From
.
InOut_P2
,
Config
.
InOut_P2_speed
);
InOut_Axis
.
MonitorAxisLoadRate
(
Setting_Init
.
LoadRateLimit_InOutMaxLoadRate
);
//InOut_Axis.MonitorAxisLoadRate(Setting_Init.LoadRateLimit_InOutMaxLoadRate);
InOut_Axis
.
SensorDetection
(
Setting_Init
.
Device_WeightSensor_MaxValue
);
MoveInfo
.
log
(
$
"{storeMoveType}:进出轴去取料点P2【{From.InOut_P2}】【{Config.InOut_P2_speed}】"
);
break
;
case
MoveStep
.
StoreTS07
:
...
...
@@ -202,20 +203,30 @@ namespace DeviceLibrary
MoveInfo
.
log
(
$
"{storeMoveType}:旋转轴去取料点P2【{Fix.Middle_P2}】【{Config.Middle_P2_speed}】"
);
UpDown_Axis
.
AbsMove
(
MoveInfo
,
Fix
.
UpDown_PH
,
Config
.
UpDown_P1_speed
);
MoveInfo
.
log
(
$
"{storeMoveType}:升降轴去取料高点【{Fix.UpDown_PH}】【{Config.UpDown_P1_speed}】"
);
SensorProcess
();
break
;
case
MoveStep
.
StoreFIX02
:
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreFIX03
);
InOut_Axis
.
AbsMove
(
MoveInfo
,
Fix
.
InOut_P2
,
Config
.
InOut_P2_speed
);
InOut_Axis
.
MonitorAxisLoadRate
(
Setting_Init
.
LoadRateLimit_InOutMaxLoadRate
);
//InOut_Axis.MonitorAxisLoadRate(Setting_Init.LoadRateLimit_InOutMaxLoadRate);
InOut_Axis
.
SensorDetection
(
Setting_Init
.
Device_WeightSensor_MaxValue
);
MoveInfo
.
log
(
$
"{storeMoveType}:进出轴去取料点【{Fix.InOut_P2}】【{Config.InOut_P2_speed}】"
);
break
;
case
MoveStep
.
StoreFIX03
:
RobotManage
.
CameraA
.
CameraGrabOne
(
RobotManage
.
CameraA
.
GetFixtureStateFilename
(
To
.
posid
,
WareCode
,
storeMoveType
,
FixtureState
.
ToFix
));
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreFIX04
);
Comp_Axis
.
AbsMove
(
MoveInfo
,
Fix
.
Comp_PH
,
Config
.
Comp_P2_speed
);
MoveInfo
.
log
(
$
"{storeMoveType}:压紧轴去压紧高点【{Fix.Comp_PH}】【{Config.Comp_P2_speed}】"
);
UpDown_Axis
.
AbsMove
(
MoveInfo
,
Fix
.
UpDown_PL
,
Config
.
UpDown_P3_speed
/
2
);
MoveInfo
.
log
(
$
"{storeMoveType}:升降轴去取料低点【{Fix.UpDown_PL}】【{Config.UpDown_P3_speed / 2}】"
);
bool
sCheck
=
SensorProcess
();
if
(!
sCheck
)
{
}
RobotManage
.
CameraA
.
CameraGrabOne
(
RobotManage
.
CameraA
.
GetFixtureStateFilename
(
To
.
posid
,
WareCode
,
storeMoveType
,
FixtureState
.
ToFix
));
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreFIX04
);
Comp_Axis
.
AbsMove
(
MoveInfo
,
Fix
.
Comp_PH
,
Config
.
Comp_P2_speed
);
MoveInfo
.
log
(
$
"{storeMoveType}:压紧轴去压紧高点【{Fix.Comp_PH}】【{Config.Comp_P2_speed}】"
);
UpDown_Axis
.
AbsMove
(
MoveInfo
,
Fix
.
UpDown_PL
,
Config
.
UpDown_P3_speed
/
2
);
MoveInfo
.
log
(
$
"{storeMoveType}:升降轴去取料低点【{Fix.UpDown_PL}】【{Config.UpDown_P3_speed / 2}】"
);
break
;
case
MoveStep
.
StoreFIX04
:
...
...
@@ -278,7 +289,8 @@ namespace DeviceLibrary
case
MoveStep
.
StoreFIX04_05_DownToFixLow
:
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreFIX04_06_InoutToPos
);
InOut_Axis
.
AbsMove
(
MoveInfo
,
Fix
.
InOut_P2
,
Config
.
InOut_P2_speed
);
InOut_Axis
.
MonitorAxisLoadRate
(
Setting_Init
.
LoadRateLimit_InOutMaxLoadRate
);
//InOut_Axis.MonitorAxisLoadRate(Setting_Init.LoadRateLimit_InOutMaxLoadRate);
InOut_Axis
.
SensorDetection
(
Setting_Init
.
Device_WeightSensor_MaxValue
);
MoveInfo
.
log
(
$
"{storeMoveType}:进出轴去取料点P2【{Fix.InOut_P2}】【{Config.InOut_P2_speed}】"
);
break
;
case
MoveStep
.
StoreFIX04_06_InoutToPos
:
...
...
@@ -352,7 +364,8 @@ namespace DeviceLibrary
case
MoveStep
.
StoreTS12
:
MoveInfo
.
NextMoveStep
(
MoveStep
.
StoreTS13
);
InOut_Axis
.
AbsMove
(
MoveInfo
,
To
.
InOut_P2
,
Config
.
InOut_P2_speed
);
InOut_Axis
.
MonitorAxisLoadRate
(
Setting_Init
.
LoadRateLimit_InOutMaxLoadRate
);
//InOut_Axis.MonitorAxisLoadRate(Setting_Init.LoadRateLimit_InOutMaxLoadRate);
InOut_Axis
.
SensorDetection
(
Setting_Init
.
Device_WeightSensor_MaxValue
);
MoveInfo
.
log
(
$
"{storeMoveType}:进出轴去取料点P2【{To.InOut_P2}】【{Config.InOut_P2_speed}】"
);
break
;
case
MoveStep
.
StoreTS13
:
...
...
@@ -447,5 +460,47 @@ namespace DeviceLibrary
// //return pos > 0 ? RobotManage.CameraA : RobotManage.CameraB;
// return RobotManage.CameraA;
//}
/// <summary>
/// 返回ture表示没问题,返回false需要报警
/// </summary>
/// <returns></returns>
private
bool
SensorProcess
()
{
try
{
if
(
Setting_Init
.
Device_DauxiKS107_PortName
==
""
||
RobotManage
.
dauxiKS107Controller
==
null
||
RobotManage
.
dauxiKS107Controller
.
PortIsOpen
()==
false
)
{
return
true
;
}
if
(
RobotManage
.
dauxiKS107Controller
.
Quary
(
out
int
value
,
out
string
errMsg
))
{
int
cha
=
value
-
Setting_Init
.
Device_DauxiKS107_BaseValue
;
if
(
cha
>
Setting_Init
.
Device_DauxiKS107_ErrorValue
)
{
TimeSpan
span
=
DateTime
.
Now
-
RobotManage
.
LastResetTime
;
RobotManage
.
SensorNeedReset
=
true
;
if
(
span
.
TotalHours
>
1
)
{
LogUtil
.
error
(
$
"传感器误差过大,需要复位:当前值:{value},基准值:{Setting_Init.Device_DauxiKS107_BaseValue},SensorErroCount={RobotManage.SensorNeedReset}, 最大误差:{Setting_Init.Device_DauxiKS107_ErrorValue},"
+
$
"上次复位时间{RobotManage.LastResetTime.ToShortDateString()},一小时内出现红外传感器检测错误,需要报警"
);
RobotManage
.
SensorNeedAlarm
=
true
;
return
false
;
}
else
{
LogUtil
.
error
(
$
"传感器误差过大,需要复位:当前值:{value},基准值:{Setting_Init.Device_DauxiKS107_BaseValue},SensorErroCount={RobotManage.SensorNeedReset},最大误差:{Setting_Init.Device_DauxiKS107_ErrorValue}"
);
}
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"SensorProcess 出错:"
+
ex
.
ToString
());
}
return
true
;
}
}
}
DeviceLibrary/theMachine/MainMachine _LedRGBProcess.cs
0 → 100644
查看文件 @
4eaa20d
using
OnlineStore
;
using
OnlineStore.Common
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics.Eventing.Reader
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Timers
;
using
static
System
.
Windows
.
Forms
.
AxHost
;
namespace
DeviceLibrary
{
partial
class
MainMachine
{
private
Flyelectronic_485_RGB_Controller
rGB_Controller
=
null
;
private
bool
rgbLedInitOk
=
false
;
public
string
lastColor
=
""
;
System
.
Threading
.
Timer
ledRgbTimer
;
public
bool
CloseRgbLed
()
{
if
(
rgbLedInitOk
)
{
rGB_Controller
.
Dispose
();
}
return
true
;
}
public
bool
InitRgbLed
(
out
string
msg
)
{
msg
=
""
;
string
port
=
Setting_Init
.
Device_LedLight_PortName
;
if
(
port
==
""
)
{
LogUtil
.
info
(
"未配置LED灯端口号"
);
return
false
;
}
rGB_Controller
=
new
Flyelectronic_485_RGB_Controller
(
"LED"
);
bool
result
=
rGB_Controller
.
OpenPort
(
port
,
out
msg
);
if
(
result
)
{
LogUtil
.
error
(
"LED灯初始化成功"
);
rgbLedInitOk
=
true
;
ledRgbTimer
=
new
System
.
Threading
.
Timer
(
new
TimerCallback
(
RgbLedProcess
),
null
,
0
,
1000
);
GC
.
KeepAlive
(
ledtimer
);
msg
=
""
;
return
true
;
}
else
{
LogUtil
.
error
(
"LED灯初始化失败:"
+
msg
);
}
return
false
;
}
private
void
ShowColor
(
Color
color
)
{
if
(
lastColor
.
Equals
(
color
.
ToArgb
().
ToString
()))
{
return
;
}
rGB_Controller
.
CloseLed
();
rGB_Controller
.
ShowColor
(
color
);
}
private
void
RgbLedProcess
(
object
o
)
{
if
(
rGB_Controller
==
null
||
(!
rgbLedInitOk
))
{
return
;
}
// 红色: 急停,
//紫色: 异常,
//蓝绿: 待机
//流动绿: 入库
//流动黄: 出库,
//白色: 等待用户响应(等待取走盘等),
//蓝色: 扫码检测
if
(
runStatus
==
RunStatus
.
Stop
)
{
//未启动 黑色
ShowColor
(
Color
.
Black
);
}
else
if
(
isInSuddenDown
)
{
//红色: 急停,
ShowColor
(
Color
.
Red
);
}
else
if
(
hasAlarm
)
{
//紫色: 异常,
ShowColor
(
Color
.
Purple
);
}
//温度超限
else
if
(
IsTHoutRange
())
{
//紫色: 异常,
ShowColor
(
Color
.
Purple
);
}
//温度超限30分钟
else
if
(
IsTHoutRangeOver30m
())
{
//紫色: 异常,
ShowColor
(
Color
.
Purple
);
}
else
if
(
runStatus
==
RunStatus
.
Running
)
{
var
h
=
NGDoor_Tray_Test_Reel
;
if
(
h
!=
null
&&
h
.
Value
)
{
//等待料盘拿走
//白色: 等待用户响应(等待取走盘等),
//蓝色: 扫码检测
ShowColor
(
Color
.
White
);
}
else
if
(
ClampMoveInfo
.
IsStep
(
MoveStep
.
ReelClamp_10
)
&&
(!
RobotManage
.
InoutDebugMode
)
&&
(!
ClampMoveInfo
.
MoveParam
.
IsNg
))
{
//蓝色: 扫码检测
ShowColor
(
Color
.
Blue
);
}
//出入库 绿闪 黄闪
else
if
(
StoreMoveInfo
.
MoveStep
>=
MoveStep
.
StoreOut10
)
{
//流动黄: 出库,
if
(
lastColor
.
Equals
(
"yellowRun"
))
{
return
;
}
rGB_Controller
.
CloseLed
();
rGB_Controller
.
ShowYellowLight
();
}
else
if
(
StoreMoveInfo
.
MoveStep
>=
MoveStep
.
StoreIn01
)
{
//流动绿: 入库
if
(
lastColor
.
Equals
(
"yellowRun"
))
{
return
;
}
rGB_Controller
.
CloseLed
();
rGB_Controller
.
ShowYellowLight
();
}
}
else
{
//待机 蓝绿
ShowColor
(
Color
.
FromArgb
(
0
,
128
,
128
));
}
}
}
}
DeviceLibrary/theMachine/MainMachine.cs
查看文件 @
4eaa20d
...
...
@@ -355,6 +355,7 @@ namespace DeviceLibrary
IOMove
(
IO_Type
.
LineRun
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
LineRev
,
IO_VALUE
.
LOW
);
LedProcess
(
null
);
RgbLedProcess
(
""
);
SoundsController
.
StopPlay
();
LogUtil
.
info
(
"开始停止系统3."
);
}
...
...
@@ -370,7 +371,8 @@ namespace DeviceLibrary
Alarm
(
AlarmType
.
None
);
runStatus
=
RunStatus
.
HomeReset
;
ResetMoveInfo
.
NewMove
(
MoveStep
.
H01_HomeReset
);
ResetMoveInfo
.
log
(
"开始回原"
);
ResetMoveInfo
.
log
(
"开始回原,记录最后一次回原时间"
);
RobotManage
.
LastResetTime
=
DateTime
.
Now
;
ResetMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
}
...
...
DeviceLibrary/theMachine/MainMachine_Store.cs
查看文件 @
4eaa20d
...
...
@@ -223,10 +223,30 @@ namespace DeviceLibrary
ReelPutted
(
StoreMoveInfo
.
MoveParam
.
PlateH
);
OutStoreJobList
.
ClearLastPosid
(
StoreMoveInfo
.
MoveParam
.
PosID
);
}
if
(
RobotManage
.
SensorNeedAlarm
)
{
//需要报警
StoreMoveInfo
.
NextMoveStep
(
MoveStep
.
StoreOut20
);
StoreMoveInfo
.
log
(
$
"红外传感器偏差过大,需要检查后复位"
);
}
else
if
(
RobotManage
.
SensorNeedReset
)
{
//需要复位
StoreMoveInfo
.
log
(
$
"红外传感器偏差过大,开始复位系统"
);
RobotManage
.
SensorNeedReset
=
false
;
BeginHomeReset
();
}
else
{
StoreMoveInfo
.
EndMove
();
StoreMoveInfo
.
EndMove
();
}
}
break
;
case
MoveStep
.
StoreOut20
:
Msg
.
add
(
crc
.
GetString
(
L
.
sensor_alarm
,
"红外传感器偏差过大,需要检查后复位."
),
MsgLevel
.
info
);
break
;
default
:
StoreMoveInfo
.
log
(
$
"未找到对应步骤:{StoreMoveInfo.MoveStep}"
);
break
;
...
...
DeviceLibrary/theMachine/MoveStep.cs
查看文件 @
4eaa20d
...
...
@@ -133,6 +133,7 @@ namespace DeviceLibrary
StoreOut16
,
StoreOut17
,
StoreOut18
,
StoreOut20
,
//红外传感器报警
StoreTS01
,
StoreTS02
,
...
...
DeviceLibrary/theMachine/RobotManage.cs
查看文件 @
4eaa20d
...
...
@@ -59,6 +59,14 @@ namespace DeviceLibrary
public
static
HIKCamera
CameraA
=
new
HIKCamera
();
public
static
DauxiKS107Controller
dauxiKS107Controller
=
null
;
public
static
OKLE_WeightSensor
oKLE_WeightSensor
=
null
;
public
static
bool
SensorNeedReset
=
false
;
public
static
bool
SensorNeedAlarm
=
false
;
public
static
DateTime
LastResetTime
=
DateTime
.
Now
;
public
static
void
Init
(
params
object
[]
param
)
{
string
msg
=
""
;
...
...
@@ -116,6 +124,37 @@ namespace DeviceLibrary
IsLoadOk
=
false
;
msg
+=
crc
.
GetString
(
L
.
tempnhum_sensor_init_fail
,
$
"温湿度传感器初始化失败,端口:"
)
+
$
"{Setting_Init.App_Humiture_Port}\n"
;
}
if
(!
mainMachine
.
InitRgbLed
(
out
string
LedMsg
))
{
if
(
LedMsg
!=
""
)
{
msg
+=
LedMsg
+
"\n"
;
}
}
if
(
Setting_Init
.
Device_DauxiKS107_PortName
!=
""
)
{
dauxiKS107Controller
=
new
DauxiKS107Controller
();
if
(!
dauxiKS107Controller
.
OpenPort
(
Setting_Init
.
Device_DauxiKS107_PortName
,
out
string
dauxiMsg
))
{
if
(
dauxiMsg
!=
""
)
{
msg
+=
dauxiMsg
+
"\n"
;
}
}
}
if
(
Setting_Init
.
Device_WeightSensor_PortName
!=
""
)
{
oKLE_WeightSensor
=
new
OKLE_WeightSensor
();
if
(!
oKLE_WeightSensor
.
Open
(
Setting_Init
.
Device_WeightSensor_PortName
,
out
string
sensorMsg
))
{
if
(
sensorMsg
!=
""
)
{
msg
+=
sensorMsg
+
"\n"
;
}
}
}
//Thread.Sleep(1000);
//if (!IOManager.ConnectionIOList(new List<string>()))
//{
...
...
@@ -181,6 +220,15 @@ namespace DeviceLibrary
LogUtil
.
info
(
"开始关闭系统."
);
IOManager
.
CloseAllConnection
();
CameraA
.
stopCamera
();
mainMachine
.
CloseRgbLed
();
if
(
oKLE_WeightSensor
!=
null
)
{
oKLE_WeightSensor
.
Close
();
}
if
(
dauxiKS107Controller
!=
null
)
{
dauxiKS107Controller
.
ClosePort
();
}
}
public
static
bool
IsUserPause
{
...
...
TheMachine/AxisControl.Designer.cs
查看文件 @
4eaa20d
...
...
@@ -29,9 +29,14 @@ namespace TheMachine
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
panel1
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
lblLed
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblOkValue
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblSensor
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
button3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
axisMoveControl1
=
new
DeviceLibrary
.
AxisMoveControl
();
this
.
configControl1
=
new
TheMachine
.
ConfigControl
();
this
.
panel1
.
SuspendLayout
();
...
...
@@ -40,6 +45,9 @@ namespace TheMachine
// panel1
//
this
.
panel1
.
AutoScroll
=
true
;
this
.
panel1
.
Controls
.
Add
(
this
.
lblLed
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblOkValue
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblSensor
);
this
.
panel1
.
Controls
.
Add
(
this
.
button3
);
this
.
panel1
.
Controls
.
Add
(
this
.
button2
);
this
.
panel1
.
Controls
.
Add
(
this
.
axisMoveControl1
);
...
...
@@ -50,6 +58,30 @@ namespace TheMachine
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
1234
,
924
);
this
.
panel1
.
TabIndex
=
2
;
//
// lblLed
//
this
.
lblLed
.
AutoSize
=
true
;
this
.
lblLed
.
Location
=
new
System
.
Drawing
.
Point
(
38
,
621
);
this
.
lblLed
.
Name
=
"lblLed"
;
this
.
lblLed
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
12
);
this
.
lblLed
.
TabIndex
=
16
;
//
// lblOkValue
//
this
.
lblOkValue
.
AutoSize
=
true
;
this
.
lblOkValue
.
Location
=
new
System
.
Drawing
.
Point
(
38
,
578
);
this
.
lblOkValue
.
Name
=
"lblOkValue"
;
this
.
lblOkValue
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
12
);
this
.
lblOkValue
.
TabIndex
=
15
;
//
// lblSensor
//
this
.
lblSensor
.
AutoSize
=
true
;
this
.
lblSensor
.
Location
=
new
System
.
Drawing
.
Point
(
38
,
539
);
this
.
lblSensor
.
Name
=
"lblSensor"
;
this
.
lblSensor
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
12
);
this
.
lblSensor
.
TabIndex
=
14
;
//
// button3
//
this
.
button3
.
Location
=
new
System
.
Drawing
.
Point
(
38
,
481
);
...
...
@@ -70,6 +102,11 @@ namespace TheMachine
this
.
button2
.
UseVisualStyleBackColor
=
true
;
this
.
button2
.
Click
+=
new
System
.
EventHandler
(
this
.
button2_Click
);
//
// timer1
//
this
.
timer1
.
Interval
=
1000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// axisMoveControl1
//
this
.
axisMoveControl1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
...
...
@@ -97,6 +134,7 @@ namespace TheMachine
this
.
Size
=
new
System
.
Drawing
.
Size
(
1234
,
924
);
this
.
Load
+=
new
System
.
EventHandler
(
this
.
AxisControl_Load
);
this
.
panel1
.
ResumeLayout
(
false
);
this
.
panel1
.
PerformLayout
();
this
.
ResumeLayout
(
false
);
}
...
...
@@ -108,5 +146,9 @@ namespace TheMachine
private
System
.
Windows
.
Forms
.
Panel
panel1
;
private
System
.
Windows
.
Forms
.
Button
button3
;
private
System
.
Windows
.
Forms
.
Button
button2
;
private
System
.
Windows
.
Forms
.
Label
lblSensor
;
private
System
.
Windows
.
Forms
.
Label
lblLed
;
private
System
.
Windows
.
Forms
.
Label
lblOkValue
;
private
System
.
Windows
.
Forms
.
Timer
timer1
;
}
}
TheMachine/AxisControl.cs
查看文件 @
4eaa20d
...
...
@@ -47,6 +47,7 @@ namespace TheMachine
axisMoveControl1
.
LoadData
(
AxisBean
.
List
);
configControl1
.
Config
=
RobotManage
.
Config
;
LogUtil
.
info
(
"伺服面板加载完成."
);
timer1
.
Start
();
}
...
...
@@ -120,5 +121,47 @@ namespace TheMachine
{
roateloop
=
false
;
}
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
{
if
(!
this
.
Visible
)
{
return
;
}
try
{
if
(
Setting_Init
.
Device_LedLight_PortName
!=
""
)
{
lblLed
.
Text
=
"LED"
+
Setting_Init
.
Device_LedLight_PortName
+
":"
+
RobotManage
.
mainMachine
.
lastColor
.
ToString
();
}
else
{
lblLed
.
Text
=
""
;
}
if
(
Setting_Init
.
Device_DauxiKS107_PortName
!=
""
)
{
RobotManage
.
dauxiKS107Controller
.
Quary
(
out
int
currValue
,
out
string
msg
);
lblSensor
.
Text
=
$
"红外传感器{Setting_Init.Device_DauxiKS107_PortName}:"
+
currValue
+
", /"
+
Setting_Init
.
Device_DauxiKS107_BaseValue
+
"/"
+
Setting_Init
.
Device_DauxiKS107_ErrorValue
;
}
else
{
lblSensor
.
Text
=
""
;
}
if
(
Setting_Init
.
Device_WeightSensor_PortName
!=
""
)
{
lblOkValue
.
Text
=
$
"压力传感器{Setting_Init.Device_WeightSensor_PortName}: {Setting_Init.Device_WeightSensor_MaxValue}"
;
}
else
{
lblOkValue
.
Text
=
""
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
+
ex
.
ToString
());
}
}
}
}
TheMachine/AxisControl.resx
查看文件 @
4eaa20d
...
...
@@ -117,4 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
TheMachine/TheMachine.csproj
查看文件 @
4eaa20d
...
...
@@ -278,6 +278,12 @@
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
<EmbeddedResource Include="ledColor\green.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ledColor\yellow.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<Content Include="更新记录.txt" />
</ItemGroup>
<ItemGroup>
...
...
TheMachine/ledColor/green.txt
0 → 100644
查看文件 @
4eaa20d
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 6D 67 44 4D 43 53 2C 1D 63 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 04 FE 01 03 FD 01 23 BC 1E 2B 1C 64 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 00 FF 00 00 FF 00 00 FF 00 21 BA 1F 29 19 65 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 00 FF 00 00 FF 00 00 FF 00 00 FF 00 33 8E 33 29 19 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 00 FF 00 00 FF 00 00 FF 00 00 FF 00 02 FE 00 2F 91 31 26 15 67 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 18 BF 1D 25 14 67 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 31 A5 28 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 1B B8 1F 27 16 66 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 2F 20 62 33 A8 27 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 1A C1 1C 28 18 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1D 0C 6B 32 24 61 37 AC 25 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 32 93 30 29 19 65 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1E 0D 6A 34 26 60 38 AD 25 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 03 FD 01 35 8F 31 2A 1A 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1F 0E 6A 34 26 60 35 AA 26 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 03 FD 01 34 8F 32 28 18 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 30 21 62 31 A4 28 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 03 FD 01 34 8F 32 29 19 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2D 1E 63 30 A4 28 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 03 FD 01 33 8C 33 27 17 66 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2E 1F 63 19 CE 16 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 02 FE 01 4A 3F 55 25 14 67 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0C 6B 2D 1E 63 1A CF 15 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 21 E2 0D 42 36 59 22 11 69 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2D 1E 63 30 A8 27 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 1F DF 0E 41 35 59 22 11 69 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2F 20 62 60 61 47 07 FC 01 00 FF 00 00 FF 00 00 FF 00 00 FF 00 30 CB 17 3F 33 5A 22 12 68 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0C 6B 34 26 60 6B 6E 41 08 FD 01 00 FF 00 00 FF 00 00 FF 00 00 FF 00 1F DF 0E 40 34 5A 22 12 68 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 20 0F 6A 3D 30 5B 77 7C 3B 07 FD 01 00 FF 00 00 FF 00 00 FF 00 00 FF 00 31 CB 17 3A 2D 5D 1E 0D 6A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 22 11 69 3F 33 5A 73 80 39 01 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 2A C3 1A 31 23 61 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 22 12 68 3E 31 5B 40 B6 21 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 25 BE 1D 2C 1D 63 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 21 10 69 3D 30 5B 42 B8 20 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 23 BC 1E 2D 1E 63 1D 0C 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 21 10 69 43 37 58 4B C3 1C 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 24 BC 1D 2B 1B 64 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 27 17 66 50 46 52 43 D3 14 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 23 BC 1E 2B 1C 64 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 29 19 65 52 53 4D 05 FC 01 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 38 93 30 2B 1C 64 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2A 1A 65 2D A0 2A 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 01 FF 00 25 BF 1D 31 23 61 1E 0D 6A 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2C 1D 63 2E A1 2A 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 28 C1 1B 34 26 60 20 0F 6A 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2B 1B 64 2C A0 2A 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 43 A0 2A 39 2B 5D 1F 0E 6A AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2A 1A 65 50 50 4D 2A E1 0E 00 FF 00 00 FF 00 00 FF 00 00 FF 00 02 FF 00 45 A2 29 38 2A 5E AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 28 18 65 4B 49 50 35 D4 13 00 FF 00 00 FF 00 00 FF 00 00 FF 00 01 FF 00 2C C6 1A AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 27 17 66 49 3E 55 46 C1 1C 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 24 13 68 47 3C 56 46 C1 1C 00 FF 00 00 FF 00 00 FF 00 00 FF 00 AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 25 14 67 45 3A 57 47 BF 1D 00 FF 00 00 FF 00 00 FF 00 AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 25 14 67 43 38 58 02 FD 01 00 FF 00 00 FF 00 AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 23 13 68 22 94 2F 00 FF 00 00 FF 00 AA BB
TheMachine/ledColor/yellow.txt
0 → 100644
查看文件 @
4eaa20d
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 6D 67 44 4D 43 53 2C 1D 63 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A C4 CC 18 9A 9C 2D 5A 51 4D 2B 1C 64 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A E6 F4 07 D5 E0 10 A0 A2 2A 55 4D 4F 29 19 65 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A E7 F5 07 E7 F5 07 D5 E0 10 9B 9E 2C 52 49 51 29 19 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A D6 E1 0F E8 F6 06 E9 F7 06 D5 E0 10 9A 9C 2D 50 46 52 26 15 67 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A A3 A6 29 D8 E3 0F E8 F6 06 EA F8 06 D1 DC 12 90 90 32 48 3D 56 25 14 67 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 5D 55 4B A5 A9 27 D8 E4 0E EA F8 06 E6 F3 08 CA D4 15 8B 8B 35 49 3E 55 27 16 66 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 2F 20 62 61 5A 49 AA AF 25 DD EA 0C EB F9 05 E6 F3 08 CD D7 14 91 91 32 4E 44 53 28 18 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1D 0C 6B 32 24 61 68 63 46 B2 B7 21 DF EC 0B EB FA 05 E8 F6 06 D1 DC 12 99 9B 2E 54 4B 50 29 19 65 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1E 0D 6A 34 26 60 6A 64 45 B3 B9 21 DE EB 0B EA F8 06 E8 F6 06 D5 E0 10 9C 9F 2C 55 4C 4F 2A 1A 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1F 0E 6A 34 26 60 65 5F 47 A9 AD 26 D9 E5 0E E9 F7 06 E8 F6 06 D6 E1 0F 9D A0 2C 54 4B 50 28 18 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 30 21 62 5C 54 4C A4 A7 28 D8 E3 0F E7 F5 07 EA F8 06 D3 DE 11 9B 9E 2C 54 4B 50 29 19 65 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2D 1E 63 5B 53 4C A2 A5 29 D5 E0 10 E7 F5 07 E7 F5 07 D3 DE 11 9A 9C 2D 51 47 51 27 17 66 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2E 1F 63 5A 52 4D A2 A5 29 D8 E3 0F E9 F7 06 E8 F6 06 D3 DE 11 93 94 30 4A 3F 55 25 14 67 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0C 6B 2D 1E 63 5C 54 4C A5 A8 28 D8 E4 0E E9 F7 06 E7 F5 07 CC D6 14 88 87 36 42 36 59 22 11 69 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2D 1E 63 5D 55 4B A8 AC 26 DD EA 0C EB FA 05 E5 F2 08 C4 CC 18 7E 7B 3B 41 35 59 22 11 69 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2F 20 62 63 5C 49 B2 B7 21 E1 EE 0A EA F8 06 E3 F1 09 C0 C8 1A 7C 79 3C 3F 33 5A 22 12 68 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0C 6B 34 26 60 6E 69 43 BC C4 1C E1 EF 0A E9 F7 06 E1 EF 0A C1 C9 1A 7F 7C 3B 40 34 5A 22 12 68 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 20 0F 6A 3D 30 5B 7B 78 3D C0 C8 1A E2 F0 09 E8 F6 06 E2 F0 09 C3 CB 19 7D 7A 3B 3A 2D 5D 1E 0D 6A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 22 11 69 3F 33 5A 7B 78 3D BD C5 1C E0 ED 0B EA F8 06 E5 F2 08 BD C5 1C 6B 65 44 31 23 61 1C 0A 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 22 12 68 3E 31 5B 78 75 3E BC C4 1C E2 F0 09 EB FA 05 E0 ED 0B AD B2 24 5E 56 4B 2C 1D 63 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 21 10 69 3D 30 5B 7C 79 3C C6 CF 17 E6 F4 07 EA F8 06 D9 E5 0E A4 A7 28 5A 52 4D 2D 1E 63 1D 0C 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 21 10 69 43 37 58 8D 8D 34 D0 DB 12 E8 F6 06 E9 F7 06 D8 E3 0F A1 A4 2A 5B 53 4C 2B 1B 64 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 27 17 66 50 46 52 98 9A 2E D6 E1 0F E9 F7 06 E8 F6 06 D6 E1 0F A1 A4 2A 5A 52 4D 2B 1C 64 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 29 19 65 55 4D 4F 9D A0 2C D6 E1 0F E9 F7 06 E8 F6 06 D7 E2 0F A1 A4 2A 5A 52 4D 2B 1C 64 1D 0B 6B 1B 09 6C 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2A 1A 65 55 4C 4F 9D A0 2C D7 E2 0F E9 F7 06 E8 F6 06 D8 E4 0E A8 AC 26 61 5A 49 31 23 61 1E 0D 6A 1B 09 6C 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 2C 1D 63 56 4E 4F 9E A1 2B D5 E0 10 E7 F5 07 EA F8 06 DD E9 0C AD B2 24 66 60 47 34 26 60 20 0F 6A 1B 09 6C AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2B 1B 64 54 4B 50 9B 9D 2D D3 DE 11 E7 F5 07 EB FA 05 DE EB 0B B1 B6 22 6C 66 44 39 2B 5D 1F 0E 6A AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1D 0B 6B 2A 1A 65 53 4A 50 94 95 30 CF DA 13 E6 F4 07 E9 F7 06 DD EA 0C B4 BA 20 6F 6A 42 38 2A 5E AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 28 18 65 4D 43 53 8E 8E 33 CB D5 15 E5 F2 08 E7 F5 07 DE EB 0B B4 BA 20 71 6D 41 AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 27 17 66 49 3E 55 88 87 36 C9 D2 16 E4 F2 08 E7 F5 07 DD EA 0C B7 BD 1F AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 24 13 68 47 3C 56 88 87 36 C5 CE 18 E3 F1 09 E8 F6 06 E0 ED 0B AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 25 14 67 45 3A 57 87 86 37 C5 CD 18 E4 F2 08 EB F9 05 AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 25 14 67 43 38 58 82 80 39 C2 CA 19 E4 F2 08 AA BB
DD 55 EE 00 00 00 01 00 99 01 00 00 00 5A 00 0A 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1B 09 6C 1C 0A 6C 23 13 68 41 35 59 77 74 3E BA C1 1D AA BB
TheMachine/resources/en-US.lngres
查看文件 @
4eaa20d
...
...
@@ -424,4 +424,8 @@ Res0225 关 Switch to Low
Res0226 开 Switch to High
flashing 闪烁 Flashing
save_success 保存成功 Save success
save_failed 保存失败 Save failed
\ No newline at end of file
save_failed 保存失败 Save failed
sensor_alarm 红外传感器偏差过大,需要检查后复位 Infrared sensor deviation is too large, need to check and then reset
comInitError {0}初始化失败 {0}Initialization failure
comDataError 串口{0}数据错误{1} Serial port {0} data error {1}
comOpenFail 串口{0}打开失败 Serial port {0} open failed
TheMachine/resources/ja-JP.lngres
查看文件 @
4eaa20d
...
...
@@ -426,4 +426,8 @@ Res0225 关 閉める
Res0226 开 開ける
flashing 闪烁 ヴラド
save_success 保存成功 保存は成功しました
save_failed 保存失败 保存に失敗しました
\ No newline at end of file
save_failed 保存失败 保存に失敗しました
sensor_alarm 红外传感器偏差过大,需要检查后复位 赤外線センサーのずれが大きすぎる
comInitError {0}初始化失败 {0}初期化に失敗しました
comDataError 串口{0}数据错误{1} シリアルポート {0} データエラー {1}
comOpenFail 串口{0}打开失败 シリアルポート {0} のオープンに失敗
TheMachine/resources/zh-CN.lngres
查看文件 @
4eaa20d
...
...
@@ -411,4 +411,8 @@ Res0225 关 关
Res0226 开 开
flashing 闪烁 闪烁
save_success 保存成功 保存成功
save_failed 保存失败 保存失败
\ No newline at end of file
save_failed 保存失败 保存失败
sensor_alarm 红外传感器偏差过大,需要报警 红外传感器偏差过大,需要报警
comInitError {0}初始化失败 {0}初始化失败
comDataError 串口{0}数据错误{1} 串口{0}数据错误{1}
comOpenFail 串口{0}打开失败 串口{0}打开失败
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论