#pragma once
#include <map>
#include <stdint.h>

enum RPCNumber {
    Get_Info = 0x0,
    Home = 0x01,
    Move_Step = 0x2,
    Move_XY = 0x3,
    Set_Padding = 0x4,
    Release_Motors = 0x5,
    Drop_Stone = 0x6,
    Get_Stone_Status = 0x7,
    Move_Z_Axis = 0x8,
    Set_Vacum = 0x9,
    Invalid = 0xf
};

const uint32_t RPC_NUMBER_MAX = 0x9;

enum RPCType {
    REQUEST = 0b00,
    RESPONSE_RPC = 0b01,
    INVALID = 0b10,
    ERROR = 0b11
};

struct RPCHeader {
    RPCNumber rpcNum : 4;
    RPCType type : 2;
    unsigned char segment: 2;
};
