2016-04-27 13 views
0

initRoadPDPメソッド内の時刻を知りたい(Depotクラスから継承)。これは私のクラスのフィールドとしてSimulatorオブジェクトを挿入することなく可能ですか?RinSim 4.1.0でシミュレータの時間を取得する方法は?

class MyDepot extends Depot { 

    @Override 
    public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { 
    // how to know the current time? 
    } 
} 
+0

あなたはより多くのコード –

+0

を追加してもらえますがRinSimに精通していますか?これはRinSimユーザーに固有の質問です。 (彼らのgithubによると、[RinSim](https://github.com/rinde/rinsim)に関する質問はstackoverflowで尋ねるべきです)。 RinSimについて知っていれば、この質問は十分にはっきりしていると思います。 (私はそれをタグ付けしなければならなかったので、私はjavaでタグ付けしました...) – entropitor

答えて

0

initRoadPDP(..)方法は、MyDepotの初期化フェーズ中に呼び出されます。これはシミュレータにDepotが追加された時点で発生します。シミュレータには、通常、シミュレーション時間が開始される前にデポが表示されます。

時間の進捗状況を通知する標準的な方法は、TickListenerインターフェイスを実装することです。このインターフェイスでは、時間を追跡するだけでなく、受信したTimeLapseオブジェクトを使用して、時間のかかる処理を実行できます。しかし、受信した最初のティックは常にinitRoadPDPへの呼び出しの後であるため、この方法はこの場合には適していない可能性があります。いずれの場合においても

TickListenerを使用するためのコードは次のようになります。

class MyDepot extends Depot implements TickListener { 
    public MyDepot(Point position) { 
     super(position); 
    } 

    @Override 
    public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { 
     // how to know the current time? 
    } 

    @Override 
    public void tick(TimeLapse timeLapse) { 
     timeLapse.getTime(); // current time 
    } 

    @Override 
    public void afterTick(TimeLapse timeLapse) {} 
} 
関連する問題