Fawkes API
Fawkes Development Version
|
The backend thread of the worldinfo viewer application. More...
#include <tools/worldinfo_viewer/backend_thread.h>
Public Member Functions | |
WorldInfoViewerBackendThread (fawkes::WorldInfoDataContainer *data_container, const char *addr, unsigned short port, const char *key, const char *iv) | |
Constructor. | |
virtual | ~WorldInfoViewerBackendThread () |
Destructor. | |
Glib::Dispatcher & | new_worldinfo_data () |
Access the dispatcher that is emitted whenever new data has arrived. | |
Glib::Dispatcher & | new_gamestate_data () |
Access the dispatcher that is emitted whenever new game state data has arrived. | |
void | loop () |
Code to execute in the thread. | |
virtual void | pose_rcvd (const char *from_host, float x, float y, float theta, float *covariance) |
Pose information received. | |
virtual void | velocity_rcvd (const char *from_host, float vel_x, float vel_y, float vel_theta, float *covariance) |
Robot velocity information received. | |
virtual void | ball_pos_rcvd (const char *from_host, bool visible, int visibility_history, float dist, float pitch, float yaw, float *covariance) |
Ball position information received. | |
virtual void | global_ball_pos_rcvd (const char *from_host, bool visible, int visibility_history, float x, float y, float z, float *covariance) |
Global ball position information received. | |
virtual void | ball_velocity_rcvd (const char *from_host, float vel_x, float vel_y, float vel_z, float *covariance) |
Ball velocity information received. | |
virtual void | global_ball_velocity_rcvd (const char *from_host, float vel_x, float vel_y, float vel_z, float *covariance) |
Ball velocity information received. | |
virtual void | opponent_pose_rcvd (const char *from_host, unsigned int uid, float distance, float angle, float *covarianceconst) |
Opponent information received. | |
virtual void | opponent_disapp_rcvd (const char *from_host, unsigned int uid) |
Opponent disappeared. | |
virtual void | gamestate_rcvd (const char *from_host, unsigned int game_state, fawkes::worldinfo_gamestate_team_t state_team, unsigned int score_cyan, unsigned int score_magenta, fawkes::worldinfo_gamestate_team_t our_team, fawkes::worldinfo_gamestate_goalcolor_t our_goal_color, fawkes::worldinfo_gamestate_half_t half) |
Gamestate information received. | |
virtual void | penalty_rcvd (const char *from_host, unsigned int player, unsigned int penalty, unsigned int seconds_remaining) |
Penalty info received. | |
![]() | |
virtual | ~Thread () |
Virtual destructor. | |
virtual void | init () |
Initialize the thread. | |
bool | prepare_finalize () |
Prepare finalization. | |
virtual bool | prepare_finalize_user () |
Prepare finalization user implementation. | |
virtual void | finalize () |
Finalize the thread. | |
void | cancel_finalize () |
Cancel finalization. | |
void | start (bool wait=true) |
Call this method to start the thread. | |
void | cancel () |
Cancel a thread. | |
void | join () |
Join the thread. | |
void | detach () |
Detach the thread. | |
void | kill (int sig) |
Send signal to a thread. | |
bool | operator== (const Thread &thread) |
Check if two threads are the same. | |
void | wakeup () |
Wake up thread. | |
void | wakeup (Barrier *barrier) |
Wake up thread and wait for barrier afterwards. | |
void | wait_loop_done () |
Wait for the current loop iteration to finish. | |
OpMode | opmode () const |
Get operation mode. | |
pthread_t | thread_id () const |
Get ID of thread. | |
bool | started () const |
Check if thread has been started. | |
bool | cancelled () const |
Check if thread has been cancelled. | |
bool | detached () const |
Check if thread has been detached. | |
bool | running () const |
Check if the thread is running. | |
bool | waiting () const |
Check if thread is currently waiting for wakeup. | |
const char * | name () const |
Get name of thread. | |
void | set_flags (uint32_t flags) |
Set all flags in one go. | |
void | set_flag (uint32_t flag) |
Set flag for the thread. | |
void | unset_flag (uint32_t flag) |
Unset flag. | |
bool | flagged_bad () const |
Check if FLAG_BAD was set. | |
void | set_delete_on_exit (bool del) |
Set whether the thread should be deleted on exit. | |
void | set_prepfin_hold (bool hold) |
Hold prepare_finalize(). | |
void | add_notification_listener (ThreadNotificationListener *notification_listener) |
Add notification listener. | |
void | remove_notification_listener (ThreadNotificationListener *notification_listener) |
Remove notification listener. | |
![]() | |
virtual | ~WorldInfoHandler () |
Virtual empty destructor. |
Additional Inherited Members | |
![]() | |
enum | OpMode { OPMODE_CONTINUOUS, OPMODE_WAITFORWAKEUP } |
Thread operation mode. More... | |
enum | CancelState { CANCEL_ENABLED, CANCEL_DISABLED } |
Cancel state. More... | |
![]() | |
static Thread * | current_thread () |
Get the Thread instance of the currently running thread. | |
static Thread * | current_thread_noexc () throw () |
Similar to current_thread, but does never throw an exception. | |
static pthread_t | current_thread_id () |
Get the ID of the currently running thread. | |
static void | init_main () |
Initialize Thread wrapper instance for main thread. | |
static void | destroy_main () |
Destroy main thread wrapper instance. | |
static void | set_cancel_state (CancelState new_state, CancelState *old_state=0) |
Set the cancel state of the current thread. | |
![]() | |
static const unsigned int | FLAG_BAD = 0x00000001 |
Standard thread flag: "thread is bad". | |
![]() | |
Thread (const char *name) | |
Constructor. | |
Thread (const char *name, OpMode op_mode) | |
Constructor. | |
void | exit () |
Exit the thread. | |
void | test_cancel () |
Set cancellation point. | |
void | yield () |
Yield the processor to another thread or process. | |
virtual void | run () |
Code to execute in the thread. | |
void | set_opmode (OpMode op_mode) |
Set operation mode. | |
void | set_prepfin_conc_loop (bool concurrent=true) |
Set concurrent execution of prepare_finalize() and loop(). | |
void | set_coalesce_wakeups (bool coalesce=true) |
Set wakeup coalescing. | |
void | set_name (const char *format,...) |
Set name of thread. | |
virtual void | once () |
Execute an action exactly once. | |
bool | wakeup_pending () |
Check if wakeups are pending. | |
![]() | |
bool | finalize_prepared |
True if prepare_finalize() has been called and was not stopped with a cancel_finalize(), false otherwise. | |
Mutex * | loop_mutex |
Mutex that is used to protect a call to loop(). | |
Mutex * | loopinterrupt_antistarve_mutex |
Mutex to avoid starvation when trying to lock loop_mutex. |
The backend thread of the worldinfo viewer application.
Definition at line 39 of file backend_thread.h.
WorldInfoViewerBackendThread::WorldInfoViewerBackendThread | ( | fawkes::WorldInfoDataContainer * | data_container, |
const char * | addr, | ||
unsigned short | port, | ||
const char * | key, | ||
const char * | iv | ||
) |
Constructor.
data_container | pointer to the central instance of the WorldInfoDataContainer |
addr | multicast address to use for worldinfo communication |
port | port |
key | de-/encryption key |
iv | initialization vector for de-/encryption |
Definition at line 42 of file backend_thread.cpp.
References fawkes::WorldInfoTransceiver::add_handler(), and fawkes::Thread::start().
|
virtual |
Destructor.
Definition at line 71 of file backend_thread.cpp.
References fawkes::Thread::cancel(), and fawkes::Thread::join().
|
virtual |
Ball position information received.
from_host | transmitting host of this information, if available symbolic name |
visible | true if ball is visible, false otherwise. If the ball is not visible the given position is the last known position and may be invalid. Use visibility history to decide whether you expect useful data. |
visibility_history | Ball visibility history. |
dist | distance to ball in meters |
bearing | bearing angle to ball |
slope | slope angle to ball |
covariance | covariance matrix with 9 entries, ordered as three concatenated rows (first row, three floats, second row, three floats, third row, three floats). |
Implements fawkes::WorldInfoHandler.
Definition at line 143 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::set_ball_pos().
|
virtual |
Ball velocity information received.
from_host | transmitting host of this information, if available symbolic name |
vel_x | velocity in x direction |
vel_y | velocity in y direction |
vel_z | velocity in z direction |
covariance | covariance matrix with 9 entries, ordered as three concatenated rows (first row, three floats, second row, three floats, third row, three floats). |
Implements fawkes::WorldInfoHandler.
Definition at line 187 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::set_ball_velocity().
|
virtual |
Gamestate information received.
from_host | transmitting host of this information, if available symbolic name |
game_state | current gamestate |
state_team | team related to the game state |
score_cyan | current score of team cyan |
score_magenta | current score of team magenta |
our_team | our team color |
our_goal_color | our goal color |
half | current half of the game, first or second |
Implements fawkes::WorldInfoHandler.
Definition at line 240 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::set_game_state().
|
virtual |
Global ball position information received.
from_host | transmitting host of this information, if available symbolic name |
visible | true if ball is visible, false otherwise. If the ball is not visible the given position is the last known position and may be invalid. Use visibility history to decide whether you expect useful data. |
visibility_history | Ball visibility history. |
x | global x-coordinates of the ball |
y | global y-coordinates of the ball |
z | global z-coordinates of the ball |
covariance | covariance matrix with 9 entries, ordered as three concatenated rows (first row, three floats, second row, three floats, third row, three floats). |
Implements fawkes::WorldInfoHandler.
Definition at line 165 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::set_ball_pos_global().
|
virtual |
Ball velocity information received.
from_host | transmitting host of this information, if available symbolic name |
vel_x | velocity in x direction |
vel_y | velocity in y direction |
vel_z | velocity in z direction |
covariance | covariance matrix with 9 entries, ordered as three concatenated rows (first row, three floats, second row, three floats, third row, three floats). |
Implements fawkes::WorldInfoHandler.
Definition at line 199 of file backend_thread.cpp.
|
virtual |
Code to execute in the thread.
Implement this method to hold the code you want to be executed continously. If you do not implement this method, the default is that the thread will exit. This is useful if you choose to only implement once().
Reimplemented from fawkes::Thread.
Definition at line 102 of file backend_thread.cpp.
References fawkes::WorldInfoTransceiver::flush_sequence_numbers(), and fawkes::WorldInfoTransceiver::recv().
Glib::Dispatcher & WorldInfoViewerBackendThread::new_gamestate_data | ( | ) |
Access the dispatcher that is emitted whenever new game state data has arrived.
Definition at line 96 of file backend_thread.cpp.
Glib::Dispatcher & WorldInfoViewerBackendThread::new_worldinfo_data | ( | ) |
Access the dispatcher that is emitted whenever new data has arrived.
Definition at line 86 of file backend_thread.cpp.
|
virtual |
Opponent disappeared.
from_host | transmitting host of this information, if available symbolic name |
uid | unique ID of the opponent |
Implements fawkes::WorldInfoHandler.
Definition at line 231 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::opponent_disappeared().
|
virtual |
Opponent information received.
from_host | transmitting host of this information, if available symbolic name |
uid | unique ID of the opponent |
distance | to opponent |
bearing | bearing to opponent (angle is zero if opponent is in front of robot, positive if right of robot, negative if left of robot). |
covariance | covariance matrix with 4 entries, ordered as two concatenated rows (first row, two floats, second row, two floats) |
Implements fawkes::WorldInfoHandler.
Definition at line 214 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::set_opponent_pos().
|
virtual |
Penalty info received.
from_host | transmitting host of this information, if available symbolic name |
player | player number for penalty info |
penalty | penalty code |
seconds_remaining | time in seconds when penalty is expected to be lifted |
Implements fawkes::WorldInfoHandler.
Definition at line 260 of file backend_thread.cpp.
|
virtual |
Pose information received.
from_host | transmitting host of this information, if available symbolic name |
x | x position |
y | y position |
theta | rotation of the robot |
covariance | covariance matrix, line-wise float array |
Implements fawkes::WorldInfoHandler.
Definition at line 110 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::set_robot_pose().
|
virtual |
Robot velocity information received.
from_host | transmitting host of this information, if available symbolic name |
vel_x | velocity in x direction |
vel_y | velocity in y direction |
vel_theta | rotational velocity, positive velocity means clockwise rotation, negative velocity means counter-clockwise. |
covariance | covariance matrix with 9 entries, ordered as three concatenated rows (first row, three floats, second row, three floats, third row, three floats). |
Implements fawkes::WorldInfoHandler.
Definition at line 126 of file backend_thread.cpp.
References fawkes::WorldInfoDataContainer::set_robot_velocity().