USB複合デバイスを作るとき、たぶん一つのデバイスを作って動作確認してディスクリプタを増やして次のデバイスを追加して…とやるとおもいますが、ここで落とし穴に注意。
一度あるVID,PIDでWindowsにつないでしまうとWindowが”どのデバイスドライバを使った”ということを覚えてしまいます(同じポートにつないだ時)。
そのため、上記のように追加すると”ビックリマーク”がついた状態になって”正常に動作していません”と言われます。
違うポートに繋げばまぁ回避できますがそういっぱいポートがあるわけでもなく。
またVID,PIDを変えていけば回避をできるわけですがそんな生産性のないことをしたくないですし。
これを回避するにはデバイスを”削除”すればよいのですがすでにディスクリプタを変えてしまっていると削除しようにもそのデバイスを認識しないので削除できません。
ちゃんとしている人は”ディスクリプタを変える前に削除してるぜ”っていうかもしれませんが人間は忘れるものなので...(少なくとも自分は無理)
また変更したディスクリプタを元に戻して...というのも生産性がない。
そこで、Utilityを使って”忘れさせ”ます。
で、これ。
http://www.nirsoft.net/utils/usb_devices_view.html
これは”接続していないデバイス”のドライバ設定を削除できます。
使用する前に、設定で、”接続していないデバイスを表示する”にチェックが入っているか確認しましょう。
また、管理者権限で実行しないと設定が削除できませんのでここも注意。
で削除したいデバイスを見つけたら、右クリックして削除。
デバイスの表の右のほうにVendorIDとProductIDの欄もあるのでソートをして複数の行を選択すれば一気に削除することもできます。
今まで作ったデバイスの名残がある人はこれを機に掃除してしまいましょう。
ちなみに、自分はこれで2日無駄にしました。あ゛ー。
リンク
http://itpro.nikkeibp.co.jp/article/COLUMN/20090529/330946/
http://www.microchip.com/forums/m646586-print.aspx
2012年4月28日土曜日
2012年3月28日水曜日
2012年3月26日月曜日
InkscapeでDXFを吐き、JWCADへもっていく
JWCADでデザインをするのはすごく大変。
また文字のアウトライン化についても外部変形とかいれなきゃいけないし、いじりにくい。
でInkscape。文字のアウトライン化もできるし、もちろんデザインもできる。
これをJWCADに持って行って、さらにCNCを動かせると結構最強でしょ。
というわけで方法を。
気をつける点は2点
Inkscapeが使っているpythonのデフォルトが英語圏用のものなのに、吐こうとするDXFに日本語が含まれる(どうやらレイヤー名)のが原因。
で、さらにJWWはShift-JISのDXFのみ”ちゃんと”読めるようなのでそう設定する。
まず、pythonのsite-packagesの中の"PIL"という名前のフォルダがどこにあるかを探す。
うちでは、
ここには拡張子".py"のファイルがいっぱいある。
ここに、sitecustomize.pyというファイルを以下の内容で作る。
また文字のアウトライン化についても外部変形とかいれなきゃいけないし、いじりにくい。
でInkscape。文字のアウトライン化もできるし、もちろんデザインもできる。
これをJWCADに持って行って、さらにCNCを動かせると結構最強でしょ。
というわけで方法を。
気をつける点は2点
- そもそも日本語版InkscapeでDXFを吐けない。
← 前回の自分のブログの後半あたり。 - 吐いたDXFをJWWで開くとレイヤーの日本語(だった)が化ける。
Inkscapeが使っているpythonのデフォルトが英語圏用のものなのに、吐こうとするDXFに日本語が含まれる(どうやらレイヤー名)のが原因。
で、さらにJWWはShift-JISのDXFのみ”ちゃんと”読めるようなのでそう設定する。
まず、pythonのsite-packagesの中の"PIL"という名前のフォルダがどこにあるかを探す。
うちでは、
C:\Program Files (x86)\Inkscape\python\Lib\site-packages\PILにあった。
ここには拡張子".py"のファイルがいっぱいある。
ここに、sitecustomize.pyというファイルを以下の内容で作る。
import sys sys.setdefaultencoding('shift-jis')
見た目のとおり、デフォルトの文字コードをshift-jisにするという意味。
これでレイヤー名も化けず、気持よく使えます。
FSX用ラジオパネルを製作中
MCPの試作品を作ったまま、本番の製作に入らないままかなりの月日が立ちました。
ページのアクセスを見ると興味を持っていただいている方はいるようなので大変申し訳ありません。
ひとえに”全部で20桁あまりの7セグLEDの配線が面倒くさくて手につかないのが理由です。
CNCで基板を削れるようになったのですが両面はちょっと・・・という感じで進まず。
なんとか手配線でもいいので着手したいと思います。
回路・外観デザインは考え始めているので、あとは”気力”のみ。
でも、別のパネル、ラジオパネルはぷちぷち進めていたものが形になってきたので途中のものですがお見せしておこうと。
とりあえず、外観はこんな感じです。
ちっちゃいケースになんとか建ぺい率いっぱいで詰め込んだのでデザインというか部品配置に悩みました。
液晶の周りには余白があるように見えますが液晶の基板があるのでこれがぎり。
今回のチャレンジは、
とりあえず、液晶のテスト。なんか、微妙に液晶がずれているようにも見えなくも、ない・・・。
ページのアクセスを見ると興味を持っていただいている方はいるようなので大変申し訳ありません。
ひとえに”全部で20桁あまりの7セグLEDの配線が面倒くさくて手につかないのが理由です。
CNCで基板を削れるようになったのですが両面はちょっと・・・という感じで進まず。
なんとか手配線でもいいので着手したいと思います。
回路・外観デザインは考え始めているので、あとは”気力”のみ。
でも、別のパネル、ラジオパネルはぷちぷち進めていたものが形になってきたので途中のものですがお見せしておこうと。
とりあえず、外観はこんな感じです。
ちっちゃいケースになんとか建ぺい率いっぱいで詰め込んだのでデザインというか部品配置に悩みました。
液晶の周りには余白があるように見えますが液晶の基板があるのでこれがぎり。
今回のチャレンジは、
- t1.5のアルミのCNC切削
← 今までで一番厚い。たかだか1.5mmですが - 液晶表示部にはアクリルの”窓”をつけた
← アルミの板厚分縁を沈めてあるので、表面はツライチ
- 文字のスジボリの深さを深くした
← 前作では浅かったため、塗料がとれやすく墨入れがすごく難しかった。 - 刃具を交換したあと、原点復帰(原点スイッチがONするところ)までいちいちもどした。
← 刃具交換による位置ずれが(たぶん)なくなった
- NC加工のとき、原点合わせミスをまたしてしまった。
← ある文字のところがつぶれた。 - スイッチのぎりまで文字をよせてしまって一部隠れた
← ぎり、許容範囲か。 - CNCの加工範囲を微妙に超えたデザインにしてしまった。
← ずらして加工させればよかったのですがしんどいので"RADIO PANEL"というスジボリをなくした。
とりあえず、液晶のテスト。なんか、微妙に液晶がずれているようにも見えなくも、ない・・・。
2012年2月5日日曜日
Q9550からi7 2700Kへアップグレード
Q9550でなんとか凌いできたのですが、どうやらi7 2700Kはすごいらしい、
しかも値段はそこそこらしい、ということで乗り換えを決意しました。
いつも数代CPUの進化を待って、忘れた頃に乗り換える、ということを
やっていますが、今回はちょっと期待。
マザーボードなどなどは何にしたか、というのは書いても参考にならない(と思う)
ので乗り換え時にそのままのHDDを使えるのかどうかを試した結果を書きます。
クリーンインストールのほうがいいに決まっているんでしょうが、
再び自分の環境を復元するのに前の状態を調査してまたすごい時間かけて
復元して、というのはもう嫌なので前のHDDをなんとか使いたいなと。
まぁ、端的にそのまま接続してそのHDDの中のWindows7が
新しいCPUや、マザーボードでとにかくなんとか立ち上がってくれれば、
あとはドライバなどを放り込んで環境に慣らしていけばよいわけで。
Google先生に尋ねると、某質問サイトで”できる”という回答も
あったりしましたがとりあえず人柱的に試します。
今回、これにあわせてSSDにしてしまうことにしたのでいったんこれに
コピーをして、それから接続してやればHDDを壊すことなくトライ、
することにしました。
うまくいけばHDDは消してしまえばいいので。
で結論です。
Q9550からi7 2700Kへの乗り換えはOSとしては”可能”でした。
(アプリケーションについては調べていないので不明)
で、とりあえずコピーしたSSDをつないで立ち上げます。
スタートアップ画面は普通、な感じですが
PCI関連のドライバが違うせいかビデオカードは標準のVGAドライバでの認識となり
画面が荒い状態での立ち上がりとなります。
ここからOSがいろいろドライバを探し始めます。
でそこそこの時間を放置、再起動。
でどうやらビデオは普通になりましたがマザーボード特有の機能は
ドライバ必要なのでマザーボード添付のCDを使いインストール。
で、Windowsが”ハードがすげぇ変わったから再認証しろ”と
言ってくるので再認証して基本的に終了。
SSDは快適です。本当に。
人によって考え方は違うでしょうが”あのイライラ”から解放される投資としては
見合う線に来たのではないでしょうか。
しかも値段はそこそこらしい、ということで乗り換えを決意しました。
いつも数代CPUの進化を待って、忘れた頃に乗り換える、ということを
やっていますが、今回はちょっと期待。
マザーボードなどなどは何にしたか、というのは書いても参考にならない(と思う)
ので乗り換え時にそのままのHDDを使えるのかどうかを試した結果を書きます。
クリーンインストールのほうがいいに決まっているんでしょうが、
再び自分の環境を復元するのに前の状態を調査してまたすごい時間かけて
復元して、というのはもう嫌なので前のHDDをなんとか使いたいなと。
まぁ、端的にそのまま接続してそのHDDの中のWindows7が
新しいCPUや、マザーボードでとにかくなんとか立ち上がってくれれば、
あとはドライバなどを放り込んで環境に慣らしていけばよいわけで。
Google先生に尋ねると、某質問サイトで”できる”という回答も
あったりしましたがとりあえず人柱的に試します。
今回、これにあわせてSSDにしてしまうことにしたのでいったんこれに
コピーをして、それから接続してやればHDDを壊すことなくトライ、
することにしました。
うまくいけばHDDは消してしまえばいいので。
で結論です。
Q9550からi7 2700Kへの乗り換えはOSとしては”可能”でした。
(アプリケーションについては調べていないので不明)
で、とりあえずコピーしたSSDをつないで立ち上げます。
スタートアップ画面は普通、な感じですが
PCI関連のドライバが違うせいかビデオカードは標準のVGAドライバでの認識となり
画面が荒い状態での立ち上がりとなります。
ここからOSがいろいろドライバを探し始めます。
でそこそこの時間を放置、再起動。
でどうやらビデオは普通になりましたがマザーボード特有の機能は
ドライバ必要なのでマザーボード添付のCDを使いインストール。
で、Windowsが”ハードがすげぇ変わったから再認証しろ”と
言ってくるので再認証して基本的に終了。
SSDは快適です。本当に。
人によって考え方は違うでしょうが”あのイライラ”から解放される投資としては
見合う線に来たのではないでしょうか。
2012年2月3日金曜日
HIDバルブが切れたので修理

車のヘッドライト、HIDのバルブが切れました。
ちょっとぶれてますが、左のバルブの発光点周りが黄色くなってしまってる状態。
もともとHB4のバルブがついていたのをHIDにコンバートするLoud88のキットを 使ってHIDにしています。 なので、HB4にあうHIDバルブを入手する必要がありました。 なかに発光点位置を前後調整できる、という面白いものがあったので これを試して見ることにしました。
で、手元にやってきたわけですが。
右側の2つのコネクタが上記のバルブに付いていたもの、
左側の2つのコネクタがLoud88製のバルブに付いているものです。
もともとついていたコネクタは楽天などでも容易に入手できるのですが、
左のものはオークションでしか入手できないようです。
これは住鉱テックのCL07Dというタイプのようです。
コネクタの断面が角のとれた四角になっているのが特徴です。
入手しやすい向かって右側のコネクタを使って、
すでについているLoud88のバラストのコネクタ側を置き換えるという手も
ありましたが、せっかくのバラスト側を改造するよりは安いバルブ側を
変えればいいか、ということでバルブ側をLoud88タイプのコネクタに
置き換えました。
普通に圧着するだけ、なのですがバルブには極性がある、ということなので
テスターでチェックをしました。
幸いにもバルブの頭の部分には配線の針金?がでているのでそれにつながっている
コネクタがどちらかを調べて合わせました。
点灯した写真はありませんが、最初に5分ほど気持ち程度空焼きをしました。
煙があがったりはしなかったのでまぁ、すでに空焼きはされていたのかもしれません。
で、肝心の発光点調整ですがまぁ、後日。
2012年1月16日月曜日
Google App Engineでshift-jisを扱う
Google App Engineを使ってガラケーに対応したサイトを作ったときにしょうがなしに
shift-jisに対応させるために試行錯誤しました。
ただ、ちょっと前に作ったサイトの中から記憶をたよりにコードを抜き出すので他のサイトの 情報とあわせて、参考程度にしてください(言い訳)
このサイトでは内部で別のこれまたshift-jisのサイトにつなぐ関係上、結局 内部encodingをshift-jisにしました。
これで、form関係の化けは一応ない、です。ただ、取得したformのデータをそのまま横流ししたりしているので、文字列の中をごにょごにょするときは何かしないといけないかもしれません。
やったこと。
その1.内部エンコーディング,ファイルエンコーディングをshift-jisにする。
WEB-INFフォルダにある、appengine-web.xmlに、下記の"この行を追加"という
行を追加。
Shift-JISってとこは、Shift"_"JISだと、ダメです。
その2.サーブレットの中で、requestのエンコーディングとresponseのエンコーディングをShift_JISにする。
ここは、Shift_JISで、Shift"-"JISでは"ない"です。
その3.なぜか、ローカルテストではうまくいかないのでdeployして確かめる。
これは、なぜか不明。だれか教えて。
ただ、ちょっと前に作ったサイトの中から記憶をたよりにコードを抜き出すので他のサイトの 情報とあわせて、参考程度にしてください(言い訳)
このサイトでは内部で別のこれまたshift-jisのサイトにつなぐ関係上、結局 内部encodingをshift-jisにしました。
これで、form関係の化けは一応ない、です。ただ、取得したformのデータをそのまま横流ししたりしているので、文字列の中をごにょごにょするときは何かしないといけないかもしれません。
やったこと。
その1.内部エンコーディング,ファイルエンコーディングをshift-jisにする。
WEB-INFフォルダにある、appengine-web.xmlに、下記の"この行を追加"という
行を追加。
Shift-JISってとこは、Shift"_"JISだと、ダメです。
hogehoge 1
その2.サーブレットの中で、requestのエンコーディングとresponseのエンコーディングをShift_JISにする。
ここは、Shift_JISで、Shift"-"JISでは"ない"です。
public synchronized void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { req.setCharacterEncoding("Shift_JIS"); resp.setCharacterEncoding("Shift_JIS"); }
その3.なぜか、ローカルテストではうまくいかないのでdeployして確かめる。
これは、なぜか不明。だれか教えて。
登録:
投稿 (Atom)