[openrtm-users 00756] Java版のPeriodicContextのバグについて

1 post / 0 new
root
Offline
Last seen: 9 hours 17 min ago
Joined: 2009-06-23 14:31
[openrtm-users 00756] Java版のPeriodicContextのバグについて

OpenRTM-aistユーザの皆様:
早稲田の菅です.
お世話になっております.

Java版(ver. 0.4.1)のバグについてお知らせしたくメールを差し上げました.
該当箇所はjp.go.aist.rtm.RTC.executionContextパッケージの
PeriodicExecutionContextクラス内で,
int svc()というメソッドです.

旧コードでは,Thread.sleep(long, int)に対して,

Thread.sleep(0, (int)tv.getUsec()); (単位はマイクロ秒)

のような呼び出しが行われていますが,これは誤りで,
第1引数,第2引数に正しくは,
ミリ秒(long型),ナノ秒(int型)を入れます.

このせいで,正しい実行周期で実行できないばかりか,
periodic.rateに1.0などを入れると,
桁あふれを起こして実行すらできません.

旧コードと正しいコードを両方乗せます.

//////////////旧コード///////////////////
/**
* ExecutionContext用のスレッドの実行関数です。
* 登録されたコンポーネントの処理を呼び出します。
*/
public int svc() {
do {
TimeValue tv = new TimeValue(0, m_usec); // (s, us)
for(int intIdx=0;intIdxExecutionContext用のスレッドの実行関数です。
* 登録されたコンポーネントの処理を呼び出します。
*/
public int svc() {
do {
TimeValue tv = new TimeValue(0, m_usec); // (s, us)
long millisec = m_usec / 1000;
int nanosec = (int)((m_usec % 1000) * 1000);
for(int intIdx=0;intIdx

Undefined

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK