JV-Link 質問箱 |
タイトル | : 速報系情報取得(JVRTOpen)における、パラメータ取得方法について |
記事No | : 7024 |
投稿日 | : 2022/11/29(Tue) 00:24 |
投稿者 | : 1484 |
|
お手数おかけします、ご回答頂けますと幸いでございます。
JV-Linkを使って、JVRTOpenメソッドで速報系のデータを取得するプログラムを書いているのですが、
JVRTOpen に渡すためのパラメータについて、(払戻確定など)Dataspec別で2パターンあると思うのですが、 「YYYYMMDDJJRR」 「TTYYYYMMDDJJRRNNNNNNNNNNNNNN」 後者について、とある一日(例:20221127)の当該パラメータの一覧を取得する手段はありますでしょうか。
前者については、上記データフォーマットに合わせてレースごとのパラメータを作り、JVRTOpen実行すれば(レースごと払い戻し情報などが)取得できることが確認できているのですが、 後者は実行に必要なパラメータについて、NNNNNNNNNNNNNN部の取得ができていない現状です。
DataLab検証ツール.速報系.変更情報にて、年月日情報を設定して「パラメータ取得」押下すると、 別window「変更情報一覧」にて、当該日の変更情報の一覧が取得できています。 …上記一覧情報を取得したく、当該ツールで出来ているということは、JV-Link操作にて個別実装も可能なのであろう前提認識です(相違あれば申し訳ございません)
…JVWatchEventを使えばよいのでしょうか。 VBのサンプルコードがありますが、当方VBは疎く、、別コードで試行錯誤しているのですが、 メソッドとしての戻り値:0だけしか取得してくることができないまま、立ち止まってしまっており。。 …VB以外で実装/実働確認が取れている言語等、ご存じの方がいらっしゃれば、重ねてご教示頂けると幸甚です(当方都合においては、できるならpython、次点c#での実装ができるとうれしい次第です) ※もしくは、当該処理が、JVLinkモジュールの仕様の問題なのか、(WithEvents等)VBに依存した書き方なのか、がわかるのでも大変有難いです。。
以上、記載に不足等ありましたら、その旨ご教示頂けると幸いです。 お手数おかけし大変恐縮ではございますが、何卒宜しくお願い致します。 |
|
タイトル | : Re: 速報系情報取得(JVRTOpen)における、パラメータ取得方法について |
記事No | : 7025 |
投稿日 | : 2022/11/29(Tue) 08:04 |
投稿者 | : Tachyon |
|
ただ単に全変更情報が必要なのであれば、データ種別ID:0B14【速報開催情報(一 括)】、YYYYMMDD【開催日単位】でJVRTOpen後、JVReadを繰返せば取得できます 。
変更イベント毎に情報を取得する必要があるのであれば、イベントを監視し引 き渡されるパラメータをkeyとしてJVRTOpenを行う必要があります。
C#でのイベント監視の記述例として、下記に示します。
private JVLinkClass clsJVLink = new JVLinkClass();
private void Form1_Load(object sender, EventArgs e) { // 各イベント時の処理定義 clsJVLink.JVEvtPay += DoJVEvtPay; clsJVLink.JVEvtJockeyChange += DoJVEvtJockeyChange; clsJVLink.JVEvtWeather += DoJVEvtWeather; clsJVLink.JVEvtCourseChange += DoJVEvtCourseChange; clsJVLink.JVEvtAvoid += DoJVEvtAvoid; clsJVLink.JVEvtTimeChange += DoJVEvtTimeChange; clsJVLink.JVEvtWeight += DoJVEvtWeight; // イベント監視開始 int intRet = clsJVLink.JVInit("UNKOWN"); if (intRet == 0) intRet = clsJVLink.JVWatchEvent(); }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { // イベント監視終了 int intRet = clsJVLink.JVWatchEventClose(); }
private void DoJVEvtPay(string bstr) { // 払戻確定時の処理を追加 int intRet = clsJVLink.JVRTOpen("0B12", bstr); (中略) }
private void DoJVEvtJockeyChange(string bstr) { // 騎手変更時の処理を追加 }
private void DoJVEvtWeather(string bstr) { // 天候馬場状態変更時の処理を追加 }
private void DoJVEvtCourseChange(string bstr) { // コース変更時の処理を追加 }
private void DoJVEvtAvoid(string bstr) { // 出走取消・競走除外時の処理を追加 }
private void DoJVEvtTimeChange(string bstr) { // 発走時刻変更時の処理を追加 }
private void DoJVEvtWeight(string bstr) { // 馬体重発表時の処理を追加 }
ご参考まで。 |
|
タイトル | : Re^2: 速報系情報取得(JVRTOpen)における、パラメータ取得方法について |
記事No | : 7026 |
投稿日 | : 2022/11/29(Tue) 15:50 |
投稿者 | : 1484 |
|
早速のご教示ありがとうございます!
JVRTOpenにて、YYYYMMDD・'0B14'指定で、欲しいデータが問題なく 取得できました。 …0B14というデータIDの存在を正しく認識できておりませんでした。。 …JVData仕様書の読込みが足りておらず、、しっかり目を通しておきたいと 思います。。
イベント監視のサンプルコードについても、ありがとうございます! 参考にさせて頂いた上で、当該メソッド(JVWatchEvent)か、'0B14' 指定でのJVRTOpenメソッドがよいか、考えていければと思っています。
お手数おかけし、大変失礼いたしました。 重ね重ねありがとうございました。 |
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|