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

1 つの投稿 / 0 new
root
オフライン
Last seen: 1日 2時間 前
登録日: 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

未定義

ダウンロード

最新バージョン : 2.1.0-RELESE

統計

Webサイト統計
ユーザ数:3399
プロジェクト統計
RTコンポーネント309
RTミドルウエア35
ツール25
文書・仕様書2

OpenRTM@Github

OpenRTM-aist GitHubサイト

ROS

Robot Operating System

Choreonoid

モーションエディタ/シミュレータ

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

産総研が提供するRTC集

東京オープンソースロボティクス協会