AndroidでのUSB非同期受信の謎と古いパソリへの対応

初期型のパソリ、RC-S310とRC-S320


初期型のパソリ、RC-S310とRC-S320ですが、以前、譲渡いただいて、少し使ってアクセスを試みていました。
その後他の作業でほぼ放置状態になっていましたが、いずれ再開してみたいとも思っています。

ただ、この古いパソリは、RC-S330以降のパソリと全く仕様が違っていて、Androidから利用可能かどうかも良く分かっていません。

非同期受信が必要


RC-S330以降の対応済みのパソリはバルク転送を用いて送受信するので、それほど難しくなくアクセスに成功し、実装もできています。

しかしRC-S310とRC-S320は異なり、送信はコントロール、受信は非同期で実施することになっています。
送受信ともに一応は実現できているのですが、しかし受信が完全にはできていません。


8バイトしかバッファーがない非同期受信


FeliCaは1ブロック16バイトあるわけで、プラス、FeliCaコマンドと、パソリへのデータフレームを合わせると更にデータ長は長くなります。
しかしバッファーが8バイトしかなく、全て受信するためには数回ループする処理を組んで読み取る必要があります。

ところが、何度かループすると、最後の方のデータが欠けてしまい、全てが受信できない状態です。

例えばFeliCaへのアクセスのためには最初にポーリングのコマンドを投げ、IDmとPMmとサービスを受信することになるわけですが、最後の方になるサービスの部分が途切れて受信できません。
他のコマンドも同様でした。
FeliCaからのリザルトは基本的に無駄がないので1バイトでも欠けてしまうとかなり致命的で、現状ままではまともにFeliCaアクセスは実装できないと言えます。

このような状況ですが、Androidで非同期受信を使いながら長い電文をきちんと受信する方法はあるのでしょうか。

2018/12/24(月)10:12 |Comments(0) |Trackback(0)

製造開発 | ソフトウェア開発 | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

ホーム Android 9 Pieへのアプリ対応
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
▲ページトップ

カレンダー

12 | 2019/01 | 02
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

主として「ICカードこれひとつ」や「文字、文字コード」処理、時々C++などについて記述しています。

twitterマストドン

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などを随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR