なんとかなるさね

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


スポンサーサイト 

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

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

go page top

Arduino IDE|GadgetRenesas基板用IDE4GR 1.6.5(のようなもの)を作るには? 考え直し中(7) 

3つ前のエントリでe2 studio用スケッチ環境のフォルダ構成をArduino IDEのボードパッケージ互換に出来ない
ものかどうか気になったので、1つ前のエントリでちょっと試してみたのですが、カスタムライブラリのサンプル
プログラムが含まれていなかったことに気付きましたので、今回フォルダ構成に追加するようにしてみました。
更に、Arduino IDE用のサンプルプルグラムはinoファイルなのでe2 studio上では素朴にビルド出来ませんので、
cppファイルにしたe2 studio用のサンプルプログラムを新しいフォルダを作って追加するようにしてみました。



また、Arduino IDEの方でも、このようなフォルダ構成になっていても特に問題無いようでした。






なお、新しいフォルダのサンプルプログラムをcppファイルにしないでおいたところ、以下のようにサブ階層に
サンプルプログラムが現れてしまいました。(なんとなくですが、cppファイルにしておくと現れなくなるのは、
以前のエントリでcppファイルのスケッチを試した時のように、然るべきinoファイルが最低1つ無いとスケッチ
として認識されないことに関係しているような気がします。)




追記 : メモ

加えて、e2 studio用のサンプルプログラムの場合、cppファイルにするだけでなく、#include <Arduino.h>を
追加する必要があるのですが、以下のスクリプトファイルとバッチファイルを作成して変換するようにしました。
(PicalicoFreeのサンプルプログラムには既に#include <Arduino.h>が記述されていましたので除外しました。)

スクリプトファイル: do_file_a.js
内容:

// This code is in the public domain. You may use, modify or distribute it freely.
// 文字列置換&ファイル最終更新日時変更
// 各種ドキュメントサイト:
// Windowsスクリプトテクノロジ http://msdn.microsoft.com/ja-jp/library/cc392483.aspx
// FileSystemObject (UTF-8不可) http://msdn.microsoft.com/ja-jp/library/cc428071.aspx
// ADO APIリファレンス http://msdn.microsoft.com/ja-jp/library/cc408215.aspx
// ADO Stream (UTF-8可) http://msdn.microsoft.com/ja-jp/library/cc364272.aspx
// ADO 列挙定数 → Windowsフォルダで adojavas.inc または adobvs.inc を検索する
// 更新日時変更 http://technet.microsoft.com/ja-jp/magazine/2008.03.heyscriptingguy.aspx

var adTypeText = 2; // ADO StreamTypeEnum 列挙定数
var adSaveCreateOverWrite = 2; // ADO SaveOptionsEnum 列挙定数

var srcfname = WScript.Arguments(0); // 置換前ファイル名
var srcfcset = "ascii";              // 置換前ファイルの文字セット
var dstfname = WScript.Arguments(1); // 置換後ファイル名
var dstfcset = "ascii";              // 置換後ファイルの文字セット

var srcstrm = new ActiveXObject("ADODB.Stream");
var dststrm = new ActiveXObject("ADODB.Stream");
var text;

srcstrm.Type = adTypeText;
srcstrm.Charset = srcfcset;
srcstrm.Open();
srcstrm.LoadFromFile(srcfname);
text = srcstrm.ReadText();
srcstrm.Close();

text = text.replace("#include", "#include <Arduino.h>\n#include");
text = text.replace("\r\n#include <Arduino.h>\n", "\r\n#include <Arduino.h>\r\n");

dststrm.Type = adTypeText;
dststrm.Charset = dstfcset;
dststrm.Open();
dststrm.WriteText(text);
dststrm.SaveToFile(dstfname, adSaveCreateOverWrite);
dststrm.Close();

var fso = new ActiveXObject("Scripting.FileSystemObject");
var shell = new ActiveXObject("Shell.Application");
var folder = shell.NameSpace(fso.GetFile(dstfname).ParentFolder.Path);
var item = folder.ParseName(fso.GetFile(dstfname).Name);
item.ModifyDate = fso.GetFile(srcfname).DateLastModified;


バッチファイル: do_file_a.bat
内容:

@rem This code is in the public domain. You may use, modify or distribute it freely.

@if not exist %1_sketch\libraries\%2\gr_examples\%3\ mkdir %1_sketch\libraries\%2\gr_examples\%3\
@cscript -nologo do_file_a.js %1_sketch\libraries\%2\examples\%3\%3.ino %1_sketch\libraries\%2\gr_examples\%3\%3.cpp


バッチファイル: kurumi_folder_a.bat
内容:

@rem This code is in the public domain. You may use, modify or distribute it freely.

call do_file_a.bat  kurumi  EEPROM          eeprom_clear
call do_file_a.bat  kurumi  EEPROM          eeprom_read
call do_file_a.bat  kurumi  EEPROM          eeprom_write

call do_file_a.bat  kurumi  Ethernet        AdvancedChatServer
call do_file_a.bat  kurumi  Ethernet        BarometricPressureWebServer
call do_file_a.bat  kurumi  Ethernet        ChatServer
call do_file_a.bat  kurumi  Ethernet        DhcpAddressPrinter
call do_file_a.bat  kurumi  Ethernet        DhcpChatServer
call do_file_a.bat  kurumi  Ethernet        TelnetClient
call do_file_a.bat  kurumi  Ethernet        UdpNtpClient
call do_file_a.bat  kurumi  Ethernet        UDPSendReceiveString
call do_file_a.bat  kurumi  Ethernet        WebClient
call do_file_a.bat  kurumi  Ethernet        WebClientRepeating
call do_file_a.bat  kurumi  Ethernet        WebServer
call do_file_a.bat  kurumi  Ethernet        XivelyClient
call do_file_a.bat  kurumi  Ethernet        XivelyClientString

call do_file_a.bat  kurumi  Firmata         AllInputsFirmata
call do_file_a.bat  kurumi  Firmata         AnalogFirmata
call do_file_a.bat  kurumi  Firmata         EchoString
call do_file_a.bat  kurumi  Firmata         I2CFirmata
call do_file_a.bat  kurumi  Firmata         OldStandardFirmata
call do_file_a.bat  kurumi  Firmata         OldStandardFirmata
call do_file_a.bat  kurumi  Firmata         ServoFirmata
call do_file_a.bat  kurumi  Firmata         SimpleAnalogFirmata
call do_file_a.bat  kurumi  Firmata         SimpleDigitalFirmata
call do_file_a.bat  kurumi  Firmata         StandardFirmata
call do_file_a.bat  kurumi  Firmata         StandardFirmata

以後省略


バッチファイル: sakura_folder_a.bat
内容:

@rem This code is in the public domain. You may use, modify or distribute it freely.

call do_file_a.bat  sakura  EEPROM          eeprom_clear
call do_file_a.bat  sakura  EEPROM          eeprom_read
call do_file_a.bat  sakura  EEPROM          eeprom_write

call do_file_a.bat  sakura  Firmata         AllInputsFirmata
call do_file_a.bat  sakura  Firmata         AnalogFirmata
call do_file_a.bat  sakura  Firmata         EchoString
call do_file_a.bat  sakura  Firmata         I2CFirmata
call do_file_a.bat  sakura  Firmata         OldStandardFirmata
call do_file_a.bat  sakura  Firmata         OldStandardFirmata
call do_file_a.bat  sakura  Firmata         ServoFirmata
call do_file_a.bat  sakura  Firmata         SimpleAnalogFirmata
call do_file_a.bat  sakura  Firmata         SimpleDigitalFirmata
call do_file_a.bat  sakura  Firmata         StandardFirmata
call do_file_a.bat  sakura  Firmata         StandardFirmata

以後省略


追記 : メモ

ちなみに、ちょっと無理矢理ですが、以前のエントリでArduino IDEのinoファイルのスケッチをe2 studio上で
(Arduino Eclipse pluginを使わずに)ビルド出来るようにする方法を試したことがあります。その時、サンプル
プログラムのビルドも試してみたことがあります。(あくまで、ちょっと無理矢理にですが。)

関連記事

2016/04/17   blog-entry-756   category: Arduino Lib & CrossGCC

go page top

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