You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
566 lines
12 KiB
566 lines
12 KiB
using System;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Mirle.Component.API.ProgrammableLogicController.Models
|
|
{
|
|
/// <summary>
|
|
/// 異常等級
|
|
/// </summary>
|
|
public enum AlarmLevel
|
|
{
|
|
/// <summary>
|
|
/// 警告
|
|
/// </summary>
|
|
Warning,
|
|
/// <summary>
|
|
/// 異常
|
|
/// </summary>
|
|
Alarm
|
|
}
|
|
/// <summary>
|
|
/// 回應代碼
|
|
/// </summary>
|
|
public enum ReplyCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
OK,
|
|
/// <summary>
|
|
/// 失敗
|
|
/// </summary>
|
|
NG
|
|
}
|
|
|
|
#region === [Mode] ===
|
|
|
|
/// <summary>
|
|
/// 任務模式
|
|
/// </summary>
|
|
public enum TaskActionMode
|
|
{
|
|
/// <summary>
|
|
/// 入庫
|
|
/// </summary>
|
|
StoreIn,
|
|
/// <summary>
|
|
/// 出庫
|
|
/// </summary>
|
|
StoreOut,
|
|
}
|
|
/// <summary>
|
|
/// 取消模式
|
|
/// </summary>
|
|
public enum TaskCancelMode
|
|
{
|
|
/// <summary>
|
|
/// 取消
|
|
/// </summary>
|
|
Cancel,
|
|
/// <summary>
|
|
/// 強制取消
|
|
/// </summary>
|
|
ForceCancel,
|
|
/// <summary>
|
|
/// 強制完成
|
|
/// </summary>
|
|
ForceComplete
|
|
}
|
|
/// <summary>
|
|
/// 維修門動作
|
|
/// </summary>
|
|
public enum RepairDoorActionMode
|
|
{
|
|
/// <summary>
|
|
/// 開門
|
|
/// </summary>
|
|
Open,
|
|
/// <summary>
|
|
/// 關門
|
|
/// </summary>
|
|
Close,
|
|
/// <summary>
|
|
/// 取消
|
|
/// </summary>
|
|
Cancel
|
|
}
|
|
/// <summary>
|
|
/// 鐵捲門動作
|
|
/// </summary>
|
|
public enum RollingDoorActionMode
|
|
{
|
|
/// <summary>
|
|
/// 開啟
|
|
/// </summary>
|
|
Open,
|
|
/// <summary>
|
|
/// 關閉
|
|
/// </summary>
|
|
Close
|
|
}
|
|
/// <summary>
|
|
/// 操作模式
|
|
/// </summary>
|
|
public enum OperationMode
|
|
{
|
|
/// <summary>
|
|
/// 連線可控制
|
|
/// </summary>
|
|
OnlineRemote,
|
|
/// <summary>
|
|
/// 連線不可控制
|
|
/// </summary>
|
|
OnlineLocal,
|
|
/// <summary>
|
|
/// 離線
|
|
/// </summary>
|
|
Offline
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region === [Status] ===
|
|
|
|
/// <summary>
|
|
/// 任務完成狀態
|
|
/// </summary>
|
|
public enum TaskCompleteStatus
|
|
{
|
|
/// <summary>
|
|
/// 完成
|
|
/// </summary>
|
|
Complete,
|
|
/// <summary>
|
|
/// 強制完成
|
|
/// </summary>
|
|
ForceComplete,
|
|
/// <summary>
|
|
/// 失敗
|
|
/// </summary>
|
|
Failed,
|
|
/// <summary>
|
|
/// 取消
|
|
/// </summary>
|
|
Cancel,
|
|
/// <summary>
|
|
/// 強制取消
|
|
/// </summary>
|
|
ForceCancel
|
|
}
|
|
/// <summary>
|
|
/// 棧板供應狀態
|
|
/// </summary>
|
|
public enum PalletSupplyStatus
|
|
{
|
|
/// <summary>
|
|
/// 滿載
|
|
/// </summary>
|
|
Full,
|
|
/// <summary>
|
|
/// 空載
|
|
/// </summary>
|
|
Empty
|
|
}
|
|
/// <summary>
|
|
/// 移動台車狀態
|
|
/// </summary>
|
|
public enum MoveCarStatus
|
|
{
|
|
/// <summary>
|
|
/// 回到原點
|
|
/// </summary>
|
|
Ready,
|
|
/// <summary>
|
|
/// 尚未回到原點
|
|
/// </summary>
|
|
NotReady
|
|
}
|
|
/// <summary>
|
|
/// 電梯狀態
|
|
/// </summary>
|
|
public enum LifterStatus
|
|
{
|
|
/// <summary>
|
|
/// 抵達
|
|
/// </summary>
|
|
Arrived,
|
|
/// <summary>
|
|
/// 異常
|
|
/// </summary>
|
|
Alarm
|
|
}
|
|
/// <summary>
|
|
/// 電梯貨物狀態
|
|
/// </summary>
|
|
public enum LifterItemStatus
|
|
{
|
|
/// <summary>
|
|
/// 有貨物
|
|
/// </summary>
|
|
HadItem,
|
|
/// <summary>
|
|
/// 無貨物
|
|
/// </summary>
|
|
NotHaveItem
|
|
}
|
|
/// <summary>
|
|
/// 鐵捲門狀態
|
|
/// </summary>
|
|
public enum RollingDoorStatus
|
|
{
|
|
/// <summary>
|
|
/// 開啟
|
|
/// </summary>
|
|
Open,
|
|
/// <summary>
|
|
/// 關閉
|
|
/// </summary>
|
|
Close
|
|
}
|
|
/// <summary>
|
|
/// 維修門狀態
|
|
/// </summary>
|
|
//[JsonConverter(typeof(JsonStringEnumConverter))]
|
|
public enum RepairDoorStatus
|
|
{
|
|
/// <summary>
|
|
/// 開啟
|
|
/// </summary>
|
|
Open,
|
|
/// <summary>
|
|
/// 強制開啟
|
|
/// </summary>
|
|
ForceOpen,
|
|
/// <summary>
|
|
/// 關閉
|
|
/// </summary>
|
|
Close
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region === [Event] ===
|
|
|
|
/// <summary>
|
|
/// 取放貨事件
|
|
/// </summary>
|
|
public enum LoadUnloadEvent
|
|
{
|
|
/// <summary>
|
|
/// 取貨
|
|
/// </summary>
|
|
Load,
|
|
/// <summary>
|
|
/// 放貨
|
|
/// </summary>
|
|
Unload
|
|
}
|
|
/// <summary>
|
|
/// 緊急事件
|
|
/// </summary>
|
|
public enum EmergencyEvent
|
|
{
|
|
/// <summary>
|
|
/// 地震
|
|
/// </summary>
|
|
Earthquake,
|
|
/// <summary>
|
|
/// 消防
|
|
/// </summary>
|
|
Fire
|
|
}
|
|
/// <summary>
|
|
/// 庫區派送命令事件
|
|
/// </summary>
|
|
public enum DispatchEvent
|
|
{
|
|
/// <summary>
|
|
/// 上鎖
|
|
/// </summary>
|
|
Lock,
|
|
/// <summary>
|
|
/// 解鎖
|
|
/// </summary>
|
|
Unlock
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region === [Result Code] ===
|
|
|
|
/// <summary>
|
|
/// 建立命令結果
|
|
/// </summary>
|
|
public enum CreateCommandResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 拒絕
|
|
/// </summary>
|
|
Reject,
|
|
/// <summary>
|
|
/// 起始位置不存在
|
|
/// </summary>
|
|
SourceNotExist,
|
|
/// <summary>
|
|
/// 目的位置不存在
|
|
/// </summary>
|
|
DestinationNotExist
|
|
}
|
|
/// <summary>
|
|
/// 取消命令結果
|
|
/// </summary>
|
|
public enum CancelCommandResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 拒絕
|
|
/// </summary>
|
|
Reject
|
|
}
|
|
/// <summary>
|
|
/// 建立取放貨結果
|
|
/// </summary>
|
|
public enum CreateLoadUnloadResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 失敗
|
|
/// </summary>
|
|
Reject
|
|
}
|
|
/// <summary>
|
|
/// 允許取放貨結果
|
|
/// </summary>
|
|
public enum PermitLoadUnloadResultCode
|
|
{
|
|
/// <summary>
|
|
/// 允許
|
|
/// </summary>
|
|
Permit,
|
|
/// <summary>
|
|
/// 不允許
|
|
/// </summary>
|
|
NotPermit
|
|
}
|
|
/// <summary>
|
|
/// 檢查載具編號及物料編號結果
|
|
/// </summary>
|
|
public enum CarrierIDInsepectResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 載具編號錯誤
|
|
/// </summary>
|
|
CarrierIDError,
|
|
/// <summary>
|
|
/// 物料編號錯誤
|
|
/// </summary>
|
|
MaterialIDError
|
|
}
|
|
/// <summary>
|
|
/// 移動台車詢問結果
|
|
/// </summary>
|
|
public enum MoveCarResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 拒絕
|
|
/// </summary>
|
|
Reject
|
|
}
|
|
/// <summary>
|
|
/// 呼叫電梯結果
|
|
/// </summary>
|
|
public enum CallLifterResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 拒絕
|
|
/// </summary>
|
|
Reject
|
|
}
|
|
/// <summary>
|
|
/// 使用維修門結果
|
|
/// </summary>
|
|
public enum UseRepairDoorResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 維修門不存在
|
|
/// </summary>
|
|
RepairDoorNotExist
|
|
}
|
|
/// <summary>
|
|
/// 使用鐵捲門結果
|
|
/// </summary>
|
|
public enum UseRollingDoorResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 拒絕
|
|
/// </summary>
|
|
Reject
|
|
}
|
|
/// <summary>
|
|
/// 物料檢測結果
|
|
/// </summary>
|
|
public enum MaterialInspectResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 過輕
|
|
/// </summary>
|
|
TooLight,
|
|
/// <summary>
|
|
/// 過重
|
|
/// </summary>
|
|
TooHeavy,
|
|
/// <summary>
|
|
/// 沒有重量
|
|
/// </summary>
|
|
NoWeight
|
|
}
|
|
/// <summary>
|
|
/// 緊急事件結果
|
|
/// </summary>
|
|
public enum EmergencyEventResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 失敗
|
|
/// </summary>
|
|
Failed
|
|
}
|
|
/// <summary>
|
|
/// 建立電梯命令結果
|
|
/// </summary>
|
|
public enum CreateLifterCommandResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 拒絕
|
|
/// </summary>
|
|
Reject
|
|
}
|
|
/// <summary>
|
|
/// 取消電梯命令結果
|
|
/// </summary>
|
|
public enum CancelLifterCommandResultCode
|
|
{
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
Success,
|
|
/// <summary>
|
|
/// 拒絕
|
|
/// </summary>
|
|
Reject
|
|
}
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 訊息擴充方法類別
|
|
/// </summary>
|
|
public static class MessageExtension
|
|
{
|
|
/// <summary>
|
|
/// 轉換成任務模式
|
|
/// </summary>
|
|
/// <param name="taskMode">任務模式 (資料庫)</param>
|
|
/// <returns>任務模式</returns>
|
|
/// <exception cref="ArgumentException">未定義數值</exception>
|
|
public static TaskActionMode ToTaskMode(this int taskMode)
|
|
{
|
|
return (taskMode) switch
|
|
{
|
|
1 => TaskActionMode.StoreIn,
|
|
2 => TaskActionMode.StoreOut,
|
|
_ => throw new ArgumentException($"Unknown task mode {taskMode}")
|
|
};
|
|
}
|
|
/// <summary>
|
|
/// 轉換成任務狀態 (資料庫)
|
|
/// </summary>
|
|
/// <param name="taskCompleteStatus">任務完成狀態</param>
|
|
/// <returns>任務狀態 (資料庫)</returns>
|
|
/// <exception cref="ArgumentException">未定義列舉項目</exception>
|
|
public static int ToTaskStatus(this TaskCompleteStatus taskCompleteStatus)
|
|
{
|
|
return (taskCompleteStatus) switch
|
|
{
|
|
TaskCompleteStatus.Complete => 4,
|
|
TaskCompleteStatus.ForceComplete => 5,
|
|
TaskCompleteStatus.Failed => 6,
|
|
TaskCompleteStatus.Cancel => 7,
|
|
TaskCompleteStatus.ForceCancel => 8,
|
|
_ => throw new ArgumentException($"Unknown task complete status {taskCompleteStatus}")
|
|
};
|
|
}
|
|
/// <summary>
|
|
/// 轉換成任務狀態
|
|
/// </summary>
|
|
/// <param name="cancelMode">取消模式列舉</param>
|
|
/// <returns>任務狀態</returns>
|
|
/// <exception cref="ArgumentException">未定義列舉項目</exception>
|
|
public static int ToTaskStatus(this TaskCancelMode cancelMode)
|
|
{
|
|
return (cancelMode) switch
|
|
{
|
|
TaskCancelMode.ForceComplete => 5,
|
|
TaskCancelMode.Cancel => 7,
|
|
TaskCancelMode.ForceCancel => 8,
|
|
_ => throw new ArgumentException($"Unknown cancel mode {cancelMode}")
|
|
};
|
|
}
|
|
/// <summary>
|
|
/// 轉換成操作模式
|
|
/// </summary>
|
|
/// <param name="operationMode">操作模式</param>
|
|
/// <returns>操作模式</returns>
|
|
public static int ToOperationMode(this OperationMode operationMode)
|
|
{
|
|
return (operationMode) switch
|
|
{
|
|
OperationMode.OnlineRemote => 0,
|
|
OperationMode.OnlineLocal => 1,
|
|
OperationMode.Offline => 2,
|
|
_ => 3
|
|
};
|
|
}
|
|
}
|
|
}
|