最近Lan〇ers様、クラウ〇ワークス様などに登録してみました。
得意分野は組み込みのため、少し応募してみるくらいでまったく実績はありません。
しかしながら、少し興味を持っていただけることもあるようです。
自社Webページも作ってない弱小企業のままなのですが、本当にありがたいことです。
まずは下記から連絡いただけたらうれしいです。
迷惑メール対策として、まずはフリーメールにしております。
ここから正式メールアドレスを使って返信させていただきます。
info.maxport.anami @ gmail .com
maxport.anami @ hotmail .com
※ あえて挿入している途中のスペースは詰めてください。
2021年11月25日木曜日
連絡先について
2021年10月5日火曜日
Androidアプリでのタイミング調査
Androidアプリを開発する際、タイミングが気になるときありませんか?
このAPIは本当に10mS周期で呼ばれているのだろうか・・など。
マイコンなら空いたIOポートにHIGH/LOW出力を組み込み、オシロスコープで確認すれば簡単。ではAndroidでは ・・ ???
Raspberry PI4でAndroid11が動くというOmniROMの存在を知りました。
このような方たちが試してくれています。
https://paiza.hatenablog.com/entry/2020/11/25/150000
ラズパイ上でAndroidが動くなら、ラズパイ上のGPIOが使えるじゃないか!
でもAndroidアプリ(Java)でラズパイのGPIOを動かせるのか??
私はCでGPIO制御を作り、JNIを使ってJavaから呼び出すことで、JavaアプリでAPI呼び出しタイミングをオシロスコープで確認することに成功しました。
以下のコードをAndroidプロジェクト内のJNIに追加します。
(JavaからのJNI呼び出しは各自設定してください)。
またAndroidのJavaプログラムから下記関数をJNI経由で呼び出すことで、ラズパイのGPIOが動くのです。
Androidアプリを構築される方はオシロを使ってタイミングを確認したりしないのかな?
ミリ秒周期の動作確認する場合、GPIO端子をHigh/Low切り替えてオシロで見るほうが確実ですよ(こんなことしたいなんて思ったことないですか??)。
※ gpiod.hは libgpiodのものを呼び出します。
// ======================================
// GPIO
// ======================================
#include "gpiod.h"
const char *chipname = "gpiochip0";
struct gpiod_chip *chip;
struct gpiod_line *line20;
struct gpiod_line *line21;
void OpenGpio( void )
{
// open GPIO chip
chip = gpiod_chip_open_by_name(chipname);
// open GPIO Lines
line20 = gpiod_chip_get_line( chip, 20 );
line21 = gpiod_chip_get_line( chip, 21 );
// Open GPIO Lines for Output
gpiod_line_request_output(line20, "example1", 0 );
gpiod_line_request_output(line21, "example1", 0 );
}
int gpioOut20Dat = 0;
void SetGpio20( int val )
{
gpioOut20Dat = val;
gpiod_line_set_value( line20, gpioOut20Dat );
}
経歴について
先日ふっと経歴の資料を更新する必要があったので、ひさしぶりに見直してみた。
進化してないなと思いつつ、いろんな案件に関わりながら比較的新しい開発項目にも
参加させていただいていることに感謝あるのみ。
Windows / Linux / Android / RaspberryPi
マイコン基板、Arduino基板
CAN / I2C / LAN / Wifi / Bluetooth
・・ 一通り何でも開発対応します。
1995年9月有限会社マックスポート創業
:
2009年4月Real Time Linux マルチコア対応モジュール開発
2008年4月Real Time Linux用PCIボードドライバ開発、V850POD開発など
2010年4月Virtual システム計測機用PCIボードデバイスドライバ開発
2011年4月車両モニタシステム北京モーターショーデモ用システム開発
2011年4月心拍オンライン計測システム開発
2012年4月CAN連動車両周辺映像録画/再生システム開発(Windows)
2013年4月CAN-RS232Cデータ変換アプリケーション開発(Windows)
2013年4月車両情報サーバーアップロード用デモ装置開発
2013年4月Forum8連動トヨタ展示用車両制御システム構築
2014年4月車両データ収集装置GPS対応版開発、車両データ解析ツール開発
2014年4月~現在視線検知対応車両制御システム
2015年4月Forum8対応車両運行デモシステム開発
2016年4月ドライブシミュレータ、Forum8/CANデータ連動対応
2016年4月HD映像キャプチャCAN送受信連動ロギングシステム開発
2017年4月車両データシミュレーションWindowsシステム開発
2018年4月ドライブレコーダ評価装置用SDカード読み出しシステム開発
2018年4月音声周波数解析ライブラリ開発
2017年4月船舶用CAN変換BOX、船舶用簡易ナビシステム開発
2017年4月トルクレンチ締め付け値無線ロギング/結果収集システム構築
2018年4月静電容量自動計測システム(無線データ収集&ロギング)開発
2018年4月無線機&Bluetooth通信システム開発
2017年4月スマート体温計システム開発
2019年4月発電センサーモジュール用データ収集システム開発
2019年4月CAN Gateway装置開発
2020年4月各種センサー情報無線データ収集システム構築
2020年4月AndroidスマホUSB接続デジタルFMラジオ装置開発
2020年4月船舶用CANドライバ構築
2020年4月LORA無線機用リモコンユニット開発
2021年4月ミライパネルPLC装置プログラム構築
2021年4月CO2センサーデータ収集&Androidスマホ表示&ロギング装置開発
2020年9月23日水曜日
Androidスマホでラジオ制御
Androidのスマホからラジオチューナー(Si4730)の制御を行い、スマホから音を出すという装置の開発を行った。
Android、チューナー間は USB Isochronous通信で行うのだが、まぁ動かない動かない。
これほど悪戦苦闘したのは本当にひさしぶり。トータルで2か月くらいかかってしまった(工数的には超大赤字w)。
チューナー側もきちんと送信できているのかわからない。
「よくわからないもの」と「なんだかよくわからないもの」をつないでも動くわけがなくw
ただ依頼いただいた方を裏切るわけにはいかないので、意地と根性だけでなんとか克服できました。
結局、AndroidでIsochronous通信を行う際は ・・
・ libusbの改造が必要
・ Javaで取り込んだDescriptorとFSをLibusbに渡さないといけない。
・ Isochronous通信のコールバック処理部で修正しないと使えなかった(今回の案件の場合)。
LibusbはLGPL2.1 なので、ソースの公開が必要なのかな?
そのうち公開するかも(案件の状況次第)。
※ もしUSBでIsochronous通信をしたいという方、ひと声かけてください!
2020年8月5日水曜日
いつもありがとうございます。
![]() |
| 2020年8月2日、丹波ひまわり畑への夫婦ライド |
有限会社マックスポート
2017年10月7日土曜日
Embarcadero C++ Win32 link Error LME200
自分への忘備録
Embarcadero C++でWin32ビルドする際、突然リンクエラーが発生する場合がある。
このようなもの
[ilink32 Warning] Warning: unknown heap name : 0x08000000 / 0x08000000 [ilink32 Warning] Warning: Error detected (LME200)
link32.exeをLARGEアドレス対応にしてあげることで、対応するみたい。
コマンドプロンプトを管理者権限で起動し、以下のコマンドを実行することでリンクエラーは解消されました。
C:\Program Files (x86)\Embarcadero\Studio\19.0\bin>"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\editbin.exe" /LARGEADDRESSAWARE ilink32.exe
かしこい人たちのおかげで助かりました。
それにしてもEmbarcaderoには悩まされます ・・・
2017年8月16日水曜日
RADStudio : paclient exited with code 1 (iOS)
しかもTwitterは完全に自転車アカウントなどになっていて、この会社何なんだ?って状態になっている。笑って許してください。
BluetoothLEのデバイスを制御するアプリを作る必要があり、iOSとAndroidを別々に作るのも無駄なので Embarcadero RADStudio を採用してみた(と言っても一年前に購入してもらったものだが)。
Android版は思ったよりすんなり動いたので、次はiPhoneで ・・ そこでハマってしまった。
Embarcadero RADStudio でiOS アプリ開発を行う場合は、以下のように接続する。
Windows(RADStudio) -> Mac(PAClient) -> iPhone
Windows上のRADStudioがMac上のPAClientを経由して、iPhoneの制御を行うことでデバッグできるようになっている。
いろいろと試していたら、突然デバッグができなくなってしまった!
実行しようとすると、RADStudioが 「paclient exited with code 1」と吐きだして、止まってしまう。
今更動かないと困る。評価できない!
RADStudioをアンインストール~新しいバージョンをインストール ・・ だめだ
パッチがあったので、あててみる ・・・ だめだ
Macはほとんど使ったことないので、よくわからないことも多い。
こんなことの繰り返しで、何日費やしたことやら。
Mac側のpaclient画面には /use/bin/security find-identity -v という表示が連発している。
ふっとMac側に「KeyChain」なるものを思い出した。
開いてみると、この中にEmbacadero開発関連のキーをいくつか発見。
ここにあったものをすべて削除して、RADStudioのMac接続関連設定を再設定すると、いとも簡単に動いた。
あとから気づけばこんなもんなのだが、こんなことにばかり時間がかかって、肝心のことはこれから。
BLEデバイス、Androidではすぐに接続できるのだが、iOSからはつながらない。
やっとこれから原因調査できるが、その前の段階で無駄な時間を使いすぎて嫌になってきた(涙)。
