[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 09/12 15:48 / Filesize : 253 KB / Number-of Response : 983
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

制御系なら俺に聞いてもいいぜ(8)



1 名前:デフォルトの名無しさん [2005/09/06(火) 17:13:46 ]
まったり逝きましょう。
ハード寄りの話も大歓迎です。
道具話も楽しくやれるならやってくらさい。
この世界は処理系依存はあたりまえだから、処理系明記するのを忘れないでね!

過去ログ
制御系なら俺に聞いてもいいぜ(7)
pc8.2ch.net/test/read.cgi/tech/1109102528/
制御系なら俺に聞いてもいいぜ(6)
fun.kz/test/read.cgi/tech/1099574832/ (新タイプミラー)
制御系なら俺に聞いてもいいぜ(5)
fun.kz/test/read.cgi/tech/1079102543/ (新タイプミラー)
制御系なら俺に聞いてもいいぞ(4)
pc5.2ch.net/test/read.cgi/tech/1068869894/ (行方不明)
制御系なら俺に聞いてもいいぞ(3)
pc2.2ch.net/tech/kako/1059/10594/1059488975.html
制御系なら俺に聞いてもいいぞ(2)
pc2.2ch.net/tech/kako/1038/10380/1038094914.html
制御系なら、俺に聞け!
pc3.2ch.net/tech/kako/1002/10021/1002176627.html
関連過去ログ
●●●くみこの組み込み相談室●●●
pc3.2ch.net/tech/kako/988/988084737.html

52 名前:デフォルトの名無しさん [2005/09/25(日) 13:42:48 ]
多分「拘泥」と「「コーディ」ング」をかけたところが本人的に
すばらしく知的でハイセンスなギャグだと感じて
この感動を2chの皆様にも披露したくなったんではないでしょうか

53 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 15:13:28 ]
最近見かける、会社の入り口に置いてある電話番号案内も制御系か?
ああ言うの作る仕事に転職したいんだが

54 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 16:56:37 ]
いや、あれは単に交換機の仕様からメモし直して貼ってあるだけかと。電話番号案内を
作るみたいな仕事は制御系とは違うぞ。 交換機のほうを作るのは制御系だが。

55 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 20:10:14 ]
uartのringバッファの管理について、こんなことを考えました。
ライトポインタ・リードポインタ・バッファ内滞留数をuintで考えます。
バッファ内滞留数はタスク側・割り込み側両方で++/--するので、タスク側でdi/eiが必用。
ライトポインタは書き込み側のみが、リードポインタは読み込み側のみがそれぞれ変更します。
「バッファ内に有効バイトがあるかどうか」だけなら「滞留バイト数」の情報は不要で、
(書き込みポインタ != 読み込みポインタ) の判定でできます。今は滞留バイト数を参照して
例えばバッファのサイズを超えて書き込むなどを避けているのですが、
「ライトポインタとリードポインタ(どちらも2のn乗のバッファサイズのモジュロで循環している)だけから
 滞留バイト数を計算する」 ことは可能でしょうか?
それが可能なら「滞留バイト数」の情報を削ることができて(゚Д゚)ウマーなのですが。

56 名前:デフォルトの名無しさん mailto:sage [2005/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 mailto:sage [2005/10/06(木) 06:35:52 ]
□1は知ってます。di/eiは滞留数の更新時だけやってます。

□2:ありがとうございます。幾つか数値を入れてやってみたらうまくいきますね。
  ラップアラウンド中どうなるかが判らなかったので質問したのですが、ヤッホー(^o^)

58 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 07:15:37 ]
2のべき乗のサイズならmodの部分は and か bclr で 書ける

59 名前:55 mailto:sage [2005/10/06(木) 09:02:26 ]
□2について、「滞留数」情報の有るときと1点だけ違いが見つかりました。
滞留数情報があれば、wp==rp で、滞留数==BufSizeという、極端な滞留が許されるのですが、
滞留数情報が無いと、滞留数は (BufSize-1) までになりますね。
でも、ふつうはそこまで溜めないうちにガードがかかるようにシステム/アプリを作るはずだから
問題にはならないとおもいます。

>>58 そうですね。遅い石なのでその辺も使ってます。sizeof 配列 が2**nなら
%演算を書いても cが and を出してくれるかどうか試してみようとおもってます。

60 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 09:28:01 ]
wp=rpを使うとなると、メイン側で、バッファの値を読むところまで 割り込み禁止しないといけない
そうすると、禁止されてる間に処理しなければいけないデータが来たときに厄介だよ





61 名前:55 mailto:sage [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 23:13:25 ]
ていうか受信にリングバッファなんて必要?
どうせマイコンでやるようなシリアル通信なら相手から来るコマンドなり何なりは
デリミタ付きなりパケットにデータ長が含まれてるなりするわけでしょ?

つまり、ある1バイトを受信したとき、その時点でそこが一区切りの情報かどうか
はっきりするわけだ。

だったらその時点で受信バッファの内容を「コマンドバッファ」にコピーしたらいいじゃん。
そうすりゃ受信をリングバッファにする必要なんてないよ。

もちろんこの方式でも、コマンドバッファの内容が未処理のうちに
次のコマンドの受信が完了してしまったらどうするのかって問題はあるが。

63 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 01:12:17 ]
>>62
寝言は寝てからにしてくださいね

64 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 01:40:45 ]
>>63
幼稚な奴。
どうせ反論するなら、なぜ受信バッファはベタな配列ではなく
キューにする必要があるのか根拠を言えばいいのに。
まあそんな能力はないのに口だけ出したいんだろうけど。

今日日こういうレスする奴が40面下げたオッサンだったりするんだよなあw

65 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 01:48:59 ]
>>62
(><)ノ お答えしまっす!

確かに電文が短いうちはそれでいいと思うけど
なが〜い電文を逐次処理する羽目になったときに
リングバッファがいるかな〜 という感じです!

66 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 02:18:43 ]
データの長さは関係ないと思うけど。

っていうか、普通は(逐次処理できるのなら)逐次処理できるからこそ
リングバッファなんてイラネってなるはずだと思うけど。

例えばWinのメッセジーキューはPOSTされたメッセージを逐次処理できないんで
キューになってるわけね。

マイコンでやるようなシリアル通信なんてたいていはデリミタか指定バイト数分受信したら
受信バッファの内容を全部パーサーに投げればいいような処理でしょ。
こんなのリングバッファでやる必要なんて全くないじゃん。

67 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 02:44:13 ]
>>66
(><)ノ 補足しまっす!

リングバッファのもうひとつの利点は
シリアル受信を割り込み屋さんにお任せすることにより
キューを処理中にもガスガスとデータ受信できることで、
これがただのベタ配列だと あー キューを2本用意すれば
いけると思ったあなた! 鋭いですが そのキューの処理は
>>62でご自身も書いてますように いろいろある感じです!

68 名前:名無し募集中。。。 mailto:sage [2005/10/08(土) 02:45:44 ]
リングバッファが複雑すぎて作れないって人は無理に作らなくて良いよ

69 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 02:49:08 ]
複雑すぎるという言葉自体に驚いた

70 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 02:59:09 ]
(><)ノ データ受信とメイン処理を一緒にするのはお勧めしません!

>>66のようにコードを書くと、データの受信のあとに
処理が終わるまで次のデータは受信できない? ということに
なりかねないコードになります。 相手は問答無用でデータを
押し付けてくる機械マンのケースが多いので、つらいDEATH。

じゃあデータの処理を別スレッドに飛ばそうか? とかいうと
つまんない受信処理が本スレ、メインの処理は別スレ、と
なんだかコードの視認性が悪くなってしまいますのです。



71 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 03:07:35 ]
(><)ノ ですが、限定された条件下でなら確かにリングバッファは不要です!

短かめのデータ受信→なんか処理→ACK/NAK返送
という流れが確定し、今後30年はその仕様に変化がないと
クライアント様にハンコを突かせたなら、もうそれは>>66さんの
コードで必要十分なわけです。これはこれで見やすくなります。

72 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 03:12:03 ]
>>67>>70
わかってないな。

>>62に書いた「問題」ってのはリングバッファでリングが一週回ってしまった
場合の問題とほとんど等価だよ。
つまりどちらにしろ問題は起こりうるわけで、それはリングバッファを採用する
理由にはなりにくい。

>>66のようにコードを書くと、データの受信のあとに
>処理が終わるまで次のデータは受信できない? ということに
なりません。今日的な常識でいって普通はね。
前のコマンドの受信完了から次のコマンドの受信完了までの時間はまあ
短くてもmSecのオーダーといっていいだろう。

パーサーがコールされるまでにmSecオーダーレイテンシがありうるシステムなんて
今時ありえんでしょ。
仮にあるとすれば、リングバッファにしようがどんなデータ構造を採用しようが
同じこと。いずれ地獄は来ることになる。

73 名前:55 mailto:sage [2005/10/08(土) 03:18:44 ]
私の製品の実装例では、4.8Kで受信、数十バイト可変長のASCIIフレームが揃ったらその中から
数値情報を抽出するなんてことをやります。1文字の受信間隔は2mS、CPUは3MHzの8bitで
乗除算命令が無いので、sscanfの整数変換相当の機能を実行するのに数十mSオーダーで
時間かかります。ですからあるフレームの処理中に普通に次のフレームの頭何バイトかは受信が
あるわけで、>>62>>66みたいなわけには行かないのです。

74 名前:55 mailto:sage [2005/10/08(土) 03:24:48 ]
すげ〜な、こんな時間に起きてる人が少なくとも2人・・・ 私は早起きのほうですが。
リングバッファのサイズは、受信では重い処理が何十ミリかかるか、送信では一度にどの位
の情報を書くかを見つくろって決めます。全部で8KBしかないメモリを、制御用変数とスタックと
リングでやりくりします。

75 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 03:32:10 ]
>>74
(><)ノ バトンタッチします!
逃げるついでに今から仮眠取ってきます!

76 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 06:54:06 ]
せっかくFIFO式(リングバッファ)にしているのに、最後に
コマンドバッファド式にコピーして使ってるせいで台無しになってるコードをメインテナンスした所だ。

コマンドバッファ式だと、受信して処理して結果を返すというサイクルで回ってる間は問題ない。
でも、通信路の速度を最大にしようとすると、
コマンドを処理している間に次の受信をさせる事になる。

受けと取って処理して返信だと、処理時間がゼロでも2倍以上かかる。
USBーシリアルなんて使うと、さらにディレイが入る事になる。
PCやマイコンは高性能になっても、通信路(ボーレート)は物理的な制限で上げられないし
USB-シリアルの遅延なんてのはボーレートを上げても改善しない。

だから、コマンドを結果を待たずに、FIFOがある限りどんどん送りつけて(フロー制御して)
という方向になってるわけよ

77 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 07:15:39 ]
>もちろんこの方式でも、コマンドバッファの内容が未処理のうちに
>次のコマンドの受信が完了してしまったらどうするのかって問題はあるが。

 この対策がフロー制御です。 FIFO(リングバッファ)を持っていると
メイン: 返信用FIFOが一杯(に近づいていれば) コマンド処理をしない
受信: 受信FIFOが一杯に近づいて来たら、(ちょっと待ってね)状態にする。
 という決まったスタイルで安全に対応出来ます。
 (ちょっと待ってね)状態にしても何バイトか送りつけられる事が殆どなので、それを考慮するとか、
  コマンド処理が分散して処理されて時間がかかる場合は、それを考慮するとか
 そういう事も、決まったスタイルには含まれています。

コマンドバッファ方式だと、コマンドを受け取って即座に(ちょっと待ってね)状態にしないといけないでしょ?
そうすると、一般的に通信速度が上がらないわけで、そっから、「対策しる!」と言われたら、
あちこち対策入れて、だんだん訳が判らない状態になるわけです。

そんなわけで、PICのようによほど小さい規模のマイコンで無い限りは、シリアル通信ではFIFOを
入れるというのが一般的です

78 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 15:22:21 ]
ハードにFIFOを持っているが、ハードのFIFO自身にフロー制御機構を持たない場合、停止要求してから
何バイトもダダ漏れになるから(一昔前のPCの大部分に載ってたNS16550Aとか)、フロー制御を下手に
過信するのは危険だし、それなりの対策は打っておくのが普通。


79 名前:デフォルトの名無しさん [2005/10/15(土) 11:43:23 ]
保守あげ

80 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 13:52:09 ]
>>78
そのハード、アラート信号線とか無いの?



81 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 13:55:23 ]
>>80
>ハードのFIFO自身にフロー制御機構を持たない場合

82 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 13:59:32 ]
>>81
あ、そうかw
3本線で工場内を繋いでるのかw

83 名前:デフォルトの名無しさん [2005/10/15(土) 14:02:05 ]
>>82
飛躍しすぎ

84 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:08:16 ]
まあ、FIFO内のコードを全部解読してから実際のコマンドを発行する仕組みにすれば良いのではないか?
そうそう途切れる事無くコードが送られて来る事も無いだろうに。

85 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:20:23 ]
おまいらのにプロセッサボードにはシリアルポートしか付いてないのか?

86 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:22:45 ]
>>85
つうより、ハード屋さんがそれしか繋げてくれなかったって場合の話らしいよ。

87 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:22:51 ]
>>85
エーテルネットやらUSBやら無線やらうらやましいです

88 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 20:50:50 ]
>>85
たまに3ポート内蔵とかだとウキウキしちゃうよね。
LEDでモールスはもう面倒になってきました。

89 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 00:37:34 ]
スレ違いかもしれないですが、
WindowsでUSB接続のデバイスを扱うプロクラムを
作りました。
そのデバイスドライバをインストール
させるのに、Windowsのコマンドか何か(API)からインストール
させる方法をご教示ください。

プログラムのインストーラまでは作ったのですが、
そのデバイスドライバも一緒にそのインストーラで
インストールさせたいです。
infファイルとsysファイル、関連dllはあります。

今は、USBを接続させ、ウィンドウズの自動認識による
ドライバインストールのウィザードからインストール
させるようにしています。

90 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 03:50:52 ]
>>89
昔のWin DDKにinfファイルからドライバインストールするサンプルコードが付いてたな
俺はそれをDLLにして、InstallShieldから呼び出して使ったよ。
最近はその辺触ってないし、DDKもDLできなくなっちゃったからわからんけど、
Win関係のスレで聞いたほうがいいかもね



91 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 09:54:07 ]
>>90
そうです、まさしくそれをしたいです。
「デバイス ドライバ インストール」等で 
ぐぐったりしましたが、なかなか見つかりませんでした。

Win関連板、スレの場合、多分OSの基本的な
話題ばかりかと思い、実践している方が多そうな
このスレで聞いてみました。

92 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 11:42:26 ]
>>91
寧ろこのスレはインストーラーなんて興味ないって香具師が多い希ガス。
現にうちのプロジェクトなら、「ドライバをインストールしてください」の一言で終わる。

93 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 11:47:06 ]
過疎ってるけど、WDMスレのが近いかな

94 名前:デフォルトの名無しさん [2005/10/29(土) 07:15:04 ]
教えてください。
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 名前:デフォルトの名無しさん [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 12:20:12 ]
回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
まあ問題の性質上しょうがないのかも知れないが、
それでもせめてエラーの内容ぐらい書けばいいのに。

っていうか、スレ違いのような気がする。
まあマルチがはわわ〜、なんだろうけどさ。

97 名前:デフォルトの名無しさん [2005/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 名前:デフォルトの名無しさん [2005/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 名前:デフォルトの名無しさん [2005/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 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:11:43 ]
スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。

なにか面白い書き込みを楽しみに来てるわけで。
細かい具体的内容書かれれば書かれる程、ゲンナリしちゃうわけ。

質問は結構だけど、もう少し整理してくれ。
理解出来ないから丸投げじゃ、面白くもなんともないよ



101 名前:デフォルトの名無しさん [2005/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 名前:デフォルトの名無しさん [2005/10/29(土) 17:17:06 ]
>回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
>っていうか、スレ違いのような気がする。
>まあマルチがはわわ〜、なんだろうけどさ。
↑(だから、コードを貼ったのだ)
矛盾

>理解出来ないから丸投げじゃ、面白くもなんともないよ

結局、答える能力はないから、自己投影で最後に難癖つけてきただけだろ。


103 名前:デフォルトの名無しさん [2005/10/29(土) 17:18:11 ]
>制御系なら・・・

「羊頭狗肉」ってこういうことを言うんだ。

104 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:22:53 ]
だからさ、 回答したくなるような+アルファをクレって、
そういう芸風はもう飽きてるんだよ。


105 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:25:35 ]
お前のためのスレじゃない
飽きたなら消えろ

106 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:29:25 ]
おいおい・・・このスレの最初のスレから3割以上レスしてたこの俺に消えろっていうんだな?

107 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:30:17 ]
その通り
邪魔だ消えろ

108 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:43:28 ]
判ったよ。 じゃあ、後は頼んだ。

109 名前:デフォルトの名無しさん [2005/10/29(土) 17:47:07 ]
AD変換のシステム(計測マン・マシーンインターフェースソフトも含む)
は計測制御の基本だよ。計測が出来なければ制御(DAシステム)なんて
出来るわけがないからだ。しかもCPUの温度に関してときてるのだ。それなのに、
「制御」のスレで、その質問に高飛車に「スレ違い」って言うような連中が、
なんら批判されず、のさばってられるスレっていうのは奇妙なものだ。


110 名前:デフォルトの名無しさん [2005/10/29(土) 17:47:58 ]
住人さんたち、スレタイに「系」がついてることを忘れるなよ。



111 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:50:53 ]
>>109 誰も高飛車に言ってないだろ。 そんだけ講釈出来るんだらお前が答えて終わらせてやれよ。

112 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 18:00:48 ]
結局 (俺も含めて) 誰も回答できないわけか…。

113 名前:デフォルトの名無しさん [2005/10/29(土) 18:02:45 ]
>スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。
こういうの、高飛車だけではないな。陰湿な排他的性格も含むから。
あ、そうか。ここの「制御」って「人間排他制御」のことか。(藁

今や水冷とかファンコントロールがオーバークロッカーだけでなく静音マニアでも
でもあたりまえ。それを「仕事」とか「タダ働き」だとさ。呆れるね。

114 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 18:03:25 ]
金にならねえやっつけ仕事ほど、無駄な時間の浪費はない。

115 名前:108 mailto:sage [2005/10/29(土) 18:08:02 ]
やれやれ

質問者へ
 1、まず、どういう立場なのかとか多少は自分の事も書いてみて
 2、つぎに、何をしようとしているのか買いてみて
 3、そして、問題は何なのか簡潔に書いてみて


 で、メモリマップファイルで、通信しようとしているようだけど、
 書かれているコードではバイト数をゼロでREADオンリーにしてる。 後から変更しているの?

116 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 19:06:55 ]
MBMの本体が動いてないからじゃないの?

117 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 20:06:59 ]
本家にBBSあるんだからそこで聞けよヴォケ
www.livewiredev.com/bbs/forumdisplay.php?s=&forumid=68


118 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 20:16:48 ]
制御系とか関係ないじゃん。
MBM DLLをVBから使いたいってことじゃん。

ス レ 違 い

119 名前:96 mailto:sage [2005/10/29(土) 20:16:51 ]
>>100の書き込みは俺じゃないよ。
っていうか、>>96の書き込みを見て、それでそれに応えるつもりで
コードをコピペしてるんだったら、質問者は基本的な日本語の読解力が怪しいんじゃないの?

まあ>>102が質問者かどうかわからないけど、それにしてもね。

とりあえずWin32のCのintに対応するVBの型はIntegerじゃなくてLongだよ。
それが障害の原因かどうかはわからないけどね。

120 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 20:20:46 ]
大体質問に答えてもらおうって態度じゃないな。
俺のところじゃそのモニタを使えてるが
絶 対 に 教 え な い



121 名前:108 mailto:sage [2005/10/29(土) 20:39:04 ]
あ勘違いだ。 サイズゼロだと、最大を指定したのと同じなんだね。

それから
 data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); <―でエラー
と書いてあるから、 data  への書き込みに失敗したのだろう。

となると、CMBMが作成されていないのに、メソッドが呼び出されたという所かな


122 名前:108 mailto:sage [2005/10/29(土) 20:46:58 ]
ところでVBからDLLを呼び出すからエラーの追跡が面倒になるのだと思うのだが
VBだけではポインタが無いから難しいと思ったのだろうけど・・・・・

なんか昔、VBだけでやれた気もするんだけどなあ

最近、こういうのはDelphi使ってるから忘れちゃったよ。Delphiならポインタ使えるし

123 名前:デフォルトの名無しさん [2005/10/29(土) 21:20:34 ]
VB厨(笑)

124 名前:108 mailto:sage [2005/10/29(土) 21:35:58 ]
ちょっとぼんやり思い出した。
long 変数でポインタを受けて、MoveMemoryとかのAPIで VarPtr(構造体) で移動ってな所だったかな?



125 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 22:04:26 ]
まあ制御系でもVB使わない事もないが、さすがにメインじゃ使わない。
PC用のGUIが必要なら DelphiかBCBだろ。
ただ、実験とか社内ツールだとExcelVBAなら結構多いかもな。

一昔前は測定器にPC使ってVBなんてのも多かったけど、
なんか大変動じゃないけどいつの間にかVBやってた所はZ80と一緒に地盤沈下。

126 名前:96 mailto:sage [2005/10/29(土) 22:12:59 ]
>>125
本当にこの世界の人?
この世界に限らず、特定用途向けのGUIアプリなんて今でもほとんどVB製ですけど。
じゃなきゃ、ここ二年ぐらいはドトネト。

Delphi使ってるなんてところは日本じゃほとんど見たことない。

127 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 22:19:01 ]
>>196
そうか?
なんかVBアプリからの置換の仕事が多いから一昔前は多かったというのは実感してるが、
昔はバブルだったのか、これが今の請負額より1桁上の金額取ってたのかよというのばかりだけどな

128 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 00:10:28 ]
組み込み専門の俺には割り込む余地も無い(w


129 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 00:12:57 ]
>>128
組込み専門なら、割り込みもこなせなくてどうする!

130 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 02:38:39 ]
最近は、そういうのは OS がやってくれたりするからなぁ。



131 名前:デフォルトの名無しさん [2005/10/30(日) 11:07:10 ]
組み込みと制御系って何が違うの?

132 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 12:55:35 ]
制御系は組込み系の部分集合。

133 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 12:57:08 ]
まあ、諸説あるだろうけど…

組み込み系というのは、機器に組み込まれて動作するソ
フトウェアを言う。つまり、どちらかと言うと実装上か
ら見た区別。

制御系は、機器を制御するソフトウェアを言う。つまり、
用途から見た区別。

だと思う。

134 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 16:55:54 ]
組み込み系⊆制御系
じゃないの?

135 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 17:01:48 ]
>>134
は?

136 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 17:55:26 ]
>>132, >>134
例えば、物流の制御システムなんかだと PC 使ってやってることもあるから、
制御系だけど組み込み系じゃないって感じがする。

逆に、電卓のプログラムは組み込み系だけど制御系というのはちょっと違う感
じがする。

137 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 20:04:49 ]
>>136
LCDの制御やボタンの入力などを読んだりするのは?

138 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 22:33:03 ]
>>137
気分的には制御と言いたくない。

139 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 22:56:11 ]
マジレスすると、電卓にソフトウェア部分は無い。

140 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 22:58:02 ]
そんな餌で、釣れるんか?



141 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 23:13:35 ]
>>140
連れてるじゃん

142 名前:俺も含めて大漁だな、オイ。(w mailto:sage [2005/10/30(日) 23:27:11 ]
オマエモナー。

143 名前:デフォルトの名無しさん mailto:sage [2005/10/31(月) 00:28:02 ]
制御系っていうと、最近は会社によっては、
MPUの仕様やプログラムは一切知らずに、
ステートフローや伝達関数書いてシミュレーションしたり、
実験してパラメータ決定するだけで、
その組み込みは、他部署にお任せってのも多々あるみたいだけど、
このスレでは、そういうやからもおkなん?

144 名前:デフォルトの名無しさん mailto:sage [2005/10/31(月) 00:34:27 ]
>>143
ああ、あの「試作品作るなんてお金の無駄です。」ってやつな。
いいんじゃね?

145 名前:デフォルトの名無しさん mailto:sage [2005/11/02(水) 21:47:03 ]

こんにちは、今回、会社にあるん古いバーコード・プリンタを
復活させる必要が出てきました。マニュアルを読むとRS232c経由で
制御できるようなんですが、XPのDOS窓から、RS232Cにエスケープコマンドって
送れますか?

昔、DOSの頃パラレルのプリンタをエスケープシーケンスで制御して遊んだ事が
あるんですが。出来ることは覚えていますが、TYPE CONとかなんだったか
忘れてしまいました。

詳しいサイトとかありましたら教えてください。


146 名前:デフォルトの名無しさん mailto:sage [2005/11/02(水) 22:00:30 ]
>>145
送れるるよ。modeコマンドで各種パラメータを設定するのを忘れずに。
あーあと、EscコードはEscキーでは発生しないからね。

147 名前:145 mailto:sage [2005/11/02(水) 22:12:20 ]
>mode
 ありがとうございます。だんだん思い出してきました。

148 名前:145 mailto:sage [2005/11/02(水) 22:18:06 ]
>147
みつけました。あした一日遊んで見ます。
forum.nifty.com/fpcu/dosvcmd/mode.htm#TOC4

149 名前:デフォルトの名無しさん mailto:sage [2005/11/03(木) 11:18:35 ]
>>145
ターミナルソフト使ったほうが便利では?

150 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 00:33:09 ]
半角かなの使用率高いな



151 名前:デフォルトの名無しさん [2005/11/06(日) 19:01:32 ]
制御系で働くものとしては、どの程度まで制御理論を理解するのが一般的なんだろ。
現実的には古典から最新理論まで全部理解してるって無理だと思うんだよなぁ

152 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:34:27 ]
俺は古典制御ならわかるが、現代制御はさっぱりだな
でも、仕事では殆どが、通信の制御だったり、ロジックの制御だったり、
デバイスの制御だったりするから、
知らなくても全く問題なしだw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<253KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef