- - PR -
VB.NET->(USB)->FOMAを操作したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-12-11 13:41
どういった意味での 2 連続かに依りますが、"2 連続で" がまずいのではないでしょうか? それと、"動く気配" の "動く" が、何を期待しているのかが良くわからないです。
こういった通信では、メモリというより Stream でしょう。 Stream の破棄は Close メソッドでしょうけど、Using で括られているので、 Dispose メソッドも、Raise されているはずですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-12-11 14:50
こんにちは
操作1:VBのボタンを1回押します 結果1:FOMA端末が操作されて、電話をかけはじめます (1秒以上待って) 操作2:VBのボタンを1回押します 結果2:FOMA端末が操作されて、電話をかけはじめます (1秒以上待って) 操作3:VBのボタンを1回押します 結果3:FOMAがまったく反応しない 以後はFOMAにつながってるUSBケーブルを抜き差ししても、パソコンを再起動しても、FOMAを再起動してもFOMAがまったく反応しません。ただ、何日かして、VBを起動して ボタンを押すと上記のように、2回だけ動いて、以後はFOMAが反応しなくなります。 | ||||||||
|
投稿日時: 2006-12-11 20:10
1つ発見したのですが、電話番号を変えると2回は発信する事ができるようです。
プログラムの中にもプリント文を入れると、プログラムの中に入っているのは わかりました。 「FOMA側で2回間違い電話をかけると、以後その番号へは発信しない」という 仕様でもあるのでしょうか? | ||||||||
|
投稿日時: 2006-12-11 21:43
今日は
終了時にATHコマンドを送出するとどうですか? Formaではないですが以前携帯の制御はしたことが有りますが問題なく出来ました。 サンプルにのっているソフトは非常に荒っぽくて正常に動作するか分かりません(ダイヤルのみしATHコマンドも出ないで終了) 又、複数コマンドを出す時にはコマンドを出した後OKかERRORのアンサーを見て次のコマンドへ進む必要が有ると思います。 | ||||||||
|
投稿日時: 2006-12-12 00:10
FOMAはモデムとして振舞っている(と思われる)ので、発信規制に ひっかかっているのではないでしょうか。 今は規制は緩和されているようですが、それでも同じ番号への連続 した再発信は規制されていると思います。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||
|
投稿日時: 2006-12-13 13:58
こんにちは
ATHやATZのコマンドを入れてみたのですが、動作は変わりませんでした。 rvmxさんがおっしゃられてる「コマンド送信後のステータス」を取得したい のですが、どのようにやるかヒントをいただけないでしょうか? dim ans as integer ans=com5.Write("ATDT 555-0100" & vbCrLf) print ans という文ではエラーとなりできませんでした。。。 | ||||||||
|
投稿日時: 2006-12-13 15:29
今日は
ATHやATZの送出は、送受間でコミニューケーションが取れた状態で無いと無理かも知れません。 com5.Write("ATDT 555-0100" & vbCrLf) は戻り値はなかったと思います。 下記に非同期で受信概要を示します(C#ですが)。 System.IO.Ports.SerialPort com5 = new System.IO.Ports.SerialPort(); com5.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.com5_DataReceived); ...... com5.open(); ...... private void com5_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { byte[] bts=new byte[1024]; int rbyte=com.Read(bts, 0, bts.Length); | ||||||||
|
投稿日時: 2006-12-21 17:20
こんにちは、
C#は難しくちょっとわかりませんでした。 以下のページをみつけたので、実行してみたのですが、 私が欲しい結果ではありませんでした。要するに、実際に電話を発信して、 その電話番号が生きていたのかどうか?はこの結果からはわかりませんでした。 実際の動作結果ステータスはどうしたら取得できるのでしょうか・・・? ===参考=== http://msdn2.microsoft.com/ja-jp/library/7ya7y41k(VS.80).aspx ===ソース=== Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Using com5 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM5", 4800) com5.DtrEnable = True Dim i As Integer Dim returnStr As String = "" For i = 1 To 4 com5.Write("ATDT 03-0000-31" & i & vbCrLf) Dim Incoming As String = com5.ReadLine() MessageBox.Show("今は" & i & "回目でコマンドは" & Incoming & "です") System.Threading.Thread.Sleep(10000) Next i End Using End Sub ===結果=== (電話をかけた) 今は1回目でコマンドはATDT 03-XXXです (電話をかけた) 今は2回目でコマンドはOKです (電話をかけた) 今は3回目でコマンドはATDT 03−XXXです (電話をかけた) 今は4回目でコマンドはOKです |