-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add both versions of FRI sdk, configurable in cmake
- Loading branch information
Showing
92 changed files
with
12,614 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
152 changes: 152 additions & 0 deletions
152
kuka_sunrise_fri_driver/include/FRI_v1_5/fri_client_sdk/friClientApplication.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
/** | ||
The following license terms and conditions apply, unless a redistribution | ||
agreement or other license is obtained by KUKA Roboter GmbH, Augsburg, Germany. | ||
SCOPE | ||
The software "KUKA Sunrise.Connectivity FRI Client SDK" is targeted to work in | ||
conjunction with the "KUKA Sunrise.Connectivity FastRobotInterface" toolkit. | ||
In the following, the term "software" refers to all material directly | ||
belonging to the provided SDK "Software development kit", particularly source | ||
code, libraries, binaries, manuals and technical documentation. | ||
COPYRIGHT | ||
All Rights Reserved | ||
Copyright (C) 2014-2019 | ||
KUKA Roboter GmbH | ||
Augsburg, Germany | ||
LICENSE | ||
Redistribution and use of the software in source and binary forms, with or | ||
without modification, are permitted provided that the following conditions are | ||
met: | ||
a) The software is used in conjunction with KUKA products only. | ||
b) Redistributions of source code must retain the above copyright notice, this | ||
list of conditions and the disclaimer. | ||
c) Redistributions in binary form must reproduce the above copyright notice, | ||
this list of conditions and the disclaimer in the documentation and/or other | ||
materials provided with the distribution. Altered source code of the | ||
redistribution must be made available upon request with the distribution. | ||
d) Modification and contributions to the original software provided by KUKA | ||
must be clearly marked and the authorship must be stated. | ||
e) Neither the name of KUKA nor the trademarks owned by KUKA may be used to | ||
endorse or promote products derived from this software without specific prior | ||
written permission. | ||
DISCLAIMER OF WARRANTY | ||
The Software is provided "AS IS" and "WITH ALL FAULTS," without warranty of | ||
any kind, including without limitation the warranties of merchantability, | ||
fitness for a particular purpose and non-infringement. | ||
KUKA makes no warranty that the Software is free of defects or is suitable for | ||
any particular purpose. In no event shall KUKA be responsible for loss or | ||
damages arising from the installation or use of the Software, including but | ||
not limited to any indirect, punitive, special, incidental or consequential | ||
damages of any character including, without limitation, damages for loss of | ||
goodwill, work stoppage, computer failure or malfunction, or any and all other | ||
commercial damages or losses. | ||
The entire risk to the quality and performance of the Software is not borne by | ||
KUKA. Should the Software prove defective, KUKA is not liable for the entire | ||
cost of any service and repair. | ||
\file | ||
\version {1.15} | ||
*/ | ||
|
||
#ifndef _KUKA_FRI_CLIENT_APPLICATION_H | ||
#define _KUKA_FRI_CLIENT_APPLICATION_H | ||
|
||
/** Kuka namespace */ | ||
namespace KUKA | ||
{ | ||
/** Fast Robot Interface (FRI) namespace */ | ||
namespace FRI | ||
{ | ||
|
||
// forward declarations | ||
class IClient; | ||
class TransformationClient; | ||
class IConnection; | ||
struct ClientData; | ||
|
||
/** | ||
* \brief FRI client application class. | ||
* | ||
* A client application takes an instance of the IConnection interface and | ||
* an instance of an IClient interface to provide the functionality | ||
* needed to set up an FRI client application. It can be used to easily | ||
* integrate the FRI client code within other applications. | ||
* The algorithmic functionality of an FRI client application is implemented | ||
* using the IClient interface. | ||
*/ | ||
class ClientApplication | ||
{ | ||
|
||
public: | ||
/** | ||
* \brief Constructor without transformation client. | ||
* | ||
* This constructor takes an instance of the IConnection interface and | ||
* an instance of the IClient interface as parameters. | ||
* @param connection FRI connection class | ||
* @param client FRI client class | ||
*/ | ||
ClientApplication(IConnection & connection, IClient & client); | ||
|
||
/** | ||
* \brief Constructor with transformation client. | ||
* | ||
* This constructor takes an instance of the IConnection interface and | ||
* an instance of the IClient interface and an instance of a | ||
* TransformationClient as parameters. | ||
* @param connection FRI connection class | ||
* @param client FRI client class | ||
* @param trafoClient FRI transformation client class | ||
*/ | ||
ClientApplication(IConnection & connection, IClient & client, TransformationClient & trafoClient); | ||
|
||
/** \brief Destructor. */ | ||
~ClientApplication(); | ||
|
||
/** | ||
* \brief Connect the FRI client application with a KUKA Sunrise controller. | ||
* | ||
* @param port The port ID | ||
* @param remoteHost The address of the remote host | ||
* @return True if connection was established | ||
*/ | ||
bool connect(int port, const char * remoteHost = NULL); | ||
|
||
/** | ||
* \brief Disconnect the FRI client application from a KUKA Sunrise controller. | ||
*/ | ||
void disconnect(); | ||
|
||
/** | ||
* \brief Run a single processing step. | ||
* | ||
* The processing step consists of receiving a new FRI monitoring message, | ||
* calling the corresponding client callback and sending the resulting | ||
* FRI command message back to the KUKA Sunrise controller. | ||
* @return True if all of the substeps succeeded. | ||
*/ | ||
bool step(); | ||
|
||
protected: | ||
IConnection & _connection; //!< connection interface | ||
IClient * _robotClient; //!< robot client interface | ||
TransformationClient * _trafoClient; //!< transformation client interface | ||
ClientData * _data; //!< client data structure (for internal use) | ||
|
||
}; | ||
|
||
} | ||
} | ||
|
||
|
||
#endif // _KUKA_FRI_CLIENT_APPLICATION_H |
Oops, something went wrong.