Ignore:
Timestamp:
08/29/12 16:52:22 (12 years ago)
Author:
wcaarls
Message:

Updated shared_serial to revision 1017

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/shared_serial/include/shared_serial/client.h

    r8 r12  
    44#include <ros/ros.h>
    55
     6/// shared_serial client interface class.
    67class SerialClient
    78{
    89  protected:
    9     ros::NodeHandle nh_;
    10     ros::ServiceClient connect_service_;
    11     ros::ServiceClient sendto_service_;
    12     ros::ServiceClient recv_service_;
    13     ros::ServiceClient sendrecv_service_;
    14     ros::Publisher     send_topic_;
    15     ros::Publisher     close_topic_;
    16     ros::Publisher     flush_topic_;
     10    ros::NodeHandle nh_;                  ///< ROS node handle.
     11    ros::ServiceClient connect_service_;  ///< Service client for connect function.
     12    ros::ServiceClient sendto_service_;   ///< Service client for sendto function.
     13    ros::ServiceClient recv_service_;     ///< Service client for recv function.
     14    ros::ServiceClient sendrecv_service_; ///< Service client for sendrecv function.
     15    ros::Publisher     send_topic_;       ///< Publisher for send function.
     16    ros::Publisher     close_topic_;      ///< Published for close function.
     17    ros::Publisher     flush_topic_;      ///< Publisher for flush function.
    1718
    1819  public:
     20    /// Initialize interface.
     21    /** \param path Path to server node. */
    1922    void init(const char *path="/comm");
    2023
     24    /// Lock serial port.
     25    /**
     26     * \param timeout Lock time in [s]
     27     * \returns Socket identifier.
     28     */
    2129    int connect(float timeout);
     30   
     31    /// Send data over serial port.
     32    /**
     33     * \param socket Socket identifier (when 0, the port is locked first).
     34     * \param data Data to send.
     35     * \param length Length of \c data parameter.
     36     * \param timeout Lock time in [s].
     37     * \returns Socket identifier.
     38     */
    2239    int sendto(int socket, const unsigned char *data, size_t length, float timeout);
     40   
     41    /// Receive data from serial port.
     42    /**
     43     * \param sock Socket identifier (when 0, the port is locked first).
     44     * \param length Length of data to receive.
     45     * \param recv_timeout Time to wait for data in [s].
     46     * \param sock_timeout Lock time in [s].
     47     * \param data Data buffer, at least \c length bytes long.
     48     * \param[out] data_length Number of bytes received.
     49     * \returns Socket identifier.
     50     */
    2351    int recv(int socket, int length, float recv_timeout, float sock_timeout, unsigned char *data, size_t *data_length);
     52   
     53    /// Coalesced send and receive.
     54    /**
     55     * \param socket Socket identifier (when 0, the port is locked first).
     56     * \param send_data Data to send.
     57     * \param send_length Length of \c send_data parameter in bytes.
     58     * \param recv_length Length of data to receive.
     59     * \param recv_timeout Time to wait for data in [s].
     60     * \param sock_timeout Lock time in [s].
     61     * \param recv_data Receive data buffer, at least \c recv_length bytes long.
     62     * \param[out] recv_data_length Number of bytes received.
     63     * \returns Socket identifier.
     64     */
    2465    int sendrecv(int socket, const unsigned char *send_data, size_t send_length, size_t recv_length, float recv_timeout, float sock_timeout, unsigned char *recv_data, size_t *recv_data_length);
     66   
     67    /// Send data over already locked serial port.
     68    /**
     69     * \param socket Socket identifier.
     70     * \param data Data to send.
     71     * \param length Length of \c data parameter in bytes.
     72     * \param timeout Lock time in [s].
     73     * \note This function is asynchronous.
     74     */
    2575    void send(int socket, const unsigned char *data, size_t length, float timeout);
     76   
     77    /// Unlock serial port.
     78    /**
     79     * \param socket Socket identifier.
     80     * \note This function is asynchronous.
     81     */
    2682    void close(int socket);
     83   
     84    /// Flush serial port.
     85    /**
     86     * \param socket Socket identifier.
     87     * \param timeout Lock time in [s].
     88     * \note This function is asynchronous.
     89     */
    2790    void flush(int socket, float timeout);
    2891};
Note: See TracChangeset for help on using the changeset viewer.