工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

windowsでlibusbを使う

概要

Windows PC上で、libusbを使ったC言語プログラムをビルドして、動かした。


背景と目的

Windows PC上で、libusbを使いたいので、方法をメモる。


詳細

参考

0. 環境


1. MinGWをダウンロード、インストール

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download


2. libusbをダウンロード、インストール

2.1 ダウンロード

https://github.com/libusb/libusb

バイナリを落とす。githubソースコードではない。

2.2 インストール

VS2019のdllを使うので、VS2019/MS64/dll/libusb-1.0.dllを以下のフォルダにコピーする。 これで、出来上がった実行ファイルがlibusb-1.0.dllを参照できる。

C:\Windows\System32


3. コンパイルしてみる

3.1 ソースコード

https://sites.google.com/site/memomuteki/tinylinux/linuxdepentabumojuruwozuochengshiyou

上記を参考に、使うものに合わせて編集。 PC側からの送信に使うエンドポイントアドレスがあるデバイスなので、そのアドレスでlibusb_interrupt_transfer関数を使って送信。

#define VID 0x**** // 使用するものに合わせる
#define PID 0x**** // 使用するものに合わせる
#define INTF_NUM 0
#define EP_ADDR 0x81
#define EP_ADDR2 0x01 // PC側からの送信に使うエンドポイントアドレス
#define MAX_PACKET_SIZE 64 // 変更

:

        // libusb_set_auto_detach_kernel_driver() failed: LIBUSB_ERROR_NOT_SUPPORTEDと出るのでコメントアウト
    // r = libusb_set_auto_detach_kernel_driver(handle, TRUE);
    // if (r != LIBUSB_SUCCESS) {
    //  printf("libusb_set_auto_detach_kernel_driver() failed: %s\n", libusb_error_name(r));
    //  goto exit;
    // }

:

    // 送信用にコードを追加
    int transferred2 = 1;
    buffer2[0] = 0x52;
    libusb_interrupt_transfer(handle, EP_ADDR2, buffer2, sizeof(buffer2), &transferred2, 100);

3.2 コンパイル

include/libusb-1.0のlibusb.hとVS2019フォルダのdllを参照する。

gcc -I./include/libusb-1.0 -L./VS2019/MS64/dll -lusb-1.0 -o test test.c


4. 動かす

実行した結果、正しく通信できた。

52 02 00 4a 02 53 39 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


まとめと今後の課題

Windows PC上で、libusbを使ったC言語プログラムをビルドして、動かすことができた。

マイナンバーカードを使って、国税庁の確定申告書作成コーナーの作成作業の開始にたどり着くまでにやったこと

0. 環境

1. インストールしたソフトウェア

  • NFCポートソフトウェア

www.sony.co.jp

インストールが完了すると、デバイスが認識される。

  • Google Chrome拡張機能 マイナポータルAP 事前準備セットアップでインストールせよと促される。

https://chrome.google.com/webstore/detail/%E3%83%9E%E3%82%A4%E3%83%8A%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%ABap/fjjibalalngebiaophebgkkohaaggphf

chrome.google.com

  • JPKI利用者ソフト 事前準備セットアップでインストールされる。

  • デスクトップアプリのマイナポータルAP

事前準備セットアップでなぜか、インストールされなかったので、手動でインストール。

2. 手順メモ

【確定申告書等作成コーナー】-作成コーナートップ

別窓が開くので、マイナンバーカード方式を選択する。

事前準備が済んでいないと、表示されるので、事前準備。 事前準備セットアップボタンを押し、jizen_setup.exeをダウンロード、実行する。 JPKI利用者ソフトまでインストールが終わる。

再度、作成開始を押す。 ここで、なぜかデスクトップアプリのマイナポータルAPがないといわれるので、実行ファイルをダウンロードしてインストール。

やっと、作成開始にたどり着いた。