ミドルウェア共通FAQ

よく寄せられる質問への回答です。
下の質問をクリックすると、その質問に対する回答が表示されます。

ミドルウェア全般 | ITF-USBHost | ITF-USBLib | ITF-FILE

ミドルウェア全般(USB全般)


Q. ミドルウェアのライセンスはどのようになっていますか?
A. ミドルウェアのライセンスは、開発ライセンスとなっております。ライセンスとしては下記の物をご用意しています。
・シングルプロジェクトライセンス
・シングルプロジェクト追加ライセンス
・シリーズライセンス
・シリーズ追加ライセンス
・無制限ライセンス
組み込み数による、ロイヤリティーはございません。
詳しくは、ライセンス規定[PDF]をご覧ください。

Q. ソースコード提供とありますが、どのレベルまでご提供いただけるのでしょうか?
A. 弊社で開発した部分は、全てご提供いたします。

Q. 動作環境に掲載されている以外では、使用できないのでしょうか?
A. そんなことはありません。しかし、お客様の方でポーティング作業を行っていただく必要があります。弊社でも、別途費用にてポーティング作業を受け付けております。

Q. シングルプロジェクトライセンスを購入した後、シリーズライセンスや無制限ライセンスへの変更は可能でしょうか?
A. 可能です。
しかし、以下のような条件があります。
・ライセンス価格の差額に20%を加算した金額をお支払いいただく必要があります。
・現状ライセンスの技術サポート期間が終了していなくても、サポート期間は一度キャンセル扱いとさせていただき(6ヶ月サポート期間終了後、サポート契約を更新された場合も同様となります。)変更登録時より、新たに半年間の無償サポートが開始になります。

Q. ミドルウェアがバージョンアップされた時には、連絡をいただけるのでしょうか?
A. 申し訳ありませんが、連絡はいたしません。当ホームページ上でバージョン情報を公開しておりますので、確認していただき、サポート窓口へご連絡いただければ、サポート期間であれば、無償で配布させていただいております。

Q. ミドルウェアのToppers/JSPでの動作実績はありますか?
A. SH7727を使用して、ITF-USBLib、ITF-USBHost、ITF-FILE、ITF-PictSTRに関しては、動作実績があります。

Q. ミドルウェアで提供されるAPI仕様は、購入前に公開していただけるのでしょうか?
A. 購入のご検討を前提に、公開しております。

Q. H8クラスのCPUで、OSなしでUSBメモリのリード/ライトを行うことは、可能でしょうか?
A. miniミドルウェアシリーズの、mini-USBHostSTRを使用することによりH8クラスのマイコン内蔵のメモリーにてUSBメモリーへのアクセスが可能となります。

↑ ページトップへ

ITF-USBHost


Q. 独自に開発したUSBデバイスを接続したいのですが、可能でしょうか?
A. 単純なバルク転送のみであれば、標準のAPIで代用できます。
また、それ以外に関しても、カスタマイズすることで対応が可能です。

Q. 各社から発売されているUSBメモリーは、全て動作すると思って良いでしょうか?
A. 基本的には、動作いたします。
もし動作しない場合は、ご連絡いただければ、当社に動作確認いたします。
ただし、Windows上では認識していてもUSBの規格上問題がある製品などは、実際に認識できない事がありますので、ご了承ください。

Q. USBで通信を行う際に、送信タスクと受信タスクを分け、送信タスクでUsb_Host_Control()もしくは、Usb_Host_Ep_Write() を使用してデーター送信を行っています。また、受信タスクでは、Usb_Host_Ep_Read() を使用してデーター受信を行っていますが、このように、データー受信と送信を別タスクに分けて行っても問題ないでしょうか。
A. 問題ありません。
完全に非同期で動作いたします。

↑ ページトップへ

ITF-USBLib


Q. パソコン側対応ドライバは、使用するOSにより違いがあるのでしょうか?
A. はい。
元となるドライバは共通ですが、仮想COMポートが各OSによって異なります。

Q. 仮想COM番号を固定にすることは、可能でしょうか?
A. 現状の仕様では、対応しておりません。
ただし、カスタマイズすることで対応が可能です。

Q. パソコンのUSBポートを変更すると、新しく接続したポートに対しては、ドライバーを要求されますが、これは仕様でしょうか?
A. 現状の仕様では、対応しておりません。
ただし、カスタマイズすることで、対応が可能です。

Q. 仮想COMドライバー(Windows用)は、日本語以外の言語に対応しておりますか?
A. 当社としての動作保証範囲は、日本語版に限ります。

Q. USBドライバーを直接制御する方式で、通信をしたいと思っていますが可能でしょうか?
A. 可能です。
サンプルとして、DLLをご提供しております。製品パッケージには含まれておりませんので、ご要望の場合は、サポート窓口までご連絡ください。

Q. 仮想COMドライバのドライバー情報等はどのようになっているのでしょうか?
A. ご提供時には、当社独自の情報が登録されております。
製品に添付されるマニュアルには、この変更方法を記載してありますが、ドライバーの開発環境(DDK)が必要となります。
もし、開発環境をお持ちでない場合は、サポート窓口までご連絡いただければ、有償になりますが、当社にてご希望の内容に変更させていただきます。

Q. 同一仕様のUSBデバイスを複数台パソコンに接続し、制御しようとしておりますが標準のままのドライバーで対応可能でしょうか?
A. 問題ありません。

Q. Windiows上でプラグイン/プラグアウトの検出は可能でしょうか?
A. デバイスのプラグイン/プラグアウトの検出には、ハードウェア構成に変化があった時にWindowsから通知されるWM_DEVICECHANGEメッセージを使用します。
ウィンドウ作成時にRegisterDeviceNotificationでドライバのGUIDを設定することにより、指定GUIDのドライバーからのWM_DEVICECHANGEメッセージを受け取ることができます。 

例) =========================================================>
// ウィンドウ作成
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
DEV_BROADCAST_DEVICEINTERFACE filter;
HDEVNOTIFY hDevNotify;

・・・

filter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE); // 構造体サイズ
filter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; // デバイスタイプ

memcpy(
&(filter.dbcc_classguid),
&(GUID_CLASS_INTERFACE_USB_LIBRARY),
sizeof(struct _GUID));// GUIDのコピー

/* デバイス通知ハンドルの取得 */
hDevNotify = RegisterDeviceNotification(
this->m_hWnd,
&filter,
DEVICE_NOTIFY_WINDOW_HANDLE);

・・・
}

// WM_DEVICECHANGE メッセージ
BOOL CMainFrame::OnDeviceChange(UINT nEventType, DWORD dwData)
{
DEV_BROADCAST_HDR* phdr = (DEV_BROADCAST_HDR*)dwData;

switch (nEventType) {
case DBT_DEVICEARRIVAL: // デバイスの追加
if (phdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) {
PDEV_BROADCAST_DEVICEINTERFACE pdbd = (PDEV_BROADCAST_DEVICEINTERFACE)phdr;
pdbd->dbcc_classguid; // GUID
pdbd->dbcc_name; // デバイス名
}
break;
case DBT_DEVICEREMOVECOMPLETE: // デバイスの削除
if (phdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) {
PDEV_BROADCAST_DEVICEINTERFACE pdbd = (PDEV_BROADCAST_DEVICEINTERFACE)phdr;
pdbd->dbcc_classguid; // GUID
pdbd->dbcc_name; // デバイス名
}
break;
}

return CFrameWnd::OnDeviceChange(nEventType, dwData);
}
<===============================================================

↑ ページトップへ

ITF-FILE


Q. f_read, f_writeなどはUSBドライバーで言う同期式/非同期式の何れで処理を行っていますか?
A. 完全な同期型での実装となっております。

↑ ページトップへ