플랫폼 포팅

    Dynamixel SDK는 사용자가 직접 다양한 플랫폼에 포팅할 수 있도록 소스를 제공하고 있습니다.

    download DXL_SDK_Porting_ v1_01.zip

    소스 구조

    포팅방법

    포팅을 하려면 플랫폼에 맞게 아래의 함수를 구현해야 합니다.

    dxl_hal_open

    실제로 제어기의 통신장치를 초기화시켜서 사용 가능하도록 만들어주는 루틴을 구현합니다. dxl_initialize는 이 함수를 통해 제어기의 통신장치를 활성화시킵니다.

    int dxl_hal_open(
         int devIndex ,
         float baudrate
      )
    

    Parameters

    Return Values

    dxl_hal_close

    제어기의 통신장치를 종료시켜서 다른 응용 프로그램이 사용할 수 있도록 만들어주는 루틴을 구현합니다. dxl_terminate는 이 함수를 통해 제어기의 통신장치를 종료시킵니다.

    void dxl_hal_close()
    

    Parameters

    Return Values

    dxl_hal_clear

    제어기 통신장치의 수신 버퍼를 모두 비워주는 루틴을 구현합니다.

    void dxl_hal_clear()
    

    Parameters

    Return Values

    dxl_hal_rx

    제어기 통신장치의 수신 버퍼로부터 Packet을 꺼내오는 루틴을 구현합니다.

    dxl_rx_packet은 이 함수를 사용해서 수신된 데이터를 꺼내온 후 Status packet을 만들어냅니다.

    Parameters

    Return Values

    dxl_hal_tx

    제어기의 통신장치를 통해 Packet을 송신하는 루틴을 구현합니다. dxl_tx_packet은 Instruction packet을 이 함수를 통해서 다이나믹셀로 전송합니다.

    int dxl_hal_tx(
        unsigned char *pPacket,
        int numPacket
    )
    

    Parameters

    Return Values

    dxl_hal_set_timeout

    다이나믹셀로부터 응답을 기다리기 위해서는 제한된 시간이 지나면 Timeout을 알 수 있는 메커니즘이 필요합니다. 이 함수는 마치 Stopwatch처럼 응답을 기다리는 시작 시간을 설정하는 역할을 합니다. 인자로 기다릴 데이터의 Byte수를 입력 받아서 실제 Baud rate에 기반하여 기다릴 시간을 계산한 뒤 시작 시간을 설정합니다.

    void dxl_hal_set_timeout (
         int NumRcvByte
    )
    

    Parameters

    Return Values

    dxl_hal_timeout

    이 함수는 dxl_hal_set_timeout으로 설정된 시작 시간을 기반으로 기다릴 시간이 지났는지 확인합니다.

    int dxl_hal_timeout()
    

    Parameters

    Return Values