処理が通らない。
ba-sann 2013/5/26(Sun) 02:39:07|NO.54299
自分の通したい処理が通せません。
通したい処理は常駐して一定の処理を一定の間隔で通るようにしたいのですが
口での説明は難しいので図を書いてみます。
プロセス起動
@ 一度処理を通れば次に行く処理
【ソース】
A 常に通る処理
repeat 5 : wait 10
【ソース】
loop
B 一度処理を通れば次に行く処理
【ソース】
C 常に通る処理A
repeat : wait 10
【ソース】
loop
D 一度処理を通れば次に行く処理
ここにたどり着けません。。
Cでずっと処理がループされてるのでDに行けない状態です。
とてもわかりにくい図ですがこの図でも理解できる方いましたら
処理の通し方を教えてほしいです。。
それと
誰かが作ったとおもわれるサンプルコードの中に
#module
処理
#global
というような形で書かれてるものがありますが
あれは何なのでしょうか?
KA 2013/5/26(Sun) 08:45:36|NO.54300
>>Cでずっと処理がループされてるのでDに行けない状態です。
原因と解決策が分かっているのに、何を聞きたいのでしょうか。
>>#module
>>処理
>>#global
理解できれば便利なのですが、質問者に取っては混乱するだけです。
まずHSPの基本的な部分から覚えて下さい。
店長 2013/5/26(Sun) 09:46:45|NO.54301
ループの処理の確認をしてみましょう
ba-sann 2013/5/27(Mon) 01:17:06|NO.54341
>>Cでずっと処理がループされてるのでDに行けない状態です。
原因と解決策が分かっているのに、何を聞きたいのでしょうか。
KAさん
A 常に通る処理
repeat 5 : wait 10
【ソース】
loop
ここはリピート5回してまた次の処理にいって
その処理が終わるとまたここに戻ってリピード5回して・・・
って感じにしたいんですよね。。
KA 2013/5/27(Mon) 05:29:02|NO.54343
>>ここはリピート5回してまた次の処理にいって
>>その処理が終わるとまたここに戻ってリピード5回して・・・
2は、その通りに成っているけど・・・
私の読解力では理解不能です、申し訳ありません。
MillkeyStars 2013/5/27(Mon) 07:06:33|NO.54345
だから、Cのループは、どーしたいの?
Repeat の前にキャレットを持って行き、F1 キーでヘルプ見てみるといいよ。
もう面倒なので、とりあえず正解だけ。
C
repeat : wait 10
【ソース】
loop
になってるけど、ここがわからないなら、素直にループさせないように作りましょう。
ミント 2013/5/27(Mon) 08:00:04|NO.54346
>>C 常に通る処理A
>>repeat : wait 10
>>【ソース】
>>loop
>>Cでずっと処理がループされてるのでDに行けない状態です。
repeat回数が指定されてないのが原因なのでは?
もし違う場合は、Cに関連するものだけコメントアウトして処理を見直す。
正常に動いたら、可能であればCだけのソースを作れば問題が見えてくると思うよ。
それでも解決しない場合はソースを出すしかないですね。
ぴょぴょ 2013/5/27(Mon) 08:18:21|NO.54347
私の想像です。
多分 repeat 文の内部で何かの終了フラグがあり、
その終了フラグが 1 なら break する場合、
次の事に注意すべきです。
モジュール内で終了フラグを設定していた場合、
メインではグローバル変数しか参照しないので
モジュール内で設定した終了フラグは存在しない扱いになります。
その結果 repeat 文を抜けることがなくループする現象が起きます。
つまり repeat 文でモジュールの命令(関数)を呼び出してるのか?
確認して下さいね。
ぴょぴょ 2013/5/27(Mon) 08:20:15|NO.54348
追記。
> #module
>
> 処理
>
> #global
>
> というような形で書かれてるものがありますが
> あれは何なのでしょうか?
↑
これがモジュールですよ。