なんとかなるさね

マイコンをネタにブログを始めてみました


スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--   blog-entry-   category: スポンサー広告

go page top

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

関連記事

2016/09/30   blog-entry-823   category: RL78 /* 16bit,8bit CISC */

go page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。