制御系なら俺に聞いてもいいぜ(8)
at TECH
1:デフォルトの名無しさん
05/09/06 17:13:46
まったり逝きましょう。
ハード寄りの話も大歓迎です。
道具話も楽しくやれるならやってくらさい。
この世界は処理系依存はあたりまえだから、処理系明記するのを忘れないでね!
過去ログ
制御系なら俺に聞いてもいいぜ(7)
スレリンク(tech板)
制御系なら俺に聞いてもいいぜ(6)
URLリンク(fun.kz) (新タイプミラー)
制御系なら俺に聞いてもいいぜ(5)
URLリンク(fun.kz) (新タイプミラー)
制御系なら俺に聞いてもいいぞ(4)
スレリンク(tech板) (行方不明)
制御系なら俺に聞いてもいいぞ(3)
URLリンク(pc2.2ch.net)
制御系なら俺に聞いてもいいぞ(2)
URLリンク(pc2.2ch.net)
制御系なら、俺に聞け!
URLリンク(pc3.2ch.net)
関連過去ログ
●●●くみこの組み込み相談室●●●
URLリンク(pc3.2ch.net)
2:デフォルトの名無しさん
05/09/06 17:39:17
没スレ乙
3:デフォルトの名無しさん
05/09/06 17:42:03
制御系とはなんですか?
4:デフォルトの名無しさん
05/09/07 06:41:07
のっけから凄い質問が(^o^)・・・ 一応釣られてあげると、機器の制御専用に使われるマイコン
をプログラムする仕事です。 Winなんかと違って、昔のプログラム習慣が生き残っていたり、
いまだにASMオンリーだったり。パソコンより低脳の石が主流。ある程度ハードの知識も要ります。
5:デフォルトの名無しさん
05/09/07 07:42:55
と、組み込み系しか制御系じゃないと思い込んでる>4が回答しております。
6:デフォルトの名無しさん
05/09/07 08:35:43
俺は産業用パソコンで組んだことがあるな。
石なんだったかな〜?
Pentiumの何か。
でも、普通、組み込み系を想像するよね。
7:デフォルトの名無しさん
05/09/07 09:14:27
まーこのスレは何でもアリでしょう
みんなの所の仕事も色々やらされてない?
8:4
05/09/07 16:51:37
あ〜、すいません、俺はたしかにクミコ系ばっかり。パソコンで産業用機器の制御指令を
出すような分野も含むのね。でも過去の話題もクミコ系が多かったですね。
9:デフォルトの名無しさん
05/09/07 20:30:10
>>5
ならてめーが回答するときは、
すべてのケースを想定してんのかよ
うぜーんだよぼけ
くそ
10:デフォルトの名無しさん
05/09/07 20:43:13
携帯関係は制御系ですか?
11:デフォルトの名無しさん
05/09/07 21:04:56
冷蔵庫関係は制御系ですか?
12:デフォルトの名無しさん
05/09/07 22:12:05
本屋で組み込み入門みたいな雑誌が置いてたよ。
Cマガジンあたりの隣に
13:デフォルトの名無しさん
05/09/07 22:59:05
組込みプレス Startup Issue
URLリンク(www.gihyo.co.jp)
創刊準備号
14:デフォルトの名無しさん
05/09/08 00:10:43
眠たいときは制御系が朝鮮系に見える
15:デフォルトの名無しさん
05/09/08 20:57:39
>>13
あーこれこれ。
16:デフォルトの名無しさん
05/09/09 04:04:31
凄いな、プレス機も組み込みなのか
17:デフォルトの名無しさん
05/09/09 04:54:05
>>16
つ URLリンク(www.mcm-tech.co.jp)
18:デフォルトの名無しさん
05/09/13 23:31:08
T-Engineのやりかたおしえて
19:デフォルトの名無しさん
05/09/13 23:40:18
>>18
まず、完成形を決める
20:デフォルトの名無しさん
05/09/14 00:22:51
>>18
名大大学院 情報科学研究科に進学する
21:デフォルトの名無しさん
05/09/15 02:29:31
T-Kernelの仕様書とかいうのを買ったんだけど
これをコーディングすればあっというまに
T-Kernelのできあがりなの?
22:デフォルトの名無しさん
05/09/15 02:32:21
そうだ
23:デフォルトの名無しさん
05/09/15 06:12:35
あっというまに は言い過ぎだな。さんざんアホな馬具を出しまくった後に。
24:デフォルトの名無しさん
05/09/15 09:00:04
>>21
ソースはここで申し込めばダウンロードできる。
URLリンク(www.t-engine.org)
25:デフォルトの名無しさん
05/09/15 19:45:03
>>24
個人情報の入力がうざいので1から作ることにしました。
26:デフォルトの名無しさん
05/09/16 16:06:09
質問なのですが
仕事でunixでCでソケットを使うプログラムをつくってるひとっておられますか?
unixプログラミングのスレのひとは学生しかいないみたいなんですけど、、。
27:デフォルトの名無しさん
05/09/16 16:07:01
作ってましたが何か。
28:デフォルトの名無しさん
05/09/16 16:30:13
>>27
さすが
レス有難うございます。
やはり、デバイスドライバとかも書けないと私は使い物にならないのでしょうか?
29:デフォルトの名無しさん
05/09/16 17:09:27
頭が痛くなってきた
30:27
05/09/16 18:35:48
私はデバイスドライバなど書いたことはない!
書けるかと聞かれたら、当然「書けるように努力する」と答えるのみ(ぉぃ
31:デフォルトの名無しさん
05/09/17 22:14:43
デバドラって名前が何か格好いい
32:デフォルトの名無しさん
05/09/17 22:45:43
連ドラと似たようなもんだと思うが。
33:デフォルトの名無しさん
05/09/18 16:07:27
OSは使わない
ほとんど静的に周辺機器や変数のサイズが決まってしまう
こんな環境でオブジェクト指向風に組む価値はあるのでしょうか?
34:デフォルトの名無しさん
05/09/18 16:12:38
>>33
それだけではなんともいえない。つーか、オブジェクト指向は周辺機器やOSによって左右されるわけではない。
35:デフォルトの名無しさん
05/09/18 19:11:00
>>33 あんまり徹底的にやらず、妥協したほうがいい。 でも、その考え方を知っていると
「情報隔離」の考え方をできるので、モジュール分けのときに「デバイス対応」の分け方をできる。
俺はその原則+多少の妥協をこんなふうにやった。格納=ライトルーチン(そのルーチンはドライバを使い
実際のデバイスに書き込む) 参照=ライトルーチン内のキャッシュに残ってる情報を返す、実際のデバイス
ドライバにはアクセスしない。 非対称ではあるけれど、アクセス速度・デバイスの書き込み制限、
などからこうするのがベターだった。
36:デフォルトの名無しさん
05/09/18 21:53:34
>>35
意味わかんないよ。悪いけど。
37:デフォルトの名無しさん
05/09/18 22:08:53
デバイス − ドライバ − ルーチン − 格納
キャッシュ − 参照
データ構造
キャッシュ
手続き
なんとかルーチン::格納() {
ドライバがうんたらかんたら
キャッシュになんかする?
}
なんとかルーチン::参照() {
キャッシュの情報?
}
俺もよくわからん
38:デフォルトの名無しさん
05/09/18 22:57:51
こういう人がプロジェクトにいると困るよね
一人プロジェクトを任せるときには便利だけと
チームものは無理だな
39:35
05/09/19 05:05:57
うん、俺は小物専門だから常に一人。内部摩擦係数ゼロでお気楽。
40:33
05/09/20 07:05:14
ちょっと抽象的すぎてわかりにくかったと思います。
もう少し書くと、動的にオブジェクトを生成したりすることなく
すべて静的に決まってしまう用途という意味です。
41:デフォルトの名無しさん
05/09/20 07:52:11
>>40
>>34
まして、動的かどうかとも直接関係がない。
42:デフォルトの名無しさん
05/09/20 08:00:22
まあCでOOやるなら FILE 方式。
つまり、
1、openで何かの初期化した構造体へのポインタを返すと同時にハードを初期化して
その構造体の中身を教えないという手もある。
つまり、void * で渡してしまう。
2、アクセス関数の最初の引数は その構造体へのポインタ
実際の関数は、その構造体中に関数ポインタが埋められていて、そっちが処理する。
⇒利用者はそういう構造を知らない
⇒同じアクセス関数が、openの仕方によ変化する が操作方法は当然同じ
だろうな
43:デフォルトの名無しさん
05/09/20 09:51:47
>>40
意味はある。 ハードは性的にキマってるとしても
ソフト、とくに何らかの通信プロトコルのようなものや
単純な状態遷移を実装するときはC++便利だよ。
何も考えなくてもいいからな。newは当然使用禁止な。
44:デフォルトの名無しさん
05/09/20 22:03:55
>>40
静的に決まるなら配列でやればよい
何もmallocだfreeだとかnewだとかdeleteだとかにこだわらなくてもよい
45:デフォルトの名無しさん
05/09/20 23:54:02
つまり、>40は動的オブジェクトこそがOOだと思っているということか?
まぁ、>42も似たようなもんか。
46:デフォルトの名無しさん
05/09/21 00:02:36
そんな一方的にイワンでも・・
47:42
05/09/21 06:43:52
>>45
おいおい、ポインタを返すから動的って決め付けはどうかな
48:デフォルトの名無しさん
05/09/21 07:40:34
いや、「ポインタを返す」からじゃなくて「実装方法に拘泥している」から。
49:42
05/09/21 07:47:48
ああそういう事か。 そこらへんはセンスだから、お好きなように。
といっても、作り手と利用者をしっかり分けられるこういうスタイルになると思うけどね
50:デフォルトの名無しさん
05/09/21 10:19:25
実装方法に拘泥したコーディング
なんちゃってゲハハ
51:デフォルトの名無しさん
05/09/21 19:12:22
どこで笑えばいいの?
52:デフォルトの名無しさん
05/09/25 13:42:48
多分「拘泥」と「「コーディ」ング」をかけたところが本人的に
すばらしく知的でハイセンスなギャグだと感じて
この感動を2chの皆様にも披露したくなったんではないでしょうか
53:デフォルトの名無しさん
05/09/25 15:13:28
最近見かける、会社の入り口に置いてある電話番号案内も制御系か?
ああ言うの作る仕事に転職したいんだが
54:デフォルトの名無しさん
05/09/25 16:56:37
いや、あれは単に交換機の仕様からメモし直して貼ってあるだけかと。電話番号案内を
作るみたいな仕事は制御系とは違うぞ。 交換機のほうを作るのは制御系だが。
55:デフォルトの名無しさん
05/10/05 20:10:14
uartのringバッファの管理について、こんなことを考えました。
ライトポインタ・リードポインタ・バッファ内滞留数をuintで考えます。
バッファ内滞留数はタスク側・割り込み側両方で++/--するので、タスク側でdi/eiが必用。
ライトポインタは書き込み側のみが、リードポインタは読み込み側のみがそれぞれ変更します。
「バッファ内に有効バイトがあるかどうか」だけなら「滞留バイト数」の情報は不要で、
(書き込みポインタ != 読み込みポインタ) の判定でできます。今は滞留バイト数を参照して
例えばバッファのサイズを超えて書き込むなどを避けているのですが、
「ライトポインタとリードポインタ(どちらも2のn乗のバッファサイズのモジュロで循環している)だけから
滞留バイト数を計算する」 ことは可能でしょうか?
それが可能なら「滞留バイト数」の情報を削ることができて(゚Д゚)ウマーなのですが。
56:デフォルトの名無しさん
05/10/05 20:30:58
□1、理屈の上ではこの手のFIFO処理で割り込み禁止する必要はない。
たとえば、シリアル受信の場合
割り込みでwp
メインでrp を更新するが
メインでrpを更新してから、実際に書き込む実装、つまり
1、 wrp :=rp;
2、 rp := ( rp+1) mod BufSize;
3、 with wrp^ do begin メンバの設定 ;end
とすれば、どこで割り込まれても困りはしない
□2、
で、バッファにあるデータのサイズは
Size = ( (wp-BufTop) - (rp-BufTop) +BufSize) % BufSize;
Size = ( wp - rp +BufSize) % BufSize;
57:55
05/10/06 06:35:52
□1は知ってます。di/eiは滞留数の更新時だけやってます。
□2:ありがとうございます。幾つか数値を入れてやってみたらうまくいきますね。
ラップアラウンド中どうなるかが判らなかったので質問したのですが、ヤッホー(^o^)
58:デフォルトの名無しさん
05/10/06 07:15:37
2のべき乗のサイズならmodの部分は and か bclr で 書ける
59:55
05/10/06 09:02:26
□2について、「滞留数」情報の有るときと1点だけ違いが見つかりました。
滞留数情報があれば、wp==rp で、滞留数==BufSizeという、極端な滞留が許されるのですが、
滞留数情報が無いと、滞留数は (BufSize-1) までになりますね。
でも、ふつうはそこまで溜めないうちにガードがかかるようにシステム/アプリを作るはずだから
問題にはならないとおもいます。
>>58 そうですね。遅い石なのでその辺も使ってます。sizeof 配列 が2**nなら
%演算を書いても cが and を出してくれるかどうか試してみようとおもってます。
60:デフォルトの名無しさん
05/10/06 09:28:01
wp=rpを使うとなると、メイン側で、バッファの値を読むところまで 割り込み禁止しないといけない
そうすると、禁止されてる間に処理しなければいけないデータが来たときに厄介だよ
61:55
05/10/06 10:05:12
なので、受信側は滞留数情報を残しました。送信側についてだけ、wp、rpのみでやります。
すると、wpとrpが同じか判断するところは割り込み側にだけあるようにできます。
LSIC-80の8085機能でやってみたら、%演算書いても cが and にしてくれました。
演算量は8085なのであまり減りませんでしたね。wordの比較を8bitACCでやるから。
H8あたりだとウマーなのですが。 でもcコードは簡潔になったから(・∀・)イイ!。
受信側は、「受信滞留あり?」をメインループで判定する構造にしてるので、滞留数情報を
残しました。wpとrpを比較するコードより滞留数intがゼロかどうか見るコードのほうが軽いから。
ちなみにwp^rpと書くと16bitのXORをインライン展開して、wp!=rpと書くと call word比較が出ました。
62:デフォルトの名無しさん
05/10/07 23:13:25
ていうか受信にリングバッファなんて必要?
どうせマイコンでやるようなシリアル通信なら相手から来るコマンドなり何なりは
デリミタ付きなりパケットにデータ長が含まれてるなりするわけでしょ?
つまり、ある1バイトを受信したとき、その時点でそこが一区切りの情報かどうか
はっきりするわけだ。
だったらその時点で受信バッファの内容を「コマンドバッファ」にコピーしたらいいじゃん。
そうすりゃ受信をリングバッファにする必要なんてないよ。
もちろんこの方式でも、コマンドバッファの内容が未処理のうちに
次のコマンドの受信が完了してしまったらどうするのかって問題はあるが。
63:デフォルトの名無しさん
05/10/08 01:12:17
>>62
寝言は寝てからにしてくださいね
64:デフォルトの名無しさん
05/10/08 01:40:45
>>63
幼稚な奴。
どうせ反論するなら、なぜ受信バッファはベタな配列ではなく
キューにする必要があるのか根拠を言えばいいのに。
まあそんな能力はないのに口だけ出したいんだろうけど。
今日日こういうレスする奴が40面下げたオッサンだったりするんだよなあw
65:デフォルトの名無しさん
05/10/08 01:48:59
>>62
(><)ノ お答えしまっす!
確かに電文が短いうちはそれでいいと思うけど
なが〜い電文を逐次処理する羽目になったときに
リングバッファがいるかな〜 という感じです!
66:デフォルトの名無しさん
05/10/08 02:18:43
データの長さは関係ないと思うけど。
っていうか、普通は(逐次処理できるのなら)逐次処理できるからこそ
リングバッファなんてイラネってなるはずだと思うけど。
例えばWinのメッセジーキューはPOSTされたメッセージを逐次処理できないんで
キューになってるわけね。
マイコンでやるようなシリアル通信なんてたいていはデリミタか指定バイト数分受信したら
受信バッファの内容を全部パーサーに投げればいいような処理でしょ。
こんなのリングバッファでやる必要なんて全くないじゃん。
67:デフォルトの名無しさん
05/10/08 02:44:13
>>66
(><)ノ 補足しまっす!
リングバッファのもうひとつの利点は
シリアル受信を割り込み屋さんにお任せすることにより
キューを処理中にもガスガスとデータ受信できることで、
これがただのベタ配列だと あー キューを2本用意すれば
いけると思ったあなた! 鋭いですが そのキューの処理は
>>62でご自身も書いてますように いろいろある感じです!
68:名無し募集中。。。
05/10/08 02:45:44
リングバッファが複雑すぎて作れないって人は無理に作らなくて良いよ
69:デフォルトの名無しさん
05/10/08 02:49:08
複雑すぎるという言葉自体に驚いた
70:デフォルトの名無しさん
05/10/08 02:59:09
(><)ノ データ受信とメイン処理を一緒にするのはお勧めしません!
>>66のようにコードを書くと、データの受信のあとに
処理が終わるまで次のデータは受信できない? ということに
なりかねないコードになります。 相手は問答無用でデータを
押し付けてくる機械マンのケースが多いので、つらいDEATH。
じゃあデータの処理を別スレッドに飛ばそうか? とかいうと
つまんない受信処理が本スレ、メインの処理は別スレ、と
なんだかコードの視認性が悪くなってしまいますのです。
71:デフォルトの名無しさん
05/10/08 03:07:35
(><)ノ ですが、限定された条件下でなら確かにリングバッファは不要です!
短かめのデータ受信→なんか処理→ACK/NAK返送
という流れが確定し、今後30年はその仕様に変化がないと
クライアント様にハンコを突かせたなら、もうそれは>>66さんの
コードで必要十分なわけです。これはこれで見やすくなります。
72:デフォルトの名無しさん
05/10/08 03:12:03
>>67>>70
わかってないな。
>>62に書いた「問題」ってのはリングバッファでリングが一週回ってしまった
場合の問題とほとんど等価だよ。
つまりどちらにしろ問題は起こりうるわけで、それはリングバッファを採用する
理由にはなりにくい。
>>>66のようにコードを書くと、データの受信のあとに
>処理が終わるまで次のデータは受信できない? ということに
なりません。今日的な常識でいって普通はね。
前のコマンドの受信完了から次のコマンドの受信完了までの時間はまあ
短くてもmSecのオーダーといっていいだろう。
パーサーがコールされるまでにmSecオーダーレイテンシがありうるシステムなんて
今時ありえんでしょ。
仮にあるとすれば、リングバッファにしようがどんなデータ構造を採用しようが
同じこと。いずれ地獄は来ることになる。
73:55
05/10/08 03:18:44
私の製品の実装例では、4.8Kで受信、数十バイト可変長のASCIIフレームが揃ったらその中から
数値情報を抽出するなんてことをやります。1文字の受信間隔は2mS、CPUは3MHzの8bitで
乗除算命令が無いので、sscanfの整数変換相当の機能を実行するのに数十mSオーダーで
時間かかります。ですからあるフレームの処理中に普通に次のフレームの頭何バイトかは受信が
あるわけで、>>62や>>66みたいなわけには行かないのです。
74:55
05/10/08 03:24:48
すげ〜な、こんな時間に起きてる人が少なくとも2人・・・ 私は早起きのほうですが。
リングバッファのサイズは、受信では重い処理が何十ミリかかるか、送信では一度にどの位
の情報を書くかを見つくろって決めます。全部で8KBしかないメモリを、制御用変数とスタックと
リングでやりくりします。
75:デフォルトの名無しさん
05/10/08 03:32:10
>>74
(><)ノ バトンタッチします!
逃げるついでに今から仮眠取ってきます!
76:デフォルトの名無しさん
05/10/08 06:54:06
せっかくFIFO式(リングバッファ)にしているのに、最後に
コマンドバッファド式にコピーして使ってるせいで台無しになってるコードをメインテナンスした所だ。
コマンドバッファ式だと、受信して処理して結果を返すというサイクルで回ってる間は問題ない。
でも、通信路の速度を最大にしようとすると、
コマンドを処理している間に次の受信をさせる事になる。
受けと取って処理して返信だと、処理時間がゼロでも2倍以上かかる。
USBーシリアルなんて使うと、さらにディレイが入る事になる。
PCやマイコンは高性能になっても、通信路(ボーレート)は物理的な制限で上げられないし
USB-シリアルの遅延なんてのはボーレートを上げても改善しない。
だから、コマンドを結果を待たずに、FIFOがある限りどんどん送りつけて(フロー制御して)
という方向になってるわけよ
77:デフォルトの名無しさん
05/10/08 07:15:39
>もちろんこの方式でも、コマンドバッファの内容が未処理のうちに
>次のコマンドの受信が完了してしまったらどうするのかって問題はあるが。
この対策がフロー制御です。 FIFO(リングバッファ)を持っていると
メイン: 返信用FIFOが一杯(に近づいていれば) コマンド処理をしない
受信: 受信FIFOが一杯に近づいて来たら、(ちょっと待ってね)状態にする。
という決まったスタイルで安全に対応出来ます。
(ちょっと待ってね)状態にしても何バイトか送りつけられる事が殆どなので、それを考慮するとか、
コマンド処理が分散して処理されて時間がかかる場合は、それを考慮するとか
そういう事も、決まったスタイルには含まれています。
コマンドバッファ方式だと、コマンドを受け取って即座に(ちょっと待ってね)状態にしないといけないでしょ?
そうすると、一般的に通信速度が上がらないわけで、そっから、「対策しる!」と言われたら、
あちこち対策入れて、だんだん訳が判らない状態になるわけです。
そんなわけで、PICのようによほど小さい規模のマイコンで無い限りは、シリアル通信ではFIFOを
入れるというのが一般的です
78:デフォルトの名無しさん
05/10/09 15:22:21
ハードにFIFOを持っているが、ハードのFIFO自身にフロー制御機構を持たない場合、停止要求してから
何バイトもダダ漏れになるから(一昔前のPCの大部分に載ってたNS16550Aとか)、フロー制御を下手に
過信するのは危険だし、それなりの対策は打っておくのが普通。
79:デフォルトの名無しさん
05/10/15 11:43:23
保守あげ
80:デフォルトの名無しさん
05/10/15 13:52:09
>>78
そのハード、アラート信号線とか無いの?
81:デフォルトの名無しさん
05/10/15 13:55:23
>>80
>ハードのFIFO自身にフロー制御機構を持たない場合
82:デフォルトの名無しさん
05/10/15 13:59:32
>>81
あ、そうかw
3本線で工場内を繋いでるのかw
83:デフォルトの名無しさん
05/10/15 14:02:05
>>82
飛躍しすぎ
84:デフォルトの名無しさん
05/10/15 14:08:16
まあ、FIFO内のコードを全部解読してから実際のコマンドを発行する仕組みにすれば良いのではないか?
そうそう途切れる事無くコードが送られて来る事も無いだろうに。
85:デフォルトの名無しさん
05/10/15 14:20:23
おまいらのにプロセッサボードにはシリアルポートしか付いてないのか?
86:デフォルトの名無しさん
05/10/15 14:22:45
>>85
つうより、ハード屋さんがそれしか繋げてくれなかったって場合の話らしいよ。
87:デフォルトの名無しさん
05/10/15 14:22:51
>>85
エーテルネットやらUSBやら無線やらうらやましいです
88:デフォルトの名無しさん
05/10/15 20:50:50
>>85
たまに3ポート内蔵とかだとウキウキしちゃうよね。
LEDでモールスはもう面倒になってきました。
89:デフォルトの名無しさん
05/10/27 00:37:34
スレ違いかもしれないですが、
WindowsでUSB接続のデバイスを扱うプロクラムを
作りました。
そのデバイスドライバをインストール
させるのに、Windowsのコマンドか何か(API)からインストール
させる方法をご教示ください。
プログラムのインストーラまでは作ったのですが、
そのデバイスドライバも一緒にそのインストーラで
インストールさせたいです。
infファイルとsysファイル、関連dllはあります。
今は、USBを接続させ、ウィンドウズの自動認識による
ドライバインストールのウィザードからインストール
させるようにしています。
90:デフォルトの名無しさん
05/10/27 03:50:52
>>89
昔のWin DDKにinfファイルからドライバインストールするサンプルコードが付いてたな
俺はそれをDLLにして、InstallShieldから呼び出して使ったよ。
最近はその辺触ってないし、DDKもDLできなくなっちゃったからわからんけど、
Win関係のスレで聞いたほうがいいかもね
91:デフォルトの名無しさん
05/10/27 09:54:07
>>90
そうです、まさしくそれをしたいです。
「デバイス ドライバ インストール」等で
ぐぐったりしましたが、なかなか見つかりませんでした。
Win関連板、スレの場合、多分OSの基本的な
話題ばかりかと思い、実践している方が多そうな
このスレで聞いてみました。
92:デフォルトの名無しさん
05/10/27 11:42:26
>>91
寧ろこのスレはインストーラーなんて興味ないって香具師が多い希ガス。
現にうちのプロジェクトなら、「ドライバをインストールしてください」の一言で終わる。
93:デフォルトの名無しさん
05/10/27 11:47:06
過疎ってるけど、WDMスレのが近いかな
94:デフォルトの名無しさん
05/10/29 07:15:04
教えてください。
URLリンク(mbm.livewiredev.com)
[INFORMATION]で[SHARED MEMORY]の項目を選び、[C CODE]の中の
C++Class Wrapper can be downloaded here, thanks to Raoul
を選んでダウンロードし解凍(するとcmbm.cpp とccmbm.h)してVB6.0でDLLを作成した。その際、
,(即興的っつーかテスト用に)、関数を追加した。そしてvb6.0から関数をコールしたら、
ReadValues()は、connect()から(内部で)参照されたときはエラーになってないようなのですが、
getSensorType()から(内部で)参照されたときには↓のところでエラーになるのです。何故でしょうか。
bool CMBM::ReadValues(); // connect()とgetSensorType();から参照されている
{
data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); <―でエラー
if (data == NULL)
{
Connected = false;
return Connected;
}
return true;
}
95:デフォルトの名無しさん
05/10/29 07:17:03
テスト用に便宜的に追加した関数とは↓です。
int CMBM::getNbSensorvbType(int n_sensor)
{
int is;
is= n_sensor;
TsensorType tt;
tt = getSensorType(is);
is = getNbSensor(tt);
return is;
}
追加した理由は、getSensorTypeでは戻値、getNbSensor()では引数として使われている
TsensorTypeに対応するパラメータの型を、vb6.0では俺にはできなかったから。
96:デフォルトの名無しさん
05/10/29 12:20:12
回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
まあ問題の性質上しょうがないのかも知れないが、
それでもせめてエラーの内容ぐらい書けばいいのに。
っていうか、スレ違いのような気がする。
まあマルチがはわわ〜、なんだろうけどさ。
97:デフォルトの名無しさん
05/10/29 16:42:02
vb6のデバッグモードでの実行時のエラーメッセージ
以下の[ ]や( )の文は説明のためであって、表示されたものではない。
(ダイアログメッセージボックス)
VB6.EXE-アプリケーションエラー
“0×038644bd”の命令が”0×03861036”のメモリを参照しましたが、メモリが”written”になることは
できませんでした。プログラムを終了するには・・・・・・
プログラムをデバッグするには キャンセル をクリックしてください。
↓[キャンセルボタン]
(ダイアログメッセージボックス)
Microsoft VisuaI C++
ハンドルされてない例外は、VB6.EXE(CMBPRJ.DLL)にあります。:0×C0000005: Access Violation
↓[OK ボタン]
(cmbm.cpp)
bool CMBM::ReadValues()
{
⇒ data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0);
・・・・・・・・
98:デフォルトの名無しさん
05/10/29 17:05:16
Public Declare Function Connect Lib "cmbmprj" () As Double
Public Declare Function isConnected Lib "cmbmprj" () As Boolean
Public Declare Sub DisConnect Lib "cmbmprj" ()
Public Declare Function getNbSensorvbType Lib "cmbmprj" (ByVal n_sensor As Integer) As Integer
以下はTsensortypeの型定義の仕方が不明だから、標準モジュールで止めたファンクション定義
'Public Declare Function getNbSensor Lib "cmbmprj" (Tsensortype As SensorType) As Integer
'Public Declare Function getSensorType Lib "cmbmprj" (n_sensor As integer) As Tsensortype
以下のboolean Bcnctは ローカルウィンドウで、"True"に表示される。
cmbmprj.dllの,bool CMBM::isConnected()のリターンコードがTrueで戻ってくるというのは
既に、dllが参照された時点で、CMBM::CMBM()とdouble CMBM::Connect()が参照され、それによって
bool CMBM::ReadValues()も参照されていると判断される。
Dim iret As Integer
Dim wcnct As Double
Dim Bcnct As Boolean
Bcnct = isConnected() '戻り値は Trueが確認されている
If Bcnct = False Then
wcnct = Connect()
If wcnct = -1 Then
・・・・・
ElseIf wcnct = -2 Then
・・・・
Else
・・・・
End If
Else
iret = getNbSensorvbType(1) 'vb 側としてはここでエラー発生
Form1.List1.AddItem "温度センサーの登録数:" & Str(iret) & " " & TTIME
End If
99:デフォルトの名無しさん
05/10/29 17:11:19
CMBM::CMBM()
{
data = NULL;
Connected = false;
Connect();
}
//---------------------------------------------------------------------------
CMBM::~CMBM()
{
DisConnect();
}
//---------------------------------------------------------------------------
bool CMBM::ReadValues()
{
data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0);
if (data == NULL)
{
Connected = false;
return Connected;
}
return true;
}
100:デフォルトの名無しさん
05/10/29 17:11:43
スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。
なにか面白い書き込みを楽しみに来てるわけで。
細かい具体的内容書かれれば書かれる程、ゲンナリしちゃうわけ。
質問は結構だけど、もう少し整理してくれ。
理解出来ないから丸投げじゃ、面白くもなんともないよ
101:デフォルトの名無しさん
05/10/29 17:12:45
double CMBM::Connect()
{
if (isConnected()) return -2;
// try to open shared memory
hMapFile = OpenFileMapping(FILE_MAP_READ, FALSE, "$M$B$M$5$S$D$");
if (hMapFile == 0)
return -1;
// try to make a first read to memory
if (!ReadValues())
return -1;
Connected = true;
//return MBM version
return data->sdVersion;
}
//---------------------------------------------------------------------------
bool CMBM::isConnected()
{
return Connected;
}
102:デフォルトの名無しさん
05/10/29 17:17:06
>回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
>っていうか、スレ違いのような気がする。
>まあマルチがはわわ〜、なんだろうけどさ。
↑(だから、コードを貼ったのだ)
矛盾
↓
>理解出来ないから丸投げじゃ、面白くもなんともないよ
結局、答える能力はないから、自己投影で最後に難癖つけてきただけだろ。
103:デフォルトの名無しさん
05/10/29 17:18:11
>制御系なら・・・
↑
「羊頭狗肉」ってこういうことを言うんだ。
104:デフォルトの名無しさん
05/10/29 17:22:53
だからさ、 回答したくなるような+アルファをクレって、
そういう芸風はもう飽きてるんだよ。
105:デフォルトの名無しさん
05/10/29 17:25:35
お前のためのスレじゃない
飽きたなら消えろ
106:デフォルトの名無しさん
05/10/29 17:29:25
おいおい・・・このスレの最初のスレから3割以上レスしてたこの俺に消えろっていうんだな?
107:デフォルトの名無しさん
05/10/29 17:30:17
その通り
邪魔だ消えろ
108:デフォルトの名無しさん
05/10/29 17:43:28
判ったよ。 じゃあ、後は頼んだ。
109:デフォルトの名無しさん
05/10/29 17:47:07
AD変換のシステム(計測マン・マシーンインターフェースソフトも含む)
は計測制御の基本だよ。計測が出来なければ制御(DAシステム)なんて
出来るわけがないからだ。しかもCPUの温度に関してときてるのだ。それなのに、
「制御」のスレで、その質問に高飛車に「スレ違い」って言うような連中が、
なんら批判されず、のさばってられるスレっていうのは奇妙なものだ。
110:デフォルトの名無しさん
05/10/29 17:47:58
住人さんたち、スレタイに「系」がついてることを忘れるなよ。
111:デフォルトの名無しさん
05/10/29 17:50:53
>>109 誰も高飛車に言ってないだろ。 そんだけ講釈出来るんだらお前が答えて終わらせてやれよ。
112:デフォルトの名無しさん
05/10/29 18:00:48
結局 (俺も含めて) 誰も回答できないわけか…。
113:デフォルトの名無しさん
05/10/29 18:02:45
>スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。
こういうの、高飛車だけではないな。陰湿な排他的性格も含むから。
あ、そうか。ここの「制御」って「人間排他制御」のことか。(藁
今や水冷とかファンコントロールがオーバークロッカーだけでなく静音マニアでも
でもあたりまえ。それを「仕事」とか「タダ働き」だとさ。呆れるね。
114:デフォルトの名無しさん
05/10/29 18:03:25
金にならねえやっつけ仕事ほど、無駄な時間の浪費はない。
115:108
05/10/29 18:08:02
やれやれ
質問者へ
1、まず、どういう立場なのかとか多少は自分の事も書いてみて
2、つぎに、何をしようとしているのか買いてみて
3、そして、問題は何なのか簡潔に書いてみて
で、メモリマップファイルで、通信しようとしているようだけど、
書かれているコードではバイト数をゼロでREADオンリーにしてる。 後から変更しているの?
116:デフォルトの名無しさん
05/10/29 19:06:55
MBMの本体が動いてないからじゃないの?
117:デフォルトの名無しさん
05/10/29 20:06:59
本家にBBSあるんだからそこで聞けよヴォケ
URLリンク(www.livewiredev.com)
118:デフォルトの名無しさん
05/10/29 20:16:48
制御系とか関係ないじゃん。
MBM DLLをVBから使いたいってことじゃん。
ス レ 違 い
119:96
05/10/29 20:16:51
>>100の書き込みは俺じゃないよ。
っていうか、>>96の書き込みを見て、それでそれに応えるつもりで
コードをコピペしてるんだったら、質問者は基本的な日本語の読解力が怪しいんじゃないの?
まあ>>102が質問者かどうかわからないけど、それにしてもね。
とりあえずWin32のCのintに対応するVBの型はIntegerじゃなくてLongだよ。
それが障害の原因かどうかはわからないけどね。
120:デフォルトの名無しさん
05/10/29 20:20:46
大体質問に答えてもらおうって態度じゃないな。
俺のところじゃそのモニタを使えてるが
絶 対 に 教 え な い
121:108
05/10/29 20:39:04
あ勘違いだ。 サイズゼロだと、最大を指定したのと同じなんだね。
それから
data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); <―でエラー
と書いてあるから、 data への書き込みに失敗したのだろう。
となると、CMBMが作成されていないのに、メソッドが呼び出されたという所かな
122:108
05/10/29 20:46:58
ところでVBからDLLを呼び出すからエラーの追跡が面倒になるのだと思うのだが
VBだけではポインタが無いから難しいと思ったのだろうけど・・・・・
なんか昔、VBだけでやれた気もするんだけどなあ
最近、こういうのはDelphi使ってるから忘れちゃったよ。Delphiならポインタ使えるし
123:デフォルトの名無しさん
05/10/29 21:20:34
VB厨(笑)
124:108
05/10/29 21:35:58
ちょっとぼんやり思い出した。
long 変数でポインタを受けて、MoveMemoryとかのAPIで VarPtr(構造体) で移動ってな所だったかな?
125:デフォルトの名無しさん
05/10/29 22:04:26
まあ制御系でもVB使わない事もないが、さすがにメインじゃ使わない。
PC用のGUIが必要なら DelphiかBCBだろ。
ただ、実験とか社内ツールだとExcelVBAなら結構多いかもな。
一昔前は測定器にPC使ってVBなんてのも多かったけど、
なんか大変動じゃないけどいつの間にかVBやってた所はZ80と一緒に地盤沈下。
126:96
05/10/29 22:12:59
>>125
本当にこの世界の人?
この世界に限らず、特定用途向けのGUIアプリなんて今でもほとんどVB製ですけど。
じゃなきゃ、ここ二年ぐらいはドトネト。
Delphi使ってるなんてところは日本じゃほとんど見たことない。
127:デフォルトの名無しさん
05/10/29 22:19:01
>>196
そうか?
なんかVBアプリからの置換の仕事が多いから一昔前は多かったというのは実感してるが、
昔はバブルだったのか、これが今の請負額より1桁上の金額取ってたのかよというのばかりだけどな
128:デフォルトの名無しさん
05/10/30 00:10:28
組み込み専門の俺には割り込む余地も無い(w
129:デフォルトの名無しさん
05/10/30 00:12:57
>>128
組込み専門なら、割り込みもこなせなくてどうする!
130:デフォルトの名無しさん
05/10/30 02:38:39
最近は、そういうのは OS がやってくれたりするからなぁ。
131:デフォルトの名無しさん
05/10/30 11:07:10
組み込みと制御系って何が違うの?
132:デフォルトの名無しさん
05/10/30 12:55:35
制御系は組込み系の部分集合。
133:デフォルトの名無しさん
05/10/30 12:57:08
まあ、諸説あるだろうけど…
組み込み系というのは、機器に組み込まれて動作するソ
フトウェアを言う。つまり、どちらかと言うと実装上か
ら見た区別。
制御系は、機器を制御するソフトウェアを言う。つまり、
用途から見た区別。
だと思う。
134:デフォルトの名無しさん
05/10/30 16:55:54
組み込み系⊆制御系
じゃないの?
135:デフォルトの名無しさん
05/10/30 17:01:48
>>134
は?
136:デフォルトの名無しさん
05/10/30 17:55:26
>>132, >>134
例えば、物流の制御システムなんかだと PC 使ってやってることもあるから、
制御系だけど組み込み系じゃないって感じがする。
逆に、電卓のプログラムは組み込み系だけど制御系というのはちょっと違う感
じがする。
137:デフォルトの名無しさん
05/10/30 20:04:49
>>136
LCDの制御やボタンの入力などを読んだりするのは?
138:デフォルトの名無しさん
05/10/30 22:33:03
>>137
気分的には制御と言いたくない。
139:デフォルトの名無しさん
05/10/30 22:56:11
マジレスすると、電卓にソフトウェア部分は無い。
140:デフォルトの名無しさん
05/10/30 22:58:02
そんな餌で、釣れるんか?
141:デフォルトの名無しさん
05/10/30 23:13:35
>>140
連れてるじゃん
142:俺も含めて大漁だな、オイ。(w
05/10/30 23:27:11
オマエモナー。
143:デフォルトの名無しさん
05/10/31 00:28:02
制御系っていうと、最近は会社によっては、
MPUの仕様やプログラムは一切知らずに、
ステートフローや伝達関数書いてシミュレーションしたり、
実験してパラメータ決定するだけで、
その組み込みは、他部署にお任せってのも多々あるみたいだけど、
このスレでは、そういうやからもおkなん?
144:デフォルトの名無しさん
05/10/31 00:34:27
>>143
ああ、あの「試作品作るなんてお金の無駄です。」ってやつな。
いいんじゃね?
145:デフォルトの名無しさん
05/11/02 21:47:03
こんにちは、今回、会社にあるん古いバーコード・プリンタを
復活させる必要が出てきました。マニュアルを読むとRS232c経由で
制御できるようなんですが、XPのDOS窓から、RS232Cにエスケープコマンドって
送れますか?
昔、DOSの頃パラレルのプリンタをエスケープシーケンスで制御して遊んだ事が
あるんですが。出来ることは覚えていますが、TYPE CONとかなんだったか
忘れてしまいました。
詳しいサイトとかありましたら教えてください。
146:デフォルトの名無しさん
05/11/02 22:00:30
>>145
送れるるよ。modeコマンドで各種パラメータを設定するのを忘れずに。
あーあと、EscコードはEscキーでは発生しないからね。
147:145
05/11/02 22:12:20
>mode
ありがとうございます。だんだん思い出してきました。
148:145
05/11/02 22:18:06
>147
みつけました。あした一日遊んで見ます。
URLリンク(forum.nifty.com)
149:デフォルトの名無しさん
05/11/03 11:18:35
>>145
ターミナルソフト使ったほうが便利では?
150:デフォルトの名無しさん
05/11/06 00:33:09
半角かなの使用率高いな
151:デフォルトの名無しさん
05/11/06 19:01:32
制御系で働くものとしては、どの程度まで制御理論を理解するのが一般的なんだろ。
現実的には古典から最新理論まで全部理解してるって無理だと思うんだよなぁ
152:デフォルトの名無しさん
05/11/06 19:34:27
俺は古典制御ならわかるが、現代制御はさっぱりだな
でも、仕事では殆どが、通信の制御だったり、ロジックの制御だったり、
デバイスの制御だったりするから、
知らなくても全く問題なしだw
153:デフォルトの名無しさん
05/11/06 20:01:41
>91
亀だが、MSがDriver Install Frameworks Tools 2.0
とか称してそのあたりを纏めたツール・APIを公開している。
1.0のときには、ドライバ認証が要るとかいうふざけた話だったが。
154:デフォルトの名無しさん
05/11/07 17:37:06
>>153
情報ありがとうございます。
そのツールを使用して何とか
作成しようと思います。
155:デフォルトの名無しさん
05/11/08 16:38:40
TRON準拠のマイコンソフトなのですが、
デバッグのため、イベントが発生する毎にリングバッファにイベントをどんどん記録する、
という仕組みを追加する事にしました。
リングバッファに書き込む処理自体は共通のサブルーチンを用意して、イベントを引数で渡す、という
単純なもので特に問題ないのですが、
このサブルーチンを通常のタスク処理と、割込み両方から使いたいので、排他制御を考える必要が発生しました。
実装に当たって参考になる、なにか、良い資料やサンプル等ないでしょうか。または定番の方法など
156:名無し募集中。。。
05/11/08 18:39:08
NORTi/86 ?
排他ならセマフォが定番
157:デフォルトの名無しさん
05/11/09 00:06:45
>>155
正直そういう処理をするなら、排他以前に
イベントの検出直後〜リングバッファへの書き込みの間は
割り込みを禁止(Maskでは無い)しないと、イベントの発生順が
訳分からん状態になると思われ
158:サービスコールの不可分性
05/11/09 02:34:47
>155
以下、uITRONVer4仕様での話
固定長メモリプールからイベントを書き込むバッファをゲットする。
(固定長メモリプールの長さはイベントのデータの最大長とする。)
書きたいデータをそのバッファに書く。
ゲットしたデータをメールボックスで送り出す。
受けるタスクでメールボックスを受け、固定長メモリを解放する。
実装によりますが、非タスクコンテキストからもpget_mpf(),snd_mbx()が利用できるものが
多いと思います。少なくともNortiは、仕様書をみたところそうなっています。
この場合、特に排他処理を用いなくても問題ありません。というよりサービスコール
はリエントラントです。(正確には、サービスコールの不可分性の保証のことです)
方法は上記と違いますが、参考としては、私の知る限り、toppersJSPのログ機能です。
ログタスク経由か、直接出すかを選択できたと思います。ログタスク経由の場合はいったんキューイング
して出していたように記憶しています。肝心な排他制御しているかどうかは未確認
です。 していなければ、セマフォよりも、loc_cpuが、いいかと思います。
lockするのは、キューの管理ポインタの更新時のみに限定できると思います。
ver4からの仕様ですが、loc_cpu中といえどカーネル管理外の割込は可ですので、
lock中 != 割込ディセーブルです。お間違えなく。
159:デフォルトの名無しさん
05/11/09 15:29:49
レスありがとうございました。
説明が最初に不足しておりましたが、元々の処理のタイミング等に出来るだけ影響を与えないようシンプルにしたい、
という事情がありまして、
本当は割込み禁止はしたくなかったのですが、
検討の結果、157さんもおっしゃるような書き込み中割込み禁止にする、という方向になりました
結局、これが一番シンプルでした あとは、割込み禁止期間が少しでも短くなるようなロジックにしました
(セマフォはやや大掛かりになってしまうため不可)
ありがとうございました。
160:デフォルトの名無しさん
05/11/11 01:12:18
>>152
そんなもんだよね。
古典も完璧とはいえないけども
161:デフォルトの名無しさん
05/12/01 16:02:03
Forth使ってる人居る?
162:デフォルトの名無しさん
05/12/01 19:38:10
組み込みスクリプトに?
自作の中間言語インタプリタなら作って使った事はあるけど
163:デフォルトの名無しさん
05/12/02 00:45:42
業務系プログラマでつ。
制御系にジョブチェンジしたいんですが
(Java,C/C++、簡単なUSBのドライバならつくれます)
参考書籍を3冊くらい教えてください。
164:デフォルトの名無しさん
05/12/02 00:56:48
>>163
制御系たっていろいろあるからね。
目指すものによっていろいろ
ドライバ書けるなら、いろんなOSマスターして
ドライバ屋という手も無いではない
その場合はマニュアル見ながらひたすらソース読んだ方が
理解できたり。。。。。
165:デフォルトの名無しさん
05/12/02 11:19:25
>>163
弊社でよければ面接の用意をしますw
いや、業務系も制御系も人が足らんのよ。
166:デフォルトの名無しさん
05/12/02 13:10:43
昼間から2ch覗いてる管理職のいる会社には行きたくないです
167:デフォルトの名無しさん
05/12/02 13:18:20
大丈夫、夜間仕事しているから(ぉぃ
168:デフォルトの名無しさん
05/12/02 14:18:18
プログラミングではなく制御設計はこのスレではあまり関係ない?
PIDとかz変換とか。
169:デフォルトの名無しさん
05/12/09 00:35:52
正直、業務系に転職したい
業務系ならあと20年は働ける気がする
170:デフォルトの名無しさん
05/12/09 00:49:42
妄想だけじゃメシは食っていけないよ?
171:デフォルトの名無しさん
05/12/09 01:01:24
>>168
それをネタに話してもスレ違いと暴れる奴はいないと思うが
電気・電子板でやった方が人がいると思うぞ
俺は無理、ついていけない
172:デフォルトの名無しさん
05/12/10 08:48:03
マ板のクミコスレで聞いたら呆れられたのでこっちで聞かせて。 8051互換チップでDAC端子
が「作動状態」=Lo-Z状態=制御電圧が出ている状態、「停止状態」=Hi-Z状態で、テスタ
で見てみると0Vが出てるように見えます。 これと0Vが出てる状態とがどう違うか?なんです。
インピーダンスって、理科の時間には「交流、とくに高周波に対するコイルの抵抗」って習った
のに、直流の端子でインピーダンスがどういう意味を持つんですか?
173:デフォルトの名無しさん
05/12/10 09:44:22
>>172
またも板違い
電気・電子板が適切かと
制御電圧に対してHiZだって事でしょ
インピーダンスは交流もあるんだよ
174:デフォルトの名無しさん
05/12/10 12:50:43
>>172
そのテスターで、+電源とその端子の間の電圧を測って、それぞれ結果を報告してみて。それからだ
175:デフォルトの名無しさん
05/12/10 17:01:26
マ板って、、、、、あそこはネタスレだろう
しっかり釣られて、まともな話をし始めてるのが業だな
>>172
お前さんのやったことは
+端子と−端子を持っただけの時の電圧を測ったのと変わらん
176:デフォルトの名無しさん
05/12/10 17:35:19
>>172
ぶっちゃけ、その線が断線しているのと同じ状態<HiZ
177:名無し募集中。。。
05/12/11 21:13:24
ハイ・インピーダンスって抵抗値が大きすぎて繋がっていない事と同義だと思うの
TTL出力は出力と出力をつないではいけないけど、3ステート出力なら
出力していないときはハイインピーダンスにしておけば大丈夫(バスの基本原理)
178:デフォルトの名無しさん
05/12/15 17:30:36
ありがとう。理系的な解り方じゃないけど、感覚的にはわかったような気が・・・(^o^)
話は変わりますけど、安いROMライタありませんか?簡単なシリアル入出力をよく頼まれる
のですが、PCしかないのでHEXを送って向こうで焼いてもらうと、つまらないタイプミスが
1,2度はあります。弁当箱は貸してもらえそうなので、ROMライタを自前で持ってれば便利そう
なのですが・・・スマートライタというのは見たことあってコンパクトでいいなと思ったのですが、
\59,800ぐらいします。
179:デフォルトの名無しさん
05/12/15 17:55:28
仕事じゃないなら秋葉でジャンクを探すとか自作するとか。
仕事なら、レンタルで借りるとか。
#処で弁当箱とは何のこと?
#それがUVEPROMの消去用の紫外線灯の入った箱のことなら蛍光灯スタンド+殺菌等でも大丈夫w
180:デフォルトの名無しさん
05/12/15 18:58:47
URLリンク(www11.plala.or.jp)
日本製で安価なのは パレット11ハンディ
windowsソフトは別売だけど URLリンク(www.tensyo.com) にある
先頭の安価なのは秋月ならもっと安価
URLリンク(akizukidenshi.com)
これの使い勝手は判らない。
もし買ったらレポートよろしく
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4881日前に更新/253 KB
担当:undef