122 lines
4.1 KiB
C#
122 lines
4.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace ENIGProtocol
|
|
{
|
|
/// <summary>
|
|
/// host -> eq
|
|
/// </summary>
|
|
public enum AGVCommandHE : byte
|
|
{
|
|
Goto = 100,
|
|
Stop = 101,
|
|
Reset = 102,
|
|
SetCurrent = 103,
|
|
Manual = 104,
|
|
MarkStop = 105,
|
|
LiftControl = 106,
|
|
GotoAlias = 107,
|
|
AutoMove = 108,
|
|
ChargeControl = 109,
|
|
Charger = 112,
|
|
LTurn = 113,
|
|
RTurn = 114,
|
|
LTurn180 = 115,
|
|
RTurn180 = 116,
|
|
PickOnEnter = 117,
|
|
PickOffEnter = 118,
|
|
PickOnExit = 119,
|
|
PickOffExit = 120,
|
|
}
|
|
|
|
/// <summary>
|
|
/// eq -> host
|
|
/// </summary>
|
|
public enum AGVCommandEH : byte
|
|
{
|
|
Error = 1,
|
|
Arrived = 2,
|
|
ReadRFID = 3,
|
|
ActionComplete=4,
|
|
Status = 9,
|
|
}
|
|
|
|
public enum AGVErrorCode : byte
|
|
{
|
|
None = 0,
|
|
PredictFix,
|
|
TurnTimeout,
|
|
TurnError,
|
|
EmptyNode,
|
|
Goto,
|
|
ManualMode,
|
|
UnknownCommand,
|
|
UnknownAlias,
|
|
|
|
// Operational Errors
|
|
CART_EXIST,
|
|
MARK_TIMEOUT,
|
|
MARK_SENSOR_FAIL,
|
|
LIFT_ERROR,
|
|
AGV_SPEED_SET_FAIL,
|
|
AGV_RUN_FAIL,
|
|
AGV_STOP_FAIL,
|
|
PATH_INTEGRITY_FAIL,
|
|
TURN_FAIL,
|
|
NO_CHARGEPOINT,
|
|
NOTSET_CHARGEPOINT,
|
|
ALREADY_CHARGE,
|
|
CHARGE_RETRY_OVER,
|
|
MAGNET_ON_ERROR,
|
|
MAGNET_OF_ERROR,
|
|
BUFFER_NOT_COMPLETE,
|
|
MARK_STOP_FAIL,
|
|
LIDAR_STOP,
|
|
NOT_BUFFERPOINT,
|
|
NOT_EQUIPMENTPOINT,
|
|
}
|
|
|
|
public static class AGVUtility
|
|
{
|
|
/// <summary>
|
|
/// 에러코드에 해당하는 오류메세지를 반환 합니다
|
|
/// </summary>
|
|
/// <param name="ecode"></param>
|
|
/// <returns></returns>
|
|
public static string GetAGVErrorMessage(AGVErrorCode ecode)
|
|
{
|
|
switch (ecode)
|
|
{
|
|
case AGVErrorCode.None: return "No Error";
|
|
case AGVErrorCode.PredictFix: return "이동 예측이 동작하지 않습니다";
|
|
case AGVErrorCode.TurnTimeout: return "회전작업 시간초과";
|
|
case AGVErrorCode.TurnError: return "회전작업이 완료되지 않았습니다";
|
|
case AGVErrorCode.EmptyNode: return "노드정보를 찾을 수 없습니다";
|
|
case AGVErrorCode.Goto: return "이동 명령 오류";
|
|
case AGVErrorCode.ManualMode: return "자동운전 상태가 아닙니다";
|
|
case AGVErrorCode.UnknownCommand: return "알수 없는 명령입니다";
|
|
case AGVErrorCode.UnknownAlias: return "알수 없는 별칭 입니다";
|
|
|
|
case AGVErrorCode.CART_EXIST: return "카트 감지 센서 오류";
|
|
case AGVErrorCode.MARK_TIMEOUT: return "마크 정지 신호 시간초과";
|
|
case AGVErrorCode.MARK_SENSOR_FAIL: return "마크 센서 미감지";
|
|
case AGVErrorCode.LIFT_ERROR: return "리프트 동작 오류";
|
|
case AGVErrorCode.AGV_SPEED_SET_FAIL: return "AGV 속도 설정 실패";
|
|
case AGVErrorCode.AGV_RUN_FAIL: return "AGV 구동 실패";
|
|
case AGVErrorCode.AGV_STOP_FAIL: return "AGV 정지 실패";
|
|
case AGVErrorCode.PATH_INTEGRITY_FAIL: return "경로 무결성 검증 실패";
|
|
case AGVErrorCode.TURN_FAIL: return "턴 동작 실패";
|
|
case AGVErrorCode.NO_CHARGEPOINT: return "충전 위치 아님";
|
|
case AGVErrorCode.NOTSET_CHARGEPOINT: return "충전기 노드 미설정";
|
|
case AGVErrorCode.ALREADY_CHARGE: return "이미 충전 중 상태임";
|
|
case AGVErrorCode.CHARGE_RETRY_OVER: return $"충전명령 재전송 횟수 초과";
|
|
case AGVErrorCode.NOT_BUFFERPOINT: return "현재 위치가 버퍼가 아닙니다";
|
|
case AGVErrorCode.NOT_EQUIPMENTPOINT: return "현재 위치가 장비 노드가 아닙니다";
|
|
default: return ecode.ToString();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|