RL78マイコン基板(RL78/G13)|Internet ExplorerからOCXを使わずにCOMポートを読み書きする
ウェブで調べ物をしていて、Internet ExplorerからOCXを使わずにCOMポートをリード/ライトする方法がある
ことを知りました。いつものように、ちょっと好奇心から試してみました。(前2つのエントリ(821, 822)と同様に
改造したKurumiWriterを使った後に試しています。そうしないと動作が暫く固まる現象が発生してしまう為。)
スクリプト: Script1.html
内容:
<script type="text/javascript">
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("cmd /c mode COM14 dtr=on > nul & mode COM14 BAUD=9600 PARITY=n DATA=8 STOP=2 to=on dtr=off", 7, true);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var com = fso.OpenTextFile("\\\\.\\COM14", ForReading);
document.open();
document.write(com.ReadLine() + '<br>');
document.write(com.ReadLine() + '<br>');
document.close();
com.Close();
</script>
実行方法と実行結果は以下の通りです。
start "" /wait "c:\Program Files\Internet Explorer\iexplore.exe" -nohangrecovery -noframemerging -nosessionmerging "E:\tools\micom\Renesas\Programming Tools\JScript\Script1.html"




追記 : 補足
なお、リードとライトを切り替えるには一旦COMポートをクローズしてからオープンし直す必要がありました。
更に、マイコン側からメッセージを送信する前にディレイを入れる必要がありました。
プログラム: http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=3245を参考にしました。
内容: 赤字の箇所を追加しています。(以前のエントリと同様にルネサスWebコンパイラでビルドしています。)
#include <Arduino.h>
int incomingByte = 0; // 受信データ用
void setup() {
Serial.begin(9600); // 9600bpsでシリアルポートを開く
Serial.print("Temperature: ");
Serial.println(getTemperature(TEMP_MODE_CELSIUS)); // MCU内蔵温度センサ
}
void loop() {
if (Serial.available() > 0) { // 受信したデータが存在する
incomingByte = Serial.read(); // 受信データを読み込む
delay(1000); // 相手側の受信準備が整うまでウェイトする
Serial.print("I received: "); // 受信データを送りかえす
Serial.println(incomingByte, DEC);
}
}
スクリプト: Script2.html
内容:
<script type="text/javascript">
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("cmd /c mode COM14 dtr=on > nul & mode COM14 BAUD=9600 PARITY=n DATA=8 STOP=2 to=on dtr=off", 7, true);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var com = fso.OpenTextFile("\\\\.\\COM14", ForReading);
document.open();
document.write(com.ReadLine() + '<br>');
document.close();
com.Close();
com = fso.OpenTextFile("\\\\.\\COM14", ForWriting);
document.open();
document.write("Can you receive? I will send: 'A' (65)" + '<br>');
document.close();
com.Write("A");
com.Close();
com = fso.OpenTextFile("\\\\.\\COM14", ForReading);
document.open();
document.write(com.ReadLine() + '<br>');
document.close();
com.Close();
</script>
実行結果は以下の通りです。

追記 : メモ
参考にさせて頂いたブログ
ブラウザ上からCOMポート!? - ぷろぐらむとか
http://futr.cocolog-nifty.com/blog/2008/04/post_7acf.html
読ませて頂いたブログ
COMポート一覧取得 - 揮発性のメモ
http://d.hatena.ne.jp/iww/20070306/com
追記 : メモ
Run メソッド - MSDN
https://msdn.microsoft.com/ja-jp/library/cc364421.aspx
OpenTextFile メソッド - MSDN
https://msdn.microsoft.com/ja-jp/library/cc428044.aspx
IE Command-Line Options - MSDN
https://msdn.microsoft.com/library/hh826025(v=vs.85).aspx
追記 : メモ
JavaScriptでArduinoをコントロール - ICS MEDIA - 株式会社ICS
https://ics.media/entry/6338
https://ics.media/entry/5538
https://ics.media/entry/4758
Node.jsからGR-ADZUKIを動かそう! - Yasuyuki Suzuki - Rulz
http://japan.renesasrulz.com/gr_user_forum_japanese/f/143/t/3449.aspx
追記 : メモ
あ、危なかった、、、 手を出すかも知れないところだった、、、 Rulz(というかShuta Kimuraさん)に感謝、、、
Rubicの新バージョンリリースについて - Shuta Kimura - Rulz
http://japan.renesasrulz.com/gr_user_forum_japanese/f/144/t/3652.aspx
JavaScript + Chrome Packaged Apps API を使用したシリアル通信Webアプリ - TechSketch - TIS株式会社
https://tech-sketch.jp/2013/08/javascript-chrome-packaged-apps-v2-api-web.html
Windows、Mac、LinuxでChromeアプリが廃止される! 開発者はどうすればよいか? - daiizの自由帳 - daiiz
http://daiiz.hatenablog.com/entry/2016/08/20/235600
代替品はこれかな? (もしFTDIのドライバが対応してくれれば特に何もしなくても使えるようになる筈なのかな?)
Access USB devices on the Web - Web Updates - Google
https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web
ことを知りました。いつものように、ちょっと好奇心から試してみました。(前2つのエントリ(821, 822)と同様に
改造したKurumiWriterを使った後に試しています。そうしないと動作が暫く固まる現象が発生してしまう為。)
スクリプト: Script1.html
内容:
<script type="text/javascript">
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("cmd /c mode COM14 dtr=on > nul & mode COM14 BAUD=9600 PARITY=n DATA=8 STOP=2 to=on dtr=off", 7, true);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var com = fso.OpenTextFile("\\\\.\\COM14", ForReading);
document.open();
document.write(com.ReadLine() + '<br>');
document.write(com.ReadLine() + '<br>');
document.close();
com.Close();
</script>
実行方法と実行結果は以下の通りです。
start "" /wait "c:\Program Files\Internet Explorer\iexplore.exe" -nohangrecovery -noframemerging -nosessionmerging "E:\tools\micom\Renesas\Programming Tools\JScript\Script1.html"




追記 : 補足
なお、リードとライトを切り替えるには一旦COMポートをクローズしてからオープンし直す必要がありました。
更に、マイコン側からメッセージを送信する前にディレイを入れる必要がありました。
プログラム: http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=3245を参考にしました。
内容: 赤字の箇所を追加しています。(以前のエントリと同様にルネサスWebコンパイラでビルドしています。)
#include <Arduino.h>
int incomingByte = 0; // 受信データ用
void setup() {
Serial.begin(9600); // 9600bpsでシリアルポートを開く
Serial.print("Temperature: ");
Serial.println(getTemperature(TEMP_MODE_CELSIUS)); // MCU内蔵温度センサ
}
void loop() {
if (Serial.available() > 0) { // 受信したデータが存在する
incomingByte = Serial.read(); // 受信データを読み込む
delay(1000); // 相手側の受信準備が整うまでウェイトする
Serial.print("I received: "); // 受信データを送りかえす
Serial.println(incomingByte, DEC);
}
}
スクリプト: Script2.html
内容:
<script type="text/javascript">
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("cmd /c mode COM14 dtr=on > nul & mode COM14 BAUD=9600 PARITY=n DATA=8 STOP=2 to=on dtr=off", 7, true);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var com = fso.OpenTextFile("\\\\.\\COM14", ForReading);
document.open();
document.write(com.ReadLine() + '<br>');
document.close();
com.Close();
com = fso.OpenTextFile("\\\\.\\COM14", ForWriting);
document.open();
document.write("Can you receive? I will send: 'A' (65)" + '<br>');
document.close();
com.Write("A");
com.Close();
com = fso.OpenTextFile("\\\\.\\COM14", ForReading);
document.open();
document.write(com.ReadLine() + '<br>');
document.close();
com.Close();
</script>
実行結果は以下の通りです。

追記 : メモ
参考にさせて頂いたブログ
ブラウザ上からCOMポート!? - ぷろぐらむとか
http://futr.cocolog-nifty.com/blog/2008/04/post_7acf.html
読ませて頂いたブログ
COMポート一覧取得 - 揮発性のメモ
http://d.hatena.ne.jp/iww/20070306/com
追記 : メモ
Run メソッド - MSDN
https://msdn.microsoft.com/ja-jp/library/cc364421.aspx
OpenTextFile メソッド - MSDN
https://msdn.microsoft.com/ja-jp/library/cc428044.aspx
IE Command-Line Options - MSDN
https://msdn.microsoft.com/library/hh826025(v=vs.85).aspx
追記 : メモ
JavaScriptでArduinoをコントロール - ICS MEDIA - 株式会社ICS
https://ics.media/entry/6338
https://ics.media/entry/5538
https://ics.media/entry/4758
Node.jsからGR-ADZUKIを動かそう! - Yasuyuki Suzuki - Rulz
http://japan.renesasrulz.com/gr_user_forum_japanese/f/143/t/3449.aspx
追記 : メモ
あ、危なかった、、、 手を出すかも知れないところだった、、、 Rulz(というかShuta Kimuraさん)に感謝、、、
Rubicの新バージョンリリースについて - Shuta Kimura - Rulz
http://japan.renesasrulz.com/gr_user_forum_japanese/f/144/t/3652.aspx
JavaScript + Chrome Packaged Apps API を使用したシリアル通信Webアプリ - TechSketch - TIS株式会社
https://tech-sketch.jp/2013/08/javascript-chrome-packaged-apps-v2-api-web.html
Windows、Mac、LinuxでChromeアプリが廃止される! 開発者はどうすればよいか? - daiizの自由帳 - daiiz
http://daiiz.hatenablog.com/entry/2016/08/20/235600
代替品はこれかな? (もしFTDIのドライバが対応してくれれば特に何もしなくても使えるようになる筈なのかな?)
Access USB devices on the Web - Web Updates - Google
https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web
- 関連記事
-
- RL78マイコン基板(RL78/G13)|Internet Explorerからrl78flashを起動して通信(シリアルモニタ)する
- RL78マイコン基板(RL78/G13)|Internet Explorerからrl78flashを起動してフラッシュ書き込みする
- RL78マイコン基板(RL78/G13)|Internet ExplorerからOCXを使わずにCOMポートを読み書きする
- RL78マイコン基板(RL78/G13)|KurumiWriter(改)で書き込んで自作utf8to932コマンドで日本語表示
- RL78マイコン基板(RL78/G13)|KurumiWriter(改)で書き込んでmoreコマンドでシリアル通信する設定
- RL78マイコン基板(RL78/G13)|KurumiWriter V1.00(ソース公開版)のフラッシュ書き込み時間の改善
- RL78マイコン基板(RL78/G13)|KurumiWriter V2.10とrl78flashの書き込み時間の比較 (CP2102編)
- RL78マイコン基板(RL78/G13)|CP2102+rl78flashで秋月のRL78搭載変換モジュールに書き込み
- RL78マイコン基板(RL78/G13)|CP2102+KurumiWriterで秋月のRL78搭載変換モジュールに書き込み
- RL78マイコン基板(RL78/G13)|rl78flashで書き込んでPython+pySerialでシリアル通信する設定
- RL78マイコン基板(RL78/G13)|TeraTermでログにタイムスタンプを付けて自動保存してくれる機能
- RL78マイコン基板(RL78/G13)|WebコンパイラのSerial.printに日本語出力させてTeraTermで表示
- RL78マイコン|日立/RSDの人のCC-RLの論文が情報処理学会の優秀論文(全54編)の1つに選ばれていた
- RL78マイコン基板(RL78/G13)|rl78flashで書き込んでTeraTermでシリアル通信する設定
- RL78マイコン基板(RL78/G13)|KurumiWriter V1.00(ソース公開版)とrl78flashの書き込み時間の比較
2016/09/30 blog-entry-823 category: RL78 /* 16bit,8bit CISC */
| h o m e |