software_development」カテゴリーアーカイブ

Windowsのsetupapi.hは、WinDDKでなく普通に入っているようになってたらしい

Windowsのsetupapi.hは、WinDDKでなく普通に入っているようになってたらしい。
(WinDDK = Windows Driver Development Kit)

昔、自分で作ったプログラムで、USB-UARTのポート情報を調べてCOM:のポート番号とそのポートのドライバがFTDIなのかSiLabなのかArduinoなのかを調べるというプログラムというのがあり、WinDDKのsetupapiを使っていた。
PCのCOMポート番号やポートの情報を調べるためのライブラリ
そのWinDDKのsetupapi.hというヘッダファイルをincludeしていたソースを最近コンパイルしなおすのにヘッダが見つからないということがあった。

そこでsetupapi.hって、WinDDKでないと入っていないのかとか調べていてWinDDKが不要というのに気がついた。
Win32 Setup APIでシステムに存在するデバイスのクラス・インターフェイスのクラスと説明を列挙する

Visual Studio 2019で、普通に

#include <setupapi.h>

として、
あとはリンクするときにsetupapi.libをリンクするようにすればよい。

Visual Studio 2019でDxLibを使って地図画像を回転表示させてみた

Visual Studio 2019でDxLibを使って地図画像を回転表示させてみた。

Visual Studio 2019でDxLibを使ってみた、という話の続き。

地図画像のデータは、Google Maps Static APIを使って取得する。
Google Maps Static API v2を使ってみた

そして、取得した画像をDxLibのDrawRotaGraph2という機能を使って、回転表示させてみた。

続きを読む

Visual Studio 2019でDxLibを使ってみた

Visual Studio 2019(Community版)でDxLibを使ってみた。

先日、Visual Studio 2019が出る前に、ちょっとDxLibを使ってみるためにVisual Studio 2017(Community版)でDxLib 3.0というバージョンを使ってみるというのを試していてうまく行かず悩んでいた。

DxLibのバージョン3.20cというバージョンが出ているのに最近気がついて、それに差し替えたら無事Visual Studio 2017で使うことができて、Visual Studio 2019でも同様に使うことができた。
続きを読む

平成のガジェット

PC-E500というポケコンを買って、ソフトを作るのにハマっていた。そんな平成の始まりだった。
ポケコンPC-E500のソフト開発

その後いろいろなガジェットを手にして、ソフトを作ったり作らなかったりした。HP95LXとかザウルスとかW-ZERO3とかiPhoneとかAndroidスマホとか。
しかし、PC-E500ほど時間と情熱を割いたガジェットはなかったと思う。

Google Maps Static API v2を使ってみた

Google Maps Static API v2を使ってみた。

Maps Static APIは、地図の画像を画像ファイルとして取得するためのAPIだ。

昔、古いAPIでStatic APIをちょっとだけ使っていた。API v1の時代だ。
しかし、2009年に終了してしまっていて、今では旧APIを叩いても地図の画像を得られない。

続きを読む

WiFi機器の電波の強度のRSSIの値が、対数(dBm)の場合と0~100%の場合があって紛らわしい (FlashAirでちょっと悩んだ)

WiFi機器の電波の強度のRSSIの値が、対数の場合と0~100%の場合があって紛らわしい。

Windows 10で、ノートPCなどのWiFi機能を内蔵している場合、コマンドラインから
netsh wlan show all
と入力することで、WiFiの状態を調べることができ、周囲にあるWiFiのアクセスポイントの情報も得ることができる。
この場合、それぞれのアクセスポイントの電波の強度がパーセント表示されている。

このように周囲のWiFiのアクセスポイントを情報を調べた場合、電波の強度はRSSIという値として得られる。

RSSIとして表示される値というのは実装によって異なるらしい。基本的には数字が大きい方が強い電波の受信強度を表すようになっているものらしい。
RSSIについて – IBS Japan
続きを読む

FlashAirで周囲のWiFiのアクセスポイントのログを取って歩いて、GoogleのGeolocation APIで緯度経度を求めた結果を地図にプロットしてみた

FlashAirで周囲のWiFiのアクセスポイントのログを取って歩いて、GoogleのGeolocation APIで緯度経度を求めた結果を地図にプロットしてみた。
前に書いた「FlashAirで、周囲のWiFiのアクセスポイントを検索して、そのログを取るソフトを作ってみた」という話の続きだ。

名古屋の大須の電気街の招き猫広場からスタートして、反時計回りに第一アメ横ビルの周辺の道を回って一周して歩きながらログを取ってみた。
そうやって取得したログ情報から、GoogleのGeolocation APIで緯度経度を求めた結果、このようになった。





名古屋の大須の地図の上に、縦長の四角形を描くように地図マーカーが並んでいる。
左下がスタート地点の招き猫広場だ。
そこから約30秒毎にログが記録されている。
ほぼ一定の速度で歩いたのだが、マーカーは等間隔になっていない。これはGeolocationの精度が出なくて位置がずれているためだ。
GPSほどの精度は出なくて20メートル~100メートルくらいのずれが生じているようだ。

大まかに位置が記録できるロガーになりそうだ。FlashAirが薄っぺらいので、薄くて小型なロガーを作るというのができそうだ。
使い道としては、ちょっと思いつかないのだが、ポケットに入れておけば大雑把に一日の行動が記録できるだろう。あと、小包とかを送るときに中にロガーを仕込んでおけば送られた経路とかを調べられそうだ。
続きを読む

libcurlを使ってGoogle Maps Geolocation APIを呼び出して、周囲のWiFiの情報から緯度経度を求めるソフトを作ってみた

libcurlを使ってGoogle Maps Geolocation APIを呼び出して、周囲のWiFiの情報から緯度経度を求めるソフトを作ってみた。
この間のGeolocation APIを使う話の続きだ。

Windows 10で動くものをVisual Studio 2017のC言語でプログラムを書いた。
以前に古いGeolocation APIで作ったソフトの焼き直し版だ。
続きを読む

Visual Studio 2017でlibcurlを使おうとして、libcurlのソースからビルドして動かした

Visual Studio 2017でlibcurlを使おうとして、libcurlのソースからビルドして動かした。

Google MapsのGeolocation APIを叩くために、curlコマンドから動かす代わりに、libcurlというライブラリを使って自分で書いたプログラムの中からAPIを使うというのをやりたい。
というか、前に既にやってた

しかしVisual Studio 2017だと古いlibcurlをリンクできなくてエラーになってしまう。最新のlibcurlを使う必要があるようだ。
続きを読む