50 lines
1.8 KiB
C#
50 lines
1.8 KiB
C#
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|||
|
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobort;
|
|||
|
|
|||
|
namespace MECF.Framework.RT.EquipmentLibrary.Core.Extensions.Tests
|
|||
|
{
|
|||
|
[TestClass()]
|
|||
|
public class BitTypeClassExtensionTests
|
|||
|
{
|
|||
|
|
|||
|
[TestMethod()]
|
|||
|
public void ToBitTypeClassTest()
|
|||
|
{
|
|||
|
var bitSize = 16;
|
|||
|
|
|||
|
for (var mockStatus = 0; mockStatus < bitSize; mockStatus++)
|
|||
|
{
|
|||
|
var stat = mockStatus.ToBitTypeClass<HiwinRobotStatus>(bitSize);
|
|||
|
Assert.IsNotNull(stat);
|
|||
|
|
|||
|
|
|||
|
var integValue = stat.FromBitTypeClass();
|
|||
|
|
|||
|
Assert.AreEqual(integValue, mockStatus);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod()]
|
|||
|
public void AggregateMessagesTest()
|
|||
|
{
|
|||
|
// 所有Error Bit均设置为1,应该返回6条错误
|
|||
|
var stat = 0x4c70.ToBitTypeClass<HiwinRobotStatus>(16);
|
|||
|
var errs = stat.AggregateErrorMessages();
|
|||
|
|
|||
|
Assert.IsNotNull(errs);
|
|||
|
Assert.AreEqual(6, errs.Count);
|
|||
|
Assert.IsTrue(errs.Contains("单轴或多轴马达发生错误"));
|
|||
|
Assert.IsTrue(errs.Contains("单个或多个极限开关被触发"));
|
|||
|
Assert.IsTrue(errs.Contains("单个或多个轴伺服马达归零未成功"));
|
|||
|
Assert.IsTrue(errs.Contains("单个或多个马达已被解除励磁中"));
|
|||
|
Assert.IsTrue(errs.Contains("已回原点但RW轴未在原点位置"));
|
|||
|
Assert.IsTrue(errs.Contains("控制器返回错误"));
|
|||
|
|
|||
|
// 所有Bit置0,返回0条错误。
|
|||
|
stat = 0.ToBitTypeClass<HiwinRobotStatus>(16);
|
|||
|
errs = stat.AggregateErrorMessages();
|
|||
|
Assert.IsNotNull(errs);
|
|||
|
Assert.AreEqual(0, errs.Count);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|