nextage-open.hpp
Go to the documentation of this file.
00001 /*
00002  * nextage-open.hpp
00003  *
00004  * Copyright (C) 2014 by Kawada Industries, Inc. and Kawada Robotics Corp.
00005  *
00006  * Copying and distribution of this file AS IS are permitted.
00007  * Distribution of any derivative or modified version of this file is NOT permitted.
00008  */
00009 
00016 #ifndef _NEXTAGE_OPEN_HPP_
00017 #define _NEXTAGE_OPEN_HPP_
00018 
00019 #include <unistd.h> // pid_t
00020 
00021 
00022 namespace NEXTAGE_OPEN
00023 {
00024     class OpenIFv10; // for ver 1.0
00025     
00026     extern "C" bool nextage_open_supported(const char *version);
00027     extern "C" OpenIFv10 *nextage_open_getIFv10(void);
00028     
00029     class OpenIFv10 {
00030     public:
00031         virtual ~OpenIFv10() {}
00032         virtual int open_iob(void) = 0;
00033         virtual int close_iob(void) = 0;
00034         
00035         //virtual int number_of_joints(void) = 0; // hardcoded at iob.cpp for NEXTAGE OPEN,
00036                                                   // because this might be calld before open_iob().
00037         virtual int read_actual_angle(int id, double *angle) = 0;
00038         virtual int read_actual_angles(double *angles) = 0;
00039         
00040         virtual int read_power_state(int id, int *s) = 0;
00041         virtual int write_power_command(int id, int com) = 0;
00042         virtual int read_power_command(int id, int *com) = 0;
00043         virtual int read_servo_state(int id, int *s) = 0;
00044         virtual int read_servo_alarm(int id, int *a) = 0;
00045         
00046         virtual int read_command_angle(int id, double *angle) = 0;
00047         virtual int read_command_angles(double *angles) = 0;
00048         virtual int write_command_angle(int id, double angle) = 0;
00049         virtual int write_command_angles(const double *angles) = 0;
00050         virtual int write_servo(int id, int com) = 0;
00051         virtual int read_driver_temperature(int id, unsigned char *v) = 0;
00052         virtual int read_calib_state(int id, int *s) = 0;
00053         virtual int read_power(double *voltage, double *current) = 0;
00054         virtual int reset_body(void) = 0;
00055         virtual int lock_iob(void) = 0;
00056         virtual int unlock_iob(void) = 0;
00057         virtual int read_lock_owner(pid_t *pid) = 0;
00058         virtual unsigned long long read_iob_frame(void) = 0;
00059         virtual int number_of_substeps(void) = 0;
00060         virtual int wait_for_iob_signal(void) = 0;
00061         virtual long get_signal_period(void) = 0;
00062         
00063         
00064         virtual int initializeJointAngle(const char *name, const char *option) = 0;
00065         virtual int read_digital_input(char *dIn) = 0;
00066         virtual int length_digital_input(void) = 0;
00067         virtual int write_digital_output(const char *doutput) = 0;
00068         virtual int write_digital_output_with_mask(const char *doutput, const char *mask) = 0;
00069         virtual int length_digital_output(void) = 0;
00070         virtual int read_digital_output(char *doutput) = 0;
00071     };
00072 
00073 }
00074 
00075 #endif // _NEXTAGE_OPEN_HPP_
00076 
00077 // Emacs Settings
00078 // Local Variables:
00079 //  mode: c++
00080 //  mode: outline-minor
00081 //  tab-width: 4
00082 //  indent-tabs-mode: nil
00083 //  c-basic-offset: 4
00084 // End:


hironx_ros_bridge
Author(s): Kei Okada , Isaac I.Y. Saito
autogenerated on Thu Feb 21 2019 03:42:37