- PR -

組み込み機器でJava

投稿者投稿内容
bun
常連さん
会議室デビュー日: 2004/11/06
投稿数: 20
投稿日時: 2004-11-10 12:00
インギさん お返事ありがとうございます。

引用:

インギさんの書き込み (2004-11-10 11:54) より:
アプリケーションやアプレットの区別がなかなかつかず苦労されているようですので、まずは簡単なサンプルを作ってみてはいかがでしょうか?いずれ必要になることでしょうし。
それから判断されても遅くないでしょうし、結果的にはその方が早いと思いますよ。


はい、SDKは導入して、お勉強中です。^^
CUIでの環境は構築できたようです。一応、超簡単なプログラムは動きました。^^

おもしろそうですし、覚えておいて損はなさそうですので、じっくり取り組もうと思っています。
Elle
常連さん
会議室デビュー日: 2004/09/29
投稿数: 23
投稿日時: 2004-11-11 10:24
計測器ではありませんが、同じく組み込み屋です。
その昔、ご同様のものを開発する必要がありまして、そのときいろいろ調べました。 (^^)

アプレットを使っても、基本的にWebサーバ側にはJavaVMは不要です。
単に、画像と同じくバイナリファイルとしてJavaのプログラムをクライアントから取れればOk。
なので、計測器側はJavaについては何も気にする必要はありません。
アプレットとの通信も、ソケット通信でつないでしまえば、計測器側はC言語で組んであっても大丈夫ですよ。

このような例の場合、cgiを実装する必要も無ければ、サーブレットを意識する必要もないわけですし、Webサーバもかなり簡単なもので十分です。
基本的に、クライアントから指定されるファイルを送り返すだけです。ファイルといっても、単にデータの塊。計測器側のRTOSには「ファイル」という概念が無くてもいけます。ROMテーブルで十分。
Webサーバ自体を作ってしまえば、メモリもかなり抑えられますし、さまざまな小細工を入れることもできます。

css(クライアントサイド)だろうが、JavaAppletだろうが、htmlだろうが、これらはすべてWebブラウザの仕事。
サーバは何も気にしません。単に言われたファイルを送り返せば大丈夫です。
bun
常連さん
会議室デビュー日: 2004/11/06
投稿数: 20
投稿日時: 2004-11-11 19:36
Elleさん お返事ありがとうございます。

引用:

Elleさんの書き込み (2004-11-11 10:24) より:

アプレットを使っても、基本的にWebサーバ側にはJavaVMは不要です。
単に、画像と同じくバイナリファイルとしてJavaのプログラムをクライアントから取れればOk。
なので、計測器側はJavaについては何も気にする必要はありません。


組み込み機器(のコード領域)に、htmlやJavaのクラスファイルをどのように埋め込むのか
そのしくみが理解できません。

おわかりになりましたら、ご教授願います。

MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-11-12 00:48
>組み込み機器(のコード領域)に、htmlやJavaのクラスファイルをどのように埋め込むのか

リソースのような、定数を扱う機構とか
RAMディスクのような何らかのファイルシステムとかでは、
ICカードとかにも展開してゆけますし。

applet 折れ線グラフ
applet 株価チャート
の二語で検索するといろいろ出ます。
http://misa.ac.affrc.go.jp/java/howto.html

[ メッセージ編集済み 編集者: MMX 編集日時 2004-11-12 09:17 ]
Elle
常連さん
会議室デビュー日: 2004/09/29
投稿数: 23
投稿日時: 2004-11-12 11:19
引用:

bunさんの書き込み (2004-11-11 19:36) より:
組み込み機器(のコード領域)に、htmlやJavaのクラスファイルをどのように埋め込むのか
そのしくみが理解できません。

おわかりになりましたら、ご教授願います。


これは、javaやhtmlとは関係なく、その組み込み機器のプログラムがどのようにコンパイルされ、リンクされ、ロードされているかで違います。
OSがファイルをサポートしているのであれば、ファイルを使ってもいいし、リンカやローダがリソースをサポートしているのであれば、リソースを使っても良いでしょう。

その類が全くサポートされていないものであれば、「ソース」に埋め込むことになりますね。
htmlもjavaのクラスファイルも、webサーバにとっては「バイナリデータ」として送り返せば良いわけです。
つまり、htmlのファイル(index.htmlなど)やjavaのクラスファイル(myclass.class)やjarファイル(myapplet.jar)を、ツールか何かを使って、const char配列にしてしまえば十分です。(index.htmlなら文字列でもいいかな)

コード:

const char myapplet_jar[]={
/* この部分はjarファイルをヘキサダンプして、エディタマクロやスクリプト言語を使って作り出す。*/
0x00,0x01,0x02, ...
...
};
const int myapplet_jar_size=sizeof(myapplet_jar);

/* HTMLならテキストなので、このような感じでもできる */
const char index_html[]=
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
"<HTML>\n"
"<HEAD>\n"
"<TITLE>計測器XXX メインメニュー</TITLE>\n"
"<META HTTP-EQUIV=\"Content-type\"content=\"text/html; charset=shift_jis\">\n"
"<LINK HREF=\"commonres/ooindex.css\" TYPE=\"text/css\" REL=\"stylesheet\"\n>"
"</HEAD>\n"
"<BODY>\n"
"<H1>計測器XXX メインメニュー</H1>\n"
...
"</HTML>\n"
; /* 途中セミコロンが無く、最後にだけセミコロン */
const int index_html_size=sizeof(index_html)-1; /*-1は最後の\0の分 */



(編集:コードがバグってた&サイズ追加)


[ メッセージ編集済み 編集者: Elle 編集日時 2004-11-12 11:30 ]

スキルアップ/キャリアアップ(JOB@IT)