アプリケーション リファレンスマニュアル
FRH17TJ010
1
はじめに
本マニュアルは、FRH17TJ010 ハンディターミナル(以降ターミナルと呼ぶ)のライブラリについて説明します。ターミナ ルのアプリケーション開発を行う前によくお読みください。
ターミナルのアプリケーション開発には、『ルネサス マイクロコンピュータ 開発環境システム SuperH RISC engine
C/C++
コンパイラ』を使用します。開発前に、コンパイラのマニュアルもよくお読みください。ターミナルのアプリケーション開発には、C言語を使用します。アプリケーション開発には
C
言語の知識が必要になりま す。無線通信アプリケーションを開発するには、SS 無線モデム(FRH-SD07T)の知識が必要になります。開発前に
『FRH-SD07T取扱説明書』をよくお読みください。
1. 本書について
1.1. 注意
1.
本書の内容の一部または全部を、無断で他に転載することは禁止されています。ソフトウェアについても内容の一 部または全部を無断で複写することは禁止されています(バックアップを除く)。2.
本書の内容は、将来予告なしに変更する場合があります。商標
SuperH
は株式会社ルネサステクノロジの(日本における)商標です。2
目次
ページ
はじめに
... 1
1.
本書について...1
1.1.
注意...1
概要
... 4
1.
入出力機能...41.1.
画面表示...4
1.2.
表示補助...12
1.3.
キー入力...131.4.
バーコード入力...16
2.
ファイルシステム...17
2.1. RAM
ファイルシステム...17
2.2. F-ROM
ファイルシステム...173.
通信...183.1.
赤外線通信...183.2.
無線通信...19
4.
ターミナル制御...20
4.1.
電源...20
4.2.
タイマ...204.3.
レジューム...214.4.
環境設定...21
4.5.
無線設定...21
4.6.
省電力設定...215.
ファイル転送...22プログラム開発について... 23
1.
プログラム...232.
メモリ...24
ライブラリ... 25
1.
ヘッダファイル...25
2.
ターミナルライブラリ...26
3. SH
コンパイラ標準関数について...197
付録
...199
1. SCANINFO
構造体...200
1.1.
構造体と設定内容...2001.2.
EAN−128対応の設定について...201
1.3.
UPCプリアンブルの設定について...201
2.
ファイル転送,インストール関数の画面表示...2023.
PUT_
EXTCHARACTER関数の使い方...2043.1.
外字データのサイズ...204
3.2.
外字データの作成方法...204
4.
PICTURE関数の使い方...207
4.1.
画面座標について...207
4.2.
表示データについて...2085. SSREG
構造体...2095.1.
構造体と設定内容...2093
7.1.
省電力モードの説明...2117.2.
省電力モード動作シーケンス...2124
概要
本章では、ターミナルの基本的な動作の解説をします。解説の中には、ターミナルのアプリケーション開発をするための 注意事項も含まれています。
1. 入出力機能
ターミナルには、画面表示,表示補助,キー入力,バーコード入力の
4
つの入出力機能があります。これらについて説 明します。1.1. 画面表示
画面表示機能には、文字示,グラフィック表示,コントラスト調整,バックライト機能があります。
画面サイズは横:120,縦:80 ドットあり、ユーザー表示領域とシステム表示領域に分かれています。ユーザー表示領域 には、文字やグラフィックを画面に表示することができます。システム表示領域は、システムの状況を表示する領域で す。システム表示領域には、主・副電池の残量とシフトキーの押下状態を表示します。(この領域には、文字やグラフィッ クを表示することができません。)
ユーザー表示領域を増やしたいときは、システム表示領域を非表示設定にすることで、ユーザー表示領域を拡張できま す。このときシステム表示領域に表示する電池残量の状況,シフトキー押下状態を画面で見ることはできません。ただ し、主電池残量がほとんど残っていない状態では、画面の右下に電池マークが点滅表示されます。
アプリケーションが初期起動したときは、システム表示領域は表示します。
ユーザー表示領域
システム表示領域
16 ドット 64 ドット 120 ドット
実際の画面に、この線はありません。
5
文字表示
ターミナルには
12
ドット,16ドットの2
つのフォントを搭載しています。フォントごとに、縮小ANK,ANK,全角(シフト JIS
漢字第一・第二水準)が使用できます。ただし、12 ドット,16 ドットフォントの文字を同時に表示することはできませ ん。使用するフォントのタイプをfont
関数で指定してください。アプリケーションが初期起動したときは、16ドットフォント タイプが設定されます。文字の表示領域は、フォントタイプにより変わります。そのときのイメージを以下に示します。
12
ドットフォントタイプ設定16
ドットフォントタイプ設定システム表示領域
システム表示領域あり システム表示領域なし
4 ドット 4 ドット
4 ドット 4 ドット
112
ドット 112 ドット80
ドット64
ドット表示可能領域 表示不可領域
システム表示領域
システム表示領域あり システム表示領域なし
4 ドット
8 ドット 表示可能領域
72
ドット60
ドット120
ドット120
ドット表示不可領域
6
フォントタイプと文字種ごとの最大文字表示数を下記に示します。文字
文字は以下のコードが使用できます。
縮小
ANK,ANK
文字コードとして0x20〜0x7E
までの記号,数字,英字と、0xA1〜0xDFまでのカタカナが使用でき ます。全角文字コードとして
0x8140〜0x84BE
までの非漢字と、0x889F〜0x989E までの第一水準漢字、0x989F〜0xEABE
までの第二水準漢字が使用できます。制御文字コードとして
0x08,0x0D
のバックスペース,改行が使用できます。上記文字コードのほかに、文字のイメージ(ユーザーにて作成)を表示することができます。(put_extcharacter 関数参 照)
ターミナルで扱えない文字が指定されたとき、■を表示します。
フォントタイプと文字種ごとのドットサイズを下記に示します。
縮小
ANK ANK
全角12
ドットフォントタイプ6
ドット×6ドット6
ドット×12ドット 12ドット×12ドット16
ドットフォントタイプ8
ドット×8ドット8
ドット×16ドット 16ドット×16ドット文字表示は通常の文字表示のほかに、文字の反転表示を指定できます。反転表示を指定したあとの文字は反転され た文字を表示します。(chardeco関数参照)
システム表示領域表示状態 システム表示領域非表示状態
桁 行 桁 行
縮小
ANK 20
文字10
文字20
文字12
文字ANK 20
文字5
文字 20文字6
文字12
ドットフォントタイプ全角 10文字
5
文字 10文字6
文字縮小
ANK 14
文字8
文字 14文字 10文字ANK 14
文字4
文字14
文字5
文字16
ドットフォントタイプ全角
7
文字4
文字7
文字5
文字7
カーソル
カーソル形状には、アンダーバーカーソル,ブロックカーソル,カーソル表示なしがあります。カーソルのサイズは、指定 されたフォントタイプにより変わります。また、カーソルのブリンク設定ができます。
フォントタイプとカーソルの形状ごとのカーソルサイズを下記に示します。
アンダーバーカーソル ブロックカーソル
12
ドットフォントタイプ6
ドット×2ドット6
ドット×6ドット16
ドットフォントタイプ8
ドット×2ドット8
ドット×8ドット 文字はカーソル位置に表示され、文字表示後に1
文字分右にカーソルを移動します。カーソル位置の制御は、制御文字(BS〈0x08〉,CR〈0x0D〉)表示による移動と、直接位置を指定して移動することがで きます。BSを文字表示関数で画面に表示すると、カーソルが
ANK
文字1
文字分戻し、その位置にある文字を消去し ます。CRを文字表示関数で画面に表示すると、カーソルが次の行の先頭(左端)に移動します。カーソル位置指定は、フォントタイプ,システム表示領域の表示状態により指定できる最大値が変わります。
システム表示領域表示状態 システム表示領域非表示状態
桁 行 桁 行
12
ドットフォントタイプ1〜20 1〜10 1〜20 1〜12 16
ドットフォントタイプ1〜14 1〜8 1〜14 1〜10
カーソル位置と文字表示
カーソル位置に文字表示を表示したときのカーソルの移動について、以下で説明します。
カーソル位置に縮小
ANK
またはANK
文字を表示すると、カーソルは1
桁右へ移動します。例:3桁,4行目に
ANK
文字「A」を表示したとき、カーソルは4
桁,4行目に移動します。カーソル位置に全角文字を表示すると、カーソルは
2
桁右へ移動します。例:3桁,4行目に全角文字「あ」を表示したとき、カーソルは
5
桁,4行目に移動します。A
あ
8
カーソルが画面の右端にあるとき縮小
ANK
文字を表示すると、文字表示後カーソルを次の行の先頭(左端)に移 動します。例: 14桁,4行目に縮小
ANK
文字「A」を表示したとき、カーソルは1
桁,5行目に移動します。カーソルが画面の右端にあるとき
ANK
文字を表示すると、文字表示後カーソルを次の行の先頭(左端)に移動し ます。例: 14桁,4行目に
ANK
文字「A」を表示したとき、カーソルは1
桁,6行目に移動します。カーソルが画面の右端にあるとき全角文字を表示すると、カーソルを次の行の先頭(左端)に移動したあと全角文 字を表示します。
例: 14桁,4行目に全角文字「あ」を表示したとき、カーソルは
3
桁,6行目に移動します。カーソルが最上行にあるとき縮小
ANK
を表示すると、カーソルは1
桁右へ移動します。例:3桁,1行目に縮小
ANK
文字「A」を表示したとき、カーソルは4
桁,1行目に移動します。カーソルが最上行にあるとき
ANK
まはた全角を表示すると、文字は表示せずカーソルのみ1
文字分移動します。例:3桁,1行目に全角文字「あ」を表示したとき、カーソルは
5
桁,1行目に移動します。A
A
あ
A
9
動しません。この位置に全角文字を表示したときは、文字を表示しません。
例: 14桁,8行目に
ANK
文字「A」を表示したとき、カーソルは14
桁,8行目から移動しません。A
10
グラフィック表示
グラフィック表示は指定した座標に、点,直線,長方形,図形(ユーザーにて作成)が描画できます。
グラフィック表示は、文字表示と同時に表示することができます。そのため、フォントタイプにより表示できる領域が変わり ます。(文字表示と同じ)
12
ドットフォントタイプ設定16
ドットフォントタイプ設定フォントタイプごとの使用可能ドット数を下記に示します。
システム表示領域表示状態 システム表示領域非表示状態
横 縦 横 縦
12
ドットフォントタイプ 120ドット(0~119) 60ドット(0~59) 120ドット(0~119) 72ドット(0~71)16
ドットフォントタイプ 112ドット(0~111) 64ドット(0~63) 112ドット(0~111) 80ドット(0~79)括弧内の数字は、指定可能な座標の値 システム表示領域
システム表示領域あり システム表示領域なし
4 ドット
8 ドット 表示可能領域
72
ドット60
ドット120
ドット120
ドット表示不可領域
システム表示領域
システム表示領域あり システム表示領域なし
4 ドット
4 ドット 4 ドット4 ドット
112
ドット 112 ドット80
ドット64
ドット表示可能領域 表示不可領域
11
コントラスト調整
コントラスト調整は、0を基準値とし-3〜3までの
7
段階が設定できます。マイナス値を指定すると薄く、プラス値を指定す ると濃くなります。(contrast関数参照)バックライト
バックライト機能には、バックライトを点灯・消灯するほかに、キー連動バックライト
ON,バックライト点灯時間設定機能が
あります。キー連動バックライト
ON
を設定すると、キー押下に連動してバックライトを点灯します。バックライト点灯時間設定を設定すると、バックライト点灯から点灯時間を監視し、設定した時間が経過すると、自動的に バックライトを消灯します。
キー連動バックライト
ON,バックライト点灯時間設定は、環境設定のメニューからも設定できます。
薄い 基準値 濃い
|――+――+――+――+――+――|
-3 0 3
12
1.2. 表示補助
表示補助機能は、視覚・聴覚・触覚でターミナルの状況を、ターミナル利用者に伝えます。
LED
LED
は、ライブラリのファイル転送関数・バーコード読取関数で使用します。以下のときにLED
点灯で、ターミナル状 態を伝えます。赤色
LED
点灯 :ファイル転送(受信)待ち 赤色LED
点滅 :ファイル転送(受信)中緑色
LED
点灯 :ファイル転送(送信)待ち・バーコードを正読したとき 緑色LED
点滅 :ファイル転送(送信)中橙色
LED
点灯 :ファイル転送中の通信エラーが発生したときこれら状態のほかに、ライブラリで
LED
の点灯の制御ができます。ライブラリでのLED
の制御は優先順位が一番高く 設定されています。ファイル転送関数・バーコード読取関数を使用する場合は、本ライブラリでLED
を消灯してから使 用してください。(led_off関数参照)ブザー
ブザーは、ライブラリのファイル転送関数・バーコード読取関数・キー押下時のクリック音で使用します。以下にブザー鳴 動する状態を示します。
ファイル転送終了したとき ファイル転送異常終了したとき バーコードを正読したとき
キークリック音設定時のキー押下したとき
これら状態のほかに、ライブラリでブザー鳴動の制御ができます。ライブラリでのブザー鳴動の制御は優先順位が一番 高く設定されています。ファイル転送関数・バーコード読取関数・キー押下時のクリック音を使用する場合は、本ライブラ リでブザーを停止してから使用してください。(
buzzer_stop
関数参照)バイブレータ
バイブレータは、ライブラリのバーコード読取関数で使用します。以下にバイブレータが動作する状態を示します。
バーコードを正読したとき
これら状態のほかに、ライブラリでバイブレータの動作の制御ができます。ライブラリでのバイブレータの動作の制御は 優先順位が一番高く設定されています。バーコード読取関数を使用する場合は、本ライブラリでバイブレータを停止し てから使用してください。(vibrator_stop関数参照)
13
1.3. キー入力
キー入力機能は、押されたキーをキーバッファに格納します(電源キー、シフトキーを除く)。入力されたキーは、キーバ ッファに格納されたキーを読み出すことで、どのキーが押されたかわかります。ここでは、キー入力をキーバッファからデ ータを読み出したときとして説明します。
キーバッファには
64
個までのデータが格納できます。キーバッファがオーバーフローしたとき、オーバーフローしたデー タを破棄します。キー入力機能の特徴として、「2キーロックアウト」,「キーリピートなし」です。
ターミナルで使用できるキーの種類を下記に示します。
キー種類 キー
トリガーキー
[TRG]
機能キー [S1],[S2],[F1]〜[F4]
(特に[S1],[S2]をスペシャルキー、[F1]〜[F4]をファンクションキーと呼びます)
電源キー
[PW]
エンタキー
[ENT]
シフトキー
[S]
バックスペースキー
[BS]
クリアキー
[CLR]
数字キー [0]〜[9],[.]
機能キー
(ファンクションキー)
機能キー
(スペシャルキー)
トリガーキー
エンタキー 電源キー シフトキー
バックスペースキー
クリアキー 数字キー
14
キーデータ
キー入力により、入力できるキーデータを下記に示します。(keycharwait関数で入力)
キー キーデータ
シフト
OFF(通常)状態
シフトON
状態TRG 0xE0
0xE0
S1 0xE1
0xE1
S2 0xE2
0xE2
CLR 0x18
0x18
BS 0x08
0x08
1 0x31 (1) 0x41,0x42,0x43,0x31 (A,B,C,1)
2 0x32 (2) 0x44,0x45,0x46,0x32 (D,E,F,2)
3 0x33 (3) 0x47,0x48,0x49,0x33 (G,H,I,3)
4 0x34 (4) 0x4A,0x4B,0x4C,0x34 (J,K,L,4)
5 0x35 (5) 0x4D,0x4E,0x4F,0x35 (M,N,O,5)
6 0x36 (6) 0x50,0x51,0x52,0x36 (P,Q,R,6)
7 0x37 (7) 0x53,0x54,0x55,0x37 (S,T,U,7)
8 0x38 (8) 0x56,0x57,0x58,0x38 (V,W,X,8)
9 0x39 (9) 0x59,0x5A,02D,0x39 (Y,Z,-,9)
0 0x30 (0) 0x24,0x25,0x2B,0x2F,0x3A,
0x2A,0x5C,0x30
($,%,+,/,:,*,¥,0)
.
0x2E (.) 0x20,0x2E (SP,.)
ENT 0x0D
0x0D
F1 0xF1
0xF5
F2 0xF2
0xF6
F3 0xF3
0xF7
F4 0xF4
0xF8
キーデータは、16進数で表記してあります。括弧内は、文字を意味します。
入力できるキーデータは、シフトの
ON・OFF
状態により変わります。シフトON
状態では英字と数字が入力できます。1 つのキーに複数の文字が割り当ててあり、同一キーを複数回押すこどで他の文字を入力できます。たとえば、シフト
ON
状態で、[1]のキーを5
回押したとすると、1回目は(A),2回目は(B),3回目は(C),4回目は(1),5
回目は再度(A)と入力ができます。15
シフト状態
シフト状態は、[S]キーを押すごとにシフトの
ON・OFF
状態を変えます。一度シフト状態を替えると、再度シフトキーが押 されるまで、シフト状態は変わりません。シフトがON
状態のとき、システム表示領域が表示状態であれば、システム表示 領域の左端に[S]を表示します。(シフト状態は、関数からでも替えることができます。)エコー表示
エコー表示が設定されているときに、キー入力(キーバッファからのキーデータ読み出し)をすると、押されたキーを画面 に表示することができます。エコー表示に対応しているキーは、[0]〜[9],[.],[BS],[ENT]キーです。
シフト
OFF
状態で[0]〜[9],[.]キーを入力すると、カーソル位置に押されたキーの数字を表示し、カーソルを移動しま す。シフト
ON
状態で[0]〜[9],[.]キーを入力すると、カーソル位置に押されたキーの英字,数字を表示します。シフトON
状 態で1
つのキーが複数回押されたときは、カーソルは移動せず、文字をカーソル位置に表示します。文字を確定したい ときは、ほかのキーが押されると、文字は確定されたものとしカーソルを移動します。たとえば、[1]のキーを
5
回、そのあと[2]のキーを押したとすると、カーソル位置に1
回目は(A),2回目は(B),3回目は(C),4
回目は(1),5回目は再度(A)を表示し、[2]キーを押すとカーソルは1
文字分右に移動し[2]キーの最初の文字で ある(D)を表示します。[BS],[ENT]キーはシフト状態の ON・OFF
に関係なく、[BS]キーを入力すると、カーソルを1
文字分後退させ、カーソ ル位置の文字を消去します。[ENT]キーを入力すると、カーソルを次の行の先頭に移動します。カーソルの移動に関しては、画面表示のカーソル位置と文字表示を参照してください。
キーとレジューム起動
本ターミナルは、アプリケーションがレジューム起動したとき、キーバッファに定数
KEY_RESUME(FRH17.H
を参照)を書き込みます。アプリケーションは、キーバッファよりキーを読み出すことで、アプリケーションがレジューム起動したか 否か確認することができます。
A B C 1 A AD
[1]を押す [1]を押す [1]を押す [1]を押す [2]を押す [1]を押す
16
1.4. バーコード入力
バーコード読取機能は、トリガーキーを押すとレーザーが発光し、バーコードを読み取ることができます。
読取ができるバーコードの種別を下記に示します。
WPC(JAN・EAN・UPC)
NW-7
Interleaved 2 of 5
Industrial 2 of 5
(Standard 2 of 5)CODE-39 CODE-93 CODE-128 EAN-128
バーコード読取機能では、バーコードの読取設定をバーコード種別ごとに設定できます。 は初期値を示します。
バーコード種別 設定内容
WPC
アドオンコード読取設定(読取許可・禁止・強制読取)WPC
寸法誤差の許容範囲設定(許容範囲設定を有効にする・無効にする)マージンチェックの調整設定(調整あり・なし)
UPC-E
プリアンブル設定(プリアンブルあり・なし)UPC-A
プリアンブル設定(プリアンブルあり・なし)UPC-E
からUPC-A
への変換設定(変換する・しない)EAN-8
からEAN-13
への変換設定(変換する・しない)NW-7 CD
チェック設定(7DR・MOD16・なし)CD
データ付加設定(付加する・しない)マージンチェック幅の調整設定(調整あり・なし)
スタート,ストップコードの付加指定(付加する・しない)
スタート,ストップコード文字指定(小文字・大文字)
Interleaved 2 of 5 CD
チェック設定(チェックあり・なし)CD
データ付加設定(付加する・しない)Industrial 2 of 5 CD
チェック設定(チェックあり・なし)(Standard 2 of 5)
CD
データ付加設定(付加する・しない)CODE-39
フルアスキー変換設定(変換する・しない)CD
チェック設定(チェックあり・なし)CD
データ付加設定(付加する・しない)マージンチェック幅の調整設定(調整あり・なし)
スタート,ストップコードの付加指定(付加する・しない)
CODE-128 CD
チェック設定(チェックあり・なし)EAN-128
対応設定(対応する・しない)バーコードが正しく読み取れたときの確認設定ができます。確認には
LED
の緑色点灯,ブザーの鳴動,バイブレータ の動作があります。17
ターミナルのファイルシステムには、低水準ファイル入出力関数(弊社独自)を使用してアクセスします。ファイルへのデ ータアクセスは、すべてバイナリーモードで行われ、テキストモードはサポートしていません。∗
ファイル名は、8.3 形式のファイル名で指定してください。ファイル名には、数字(0〜
9),英字( A〜Z
),記号(!#$%&'()-@^_`{}~)が使用できます。ファイル名に小文字の英字が指定されたときは、大文字の英字に変換されます。
ファイルシステムは、ディレクトリ機能はサポートしていません。
ファイルアクセス中にエラーが発生した場合は、ファイルシステムは
errno(グローバル変数)にエラー詳細を格納しま
す。【注意】
ファイルへのアクセス中に、電源 OFF が発生した場合はファイルデータが破損する可能性がありますが、次回の電源 ON でレジューム起動するとファイルデータは保護されます。ファイルデータを保護するにはレジューム設定を有効
(ON)にしてください(resume 関数参照)。また、ファイルアクセス中は[PW]キーによる電源 OFF 禁止設定を行うことをお 勧めします(powerkey 関数参照)。
2.1. RAM ファイルシステム
RAM
ファイルシステムは、RAM にファイルを作ります。ファイル内のレコードを変更する収集データファイル等の格納 に向いています。ファイルは最大
64
個まで登録できます。ファイルとして使用できるデータ領域は約
1.7M
バイトです(ファイルの使用状況により異なります)。RAM
ファイルシステムはファイルデータ512
バイトを1
セクタとして、セクタ単位でデータ領域を使用します。ファイル作 成またはデータ512
バイト書き込み毎に1
セクタの確保を行います。1セクタ確保するとデータ領域の空きサイズが減少 します(ファイルには1
セクタ分のデータ書き込みスペースが作られます)。2.2. F-ROM ファイルシステム
F-ROM
ファイルシステムは、F-ROMにファイルを作ります。ファイル内のレコードの変更を必要としないマスターファイ ル等の格納に向いています。ファイルは最大
38
個まで登録できます。ファイルとして使用できるデータ領域は約
2M
バイトです(ファイルの使用状況により異なります)。F-ROM
ファイルシステムはファイルデータ57344
バイトを1
セクタとして、セクタ単位でデータ領域を使用します。ファイ ル作成またはデータ57344
バイト書き込み毎に1
セクタの確保を行います。1セクタ確保するとデータ領域の空きサイ ズが減少します(ファイルには1
セクタ分のデータ書き込みスペースが作られます)。【注意】
F-ROM は、既に書いたデータの書換え(上書き)ができません(ffs̲write 関数参照)。F-ROM ファイルシステムは、ファ イル名の変更はできません。
∗ テキストモードは、キャリッジリターンとラインフィード(CR-LF)の組み合わせは入力時に
1
個のラインフィード文字(LF)に変換さ れ、出力時に各ラインフィード文字(LF
)はキャリッジリターンとラインフィードの組み合わせ(CR-LF
)に変換されるモードです。バ イナリーモードはその変換を行いません。18
3. 通信
ターミナルは、赤外線通信,無線通信の2つの通信が行えます。これらについて説明します。
3.1. 赤外線通信
ターミナルには、通信インターフェイスとして赤外線通信インターフェイス(IrDA 1.2準拠)を搭載しています。
赤外線通信インターフェイスには、下記の通信条件が設定できます。
通信速度
2400,4800,9600,19200,38400,57600,115.2K bps
データ長7
ビット、8ビットパリティ なし,偶数,奇数 ストップビット
1
ビット,2ビット受信バッファは
4096
バイト分あります。受信バッファがオーバーフローしたとき、オーバーフローしたデータを破棄しま す。【注意】
・ ターミナルと赤外線通信を行う対向端末(パソコン等)のシステム設計時、受信から送信へ切り替えるときに 500μ 秒以上の時間∗を確保してください。(ターミナル,『FRH17インストーラ』,『METコミュニケータ』(別売り)では、この時 間を確保しています。)
・ 赤外線通信インターフェイスで通信を行う際は 20cm 以内で使用してください。また、通信が完了するまで IrDA 窓を 向き合わせたままにして動かさないでください。直射日光があたる場所や蛍光灯の真下(特にインバータ蛍光灯)で は、通信ができない場合があります。
・ レーザー発光中にデータを受信すると正しく受信できない場合があります。
・ 通信プログラムの開発では、何らかのプロトコルを使用することをお勧めします。
∗
IrDA
で、受信から送信へ転換するとき、または送信から受信へ転換するときの時間が、最大で500μ秒と規定されています。19
3.2. 無線通信
ターミナルには、通信インターフェイスとして
SS
無線モデム(FRH-SD07T)を搭載しています。SS
無線モデムは本書で記述するライブラリにより制御できます。無線通信を行うには、SS 無線モデム(FRH-SD07T)の知識が必要になります。アプリケーションソフト開発の際は、必 ず『FRH-SD07T取扱説明書』をよくお読みください。
ターミナルの受信バッファは
4096
バイト分あります。受信バッファがオーバーフローしたとき、オーバーフローしたデー タを破棄します。
【注意】
・無線通信を行う際、SS 無線モデムの通信モード3,5以外は使用しないでください。
・無線通信を行うには、対向機(FRH-SD07 を搭載した機器)が必要になります。ターミナルとパソコン間で無線通信を 行う場合は対向機をご用意ください。
・通信プログラムの開発では、何らかのプロトコルを使用することをお勧めします。
・レーザー発光中にデータを受信すると正しく受信できない場合があります。
20
4. ターミナル制御
ターミナル制御には、電源・タイマ・環境設定・無線設定・省電力設定機能があります。
4.1. 電源
電源機能は、電池残量・電源
OFF
の制御を行います。電池残量
システム表示領域に表示される電池残量レベルを、ライブラリより取得することができます。電池残量レベルは主・副電 池共に取得できます。
電池残量レベルは、あくまでも目安として使用してください。
電源 OFF
電源
OFF
の制御には、以下の機能があります。電源
OFF
:ライブラリより、電源をOFF
することができます。自動電源
OFF
:設定した時間が経過すると、自動的に電源をOFF
します。[PW]キー押下による電源 OFF
規制 :誤って[PW]キーを押しても電源がOFF
しないようにします。4.2. タイマ
タイマには、システム時計・時間計測のためのタイマがあります。
システム時計は、日時の読み出しができます。
時間計測のためのタイマは、設定した時間から経過した時間の残り時間を取得できます。この機能は、通信のタイムアウ トエラーを監視する処理等で使用できます。
21
4.3. レジューム
レジューム機能を設定すると、電源
OFF
する直前の状態を保存して、次に電源ON
したときに電源OFF
する直前の状 態からアプリケーションを再開できます。本機能は、環境設定のレジューム設定または、ライブラリから設定できます。
ファイルシステムを使用する際は、本機能を有効にすることをお勧めします。
レジューム機能が設定されていても、レジューム機能が実行されない場合を以下に示します。
アプリケーション初期起動キーによりアプリケーションが起動されたとき レジューム起動する前に環境設定を起動したとき
主・副電池の残量が同時に空になったとき
【注意】
SS 無線モデム制御に関しては例外があり、一時設定コマンドにより変更されている状態は復帰しません。
レジューム起動確認方法
アプリケーションがレジューム起動したときの確認方法として、キーバッファよりキーデータを読み出します。キーバッファ 内に
KEY_RESUME(FRH17.H
を参照)があれば、レジューム起動でアプリケーションが起動したことが確認できま す。4.4. 環境設定
アプリケーションより、ターミナルの環境設定値を変更することができます。アプリケーションで固有の環境設定を行うとき などに使用します。
4.5. 無線設定
無線設定はターミナル内部で管理しており、無線設定を変更することにより
SS
無線モデムの各種設定を変更できま す。また、本機能は環境設定の無線設定またはライブラリから設定できます。
SS
無線モデムの各種設定の詳細は『FRH-SD07T取扱説明書-メモリレジスタ説明-』を参照してください。4.6. 省電力設定
省電力設定を使用すると、SS無線モデム使用時の消費電力を低減できます。
本機能は、環境設定の無線設定または、ライブラリから設定できます。
省電力モードの詳細は「7.SS無線モデムの省電力機能について」を参照ください。
22
5. ファイル転送
パソコンとターミナル間でファイルを転送できます。ファイル転送には、ターミナルのアプリケーションより指定したファイ ルを転送する機能と、ターミナルをリモート状態にしてパソコンからの指示でファイルの転送を行う機能があります。
これらファイル転送を行うには、光通信ユニット『MCD-1000』(別売),『MET-232C』ケーブル(別売),パソコン側ソフト の『METコミュニケータ』(別売)が必要になります。
23
プログラム開発について
本章では、ターミナルのアプリケーション開発に際して、プログラムの制限事項等について説明します。
1. プログラム
ターミナルのアプリケーションプログラムにおける制限事項等について説明します。
main 関数について
アプリケーションプログラムの
main
関数は下記の型で記述してください。void main(void)
これ以外の型で記述するとプログラムが正しく動作しない場合があります。
プログラムサイズについて
アプリケーションプログラムを格納する領域は、512K バイト確保されています。このサイズを越えない範囲で作成してく ださい。プログラムサイズが領域の制限を越えるとコンパイル・リンク時にエラーが発生します。
【注意】
プログラムサイズ制限の 512K バイトは、コンパイル・リンク時に生成される HEX ファイルのサイズではなく、インストー ル時にターミナルに格納されるときのサイズです。HEX ファイルのサイズとインストール時のサイズの比は、およそ 3:1 になります。この割合はあくまで目安としてください。
24
2. メモリ
ターミナルのアプリケーションプログラムが使用するメモリの制限事項等について説明します。
スタックについて
アプリケーションプログラムのスタック領域は、システムと共用で
32K
バイト確保されています。システムと合計でこのサイ ズを越えない範囲で作成してください。スタックサイズが制限を越えるとプログラムが正しく動作しない場合があります。【注意】
スタックはシステムと共用になっていますので、アプリケーションプログラムで使用できるサイズは、およそ 30K バイト以 下になります。ローカル変数はできるだけ少なくして、大きなサイズのバッファ等を使用する場合はグローバル変数に してください。
グローバル変数について
アプリケーションプログラムが使用するグローバル変数領域は、
128K
バイト確保されています。このサイズを越えない範 囲で作成してください。グローバル変数サイズが制限を越えるとコンパイル・リンク時にエラーが発生します。25
ライブラリ
本章では、ターミナルのアプリケーション開発で使用するヘッダおよび関数について説明します。
1. ヘッダファイル
ターミナル固有の関数を使うには、ターミナル専用のヘッダファイルをインクルードする必要があります。プログラムには 以下のヘッダを必ずインクルードしてください。
FRH17.H APVER.H
FRH17.H について
FRH17.H
には、ターミナル固有の関数宣言や、関数で使用する型,定数の宣言が記載されています。必要に応じてFRH17.H
を参照してください。APVER.H について
APVER.H
には、アプリケーションのコンパイル日付およびアプリケーションのバージョンを設定するための記載がありま す。コンパイル日付は自動に設定されます。この箇所は変更しないでください。#pragma section $AplVersion const char date[16] = __DATE__;
const char time[16] = __TIME__;
アプリケーションのバージョンの設定は、以下のダブルクォート(")で囲まれた配列を変更してください。
const char Ap_Version[16] = "1.00 ";
【注意】
アプリケーションのバージョンの設定は、『METコミュニケータ』(別売)のスクリプトファイルを使用したアプリケーョンイ ンストール機能を使用する際に必要になります。この機能を使用する場合は、ダブルクォート(")で囲まれた配列に ASCII 文字 15 文字以内でバージョンを指定してください。バージンの設定に制御コード,カタカナおよび漢字(全角文 字)を指定した場合、スクリプトファイルを使用したアプリケーョンインストール機能は使用できません。(この機能を使 用しない場合、バージョンを変更する必要はありません。)
26
2. ターミナルライブラリ
機能別の関数一覧表を示します。
表示関数
関数名 内容 ページ
backlight
バックライトの点灯・消灯を設定します37
backlight_state
バックライトの点灯状態を取得します38
backlighttime_get
バックライトの点灯時間を取得します39
backlighttime_set
バックライトの点灯時間を設定します40
blink
カーソルのブリンクを設定します41
blink_state
カーソルのブリンクの設定状態を取得します42
chardeco
文字の反転表示を設定します47
chardeco_state
文字の反転表示の設定状態を取得します48
charsize
文字サイズを設定します49
charsize_state
文字サイズの設定状態を取得します51
clear_screen
画面を消去します52
contrast
コントラストを調整します58
contrast_state
コントラストの調整値を取得します60
cursor
カーソルの形状を設定します61
cursor_state
カーソルの形状を取得します63
drawbox
線,長方形を描画します65
drawdot
点を描画します67
echo
エコーを設定します68
echo_state
エコーの設定状態を取得します69
font
フォントタイプを設定します91
font_state
フォントタイプの設定状態を取得します92
gotoxy
カーソルを移動します93
keybacklight
キー押下によるバックライトの点灯・非点灯を設定します102
keybacklight_state
キー押下によるバックライトの点灯状態を取得します103
picture
図を描画します116
put_character
文字を1
文字表示します120
put_extcharacter
外字を1
文字表示します121
put_string
文字列を表示します122
sysarea
システム表示領域の表示・非表示を設定します179
sysarea_state
システム表示領域の表示状態を取得します180
xposition
カーソルの桁位置を取得します195
yposition
カーソルの行位置を取得します196
27
表示補助
関数名 内容 ページ
buzzer
ブザーを鳴動します43
buzzer_state
ブザーの鳴動状態を取得します45
buzzer_stop
ブザーの鳴動を停止します46
led_off LED
を消灯します112
led_on LED
を点灯します113
led_state LED
の点灯状態を取得します114
vibrator
バイブレータを動作させます192
vibrator_stete
バイブレータの動作状態を取得します193
vibrator_stop
バイブレータを停止します194
キー
関数名 内容 ページ
kbhit
キーバッファにデータがあるか否か調べます101
keycharread
キーバッファよりキーを読み出します(キー待ちなし)104
keycharwait
キーバッファよりキーを読み出します(キー待ちあり)106
keyclear
キーバッファをクリアします107
keyclick
キークリック音を鳴らします108
keyclick_state
キークリック音の鳴動状態を取得します109
keypressing
押されているキーを調べます110
shiftkey
シフトキーの押下状態を設定します153
shiftkey_state
シフトキーの押下状態を取得します154
shiftkeylock
シフトキーの押下状態をロックします155
shiftkeylock_state
シフトキーの押下のロック状態を取得します156
バーコード
関数名 内容 ページ
scanmode
バーコードの読取モードを設定します148
scanread
バーコードを読取ます(キー入力待ちなし)150
scanwait
バーコードを読取ます(キー入力待ちあり)152
28
ファイル
関数名 内容 ページ
ffs_close F-ROM
ファイルシステムのファイルをクローズします70
ffs_eof F-ROM
ファイルシステムのファイルの終端に達したか否か調べます71
ffs_filesize F-ROM
ファイルシステムのファイルのサイズを取得します72
ffs_findfirst F-ROM
ファイルシステムに登録されているファイル名を取得します73 ffs_findnext F-ROM
ファイルシステムに登録されているファイル名を取得します74
ffs_format F-ROM
ファイルシステムをフォーマットします75
ffs_freesize F-ROM
ファイルシステムの空きサイズを取得します76
ffs_isformat F-ROM
ファイルシステムがフォーマット済みか否か調べます77
ffs_lseek F-ROM
ファイルシステムのファイルポインタを移動します78
ffs_open F-ROM
ファイルシステムのファイルをオープンします80
ffs_read F-ROM
ファイルシステムのファイルからデータを読み出します81
ffs_remove F-ROM
ファイルシステムのファイルを削除します83
ffs_tell F-ROM
ファイルシステムのファイルポインタの位置を取得します84
ffs_write F-ROM
ファイルシステムのファイルへデータを書き出します85
rfs_chsize RAM
ファイルシステムのファイルサイズを変更します126
rfs_close RAM
ファイルシステムのファイルをクローズします127
rfs_eof RAM
ファイルシステムのファイルの終端に達したか否か調べます128
rfs_filesize RAM
ファイルシステムのファイルのサイズを取得します129
rfs_findfirst RAM
ファイルシステムに登録されているファイル名を取得します130 rfs_findnext RAM
ファイルシステムに登録されているファイル名を取得します131
rfs_format RAM
ファイルシステムをフォーマットします132
rfs_freesize RAM
ファイルシステムの空きサイズを取得します133
rfs_isformat RAM
ファイルシステムがフォーマット済みか否か調べます134
rfs_lseek RAM
ファイルシステムのファイルポインタを移動します135
rfs_open RAM
ファイルシステムのファイルをオープンします137
rfs_read RAM
ファイルシステムのファイルからデータを読み出します138
rfs_remove RAM
ファイルシステムのファイルを削除します140
rfs_rename RAM
ファイルシステムのファイル名を変更します141
rfs_tell RAM
ファイルシステムのファイルポインタの位置を取得します142
rfs_write RAM
ファイルシステムのファイルへデータを書き出します143
赤外線通信
関数名 内容 ページ
ir_clear
受信バッファをクリアします94
ir_close
通信ポートをクローズします95
ir_loc
受信バッファ内のデータ数を取得します96
ir_open
通信ポートをオープンします97
ir_read
受信バッファより1
バイト読み出します98
ir_write
通信ポートより1
バイト送信します99
29
関数名 内容 ページ
ss_clear
受信バッファをクリアします157
ss_close
無線通信ポートをクローズします158
ss_cts_state CTS
信号を取得します159
ss_dsr_state DSR
信号を取得します160
ss_dtr DTR
信号を制御します161
ss_dtr_state DTR
信号を取得します162
ss_loc
受信データ数を取得します163
ss_open
無線通信ポートをオープンします164
ss_read
受信バッファよりデータを読み出します168
ss_rts RTS
信号を制御します171
ss_rts_state RTS
信号を取得します172
ss_write
データを送信します177
電源
関数名 内容 ページ
autopowerdown_get
自動電源OFF
時間を取得します33
autopowerdown_reset
自動電源OFF
時間をリセットします35
autopowerdown_set
自動電源OFF
時間を設定します36
ischarge
充電中か否か調べます100
mainbattery_level
主電池の残量レベルを取得します115
powerdown
電源をOFF
します117
powerkey
電源キーによる電源OFF
を規制します118
powerkey_state
電源キーによる電源OFF
規制状態を取得します119
subbattery_level
副電池の残量レベルを取得します178
タイマ
関数名 内容 ページ
delay
指定時間待ち処理を行います64
rtcread
日時を読み出します145
rtcwrite
日時を設定します147
timer_start
監視タイマを開始させます188
timer_stop
監視タイマを停止させます189
timer_value
監視タイマの残り時間を取得します190
レジューム
関数名 ページ
resume
レジューム起動を設定します123
resume_state
レジューム起動状態を取得します125
30
環境設定
関数名 内容 ページ
apinstall_file
ファイルシステム内のアプリケーションをインストールします31
comrate_get
環境設定の通信速度を取得します53
comrate_set
環境設定の通信速度を設定します55
config
環境設定の設定値の読み出し,書き出しを行います56
systemconfig_load
環境設定の設定値をOS
に反映させます181
systemconfig_save OS
内の設定を環境設定値として書き出します182
terminalid_get
環境設定に設定されているターミナルID
を取得します186
tetminalid_set
ターミナルID
を環境設定に書き込みます187
version_os OS
のバージョン情報を取得します191
無線設定
関数名 内容 ページ
ss_register
無線設定の設定値の読み出し,書き出しを行います169
省電力設定
関数名 内容 ページ
ss_powermode SS
無線モデムの省電力モードを設定します165
ss_powermode_state SS
無線モデムの省電力モード設定を取得します167
ss_shut_time AUTO
モードのSHUT
時間を設定します173
ss_shut_time_state AUTO
モードのSHUT
時間設定を取得します174
ss_ultra_time AUTO
モードのULTRA
時間を設定します175
ss_ultra_time_state AUTO
モードのULTRA
時間設定を取得します176
ファイル転送
関数名 内容 ページ
filedownload
パソコン内のファイルをターミナルに転送します87
fileupload
ターミナル内のファイルをパソコンに転送します89
terminalcontrol
ターミナルをリモート状態にします184
31
apinstall_file
アプリケーションのインストール
書式
int apinstall_file(int fsystem, char *fname, int charsize, int yposition);
fsystem
ファイルシステムfname
ファイル名への先頭アドレスcharsize
インストール状況表示文字サイズyposition
インストール状況表示位置解説
本関数は、ターミナル内のファイルシステムに登録してあるアプリケーション
hex
ファイルをインストールしま す。hexファイルがRAM
ファイルシステムに登録してある場合fsystem
に定数RFS
を、F-ROMファイル システムに登録してある場合fsystem
に定数FFS
を指定します。fmameには、インストールするhex
ファ イル名を指定してください。本関数がインストールを開始すると、ypositionに指定した位置に
charsizeに指定した文字サイズでインス
トール状況を画面に表示します。(付録のファイル転送,インストール関数の画面表示参照)charsize
には下記の定数のいずれかを指定してください。定数 意味
QUARTERSIZE
縮小ANK
サイズNORMALSIZE ANK
サイズNONDISPLAY
インストール状況表示なしyposition
にはインストール状況の表示行を指定します。指定できる行の値は、設定されているフォントタイ プ,charsize
で指定した文字サイズ,およびシステム表示領域の表示・非表示の状態により異なります。画 面表示の状態と、指定できる行の関係を下記に示します。この範囲内で指定してください。システム表示領域表示 システム表示領域非表示 フォントタイプ
charsize
への指定yposition (行) yposition (行)
QUARTERSIZE 1〜9 1〜11
12
ドットフォントタイプNORMALSIZE 2〜8 2〜10
QUARTERSIZE 1〜7 1〜9
16
ドットフォントタイプNORMALSIZE 2〜6 2〜8
【注意】
本関数により、以前にインストールされていたアプリケーションは消去され、インストールが開始します。こ の後インストールの成功,失敗に関係なく電源を
OFF
します。32
戻り値
インストール開始前にエラーが発生すると戻り値にエラー値(マイナス値)を返します。エラーの詳細を下記 に示します。
エラー番号 内容
-2003
ファイルシステムが未フォーマットです。-2004
指定されたファイルが存在しません。-2005
指定されたファイルがオープン中です。-4003
指定されたファイルがモトローラ形式のhex
ファイルではありません。-6003
指定されたパラメータが範囲外です。プログラム例
/*
RAM ファイルシステムに登録されているアプリケーションHEXファイル "sample.mot"をインストールします。
*/
#include <stdio.h>
#include "apver.h"
#include "frh17.h"
void main(void) {
int result;
char buff[15];
clear_screen();
gotoxy(1,2); put_string("AP Install");
result = apinstall_file( RFS, "sample.mot", NORMALSIZE, 4);
sprintf(buff,"ERR=%d", result);
gotoxy(1,4); put_string(buff);
}
33
autopowerdown_get
自動電源
OFF
の設定時間を取得します。書式
int autopowerdown_get(void)
解説
autopowerdown_set
関数で設定された自動電源OFF
の時間を返します。【注意】
本関数で取得する自動電源
OFF
の時間は、autopowerdown_set関数で設定された時間です。環境設 定で設定されている時間(config 関数で設定された時間を含む)ではありません。ただし、アプリケーショ ンが初期起動する場合、環境設定値がautopowerdown_set
関数の初期値として反映されるため、環境 設定値が取得できます。戻り値
自動電源
OFF
時間は、0〜60の値で返されます。単位は分です。戻り値に
0
が返されたときは自動電源OFF
しないことを意味します。34
プログラム例
/*
自動電源OFF時間の設定を行います。
*/
#include <stdio.h>
#include "apver.h"
#include "frh17.h"
void main(void) {
int state;
unsigned char c;
char buff[15];
for (;;){
c=keycharwait();
clear_screen();
if (c==KEY_F1){
autopowerdown_set(0);
}
if (c==KEY_F2){
autopowerdown_set(1);
}
if (c==KEY_F3){
autopowerdown_set(2);
}
if (c==KEY_F4){
autopowerdown_reset();
}
state=autopowerdown_get();
if (state==0){
gotoxy(1,2); put_string("OFFなし");
} else {
sprintf(buff,"OFF=%d分",state);
gotoxy(1,2); put_string(buff);
} } }
35
autopowerdown_reset
自動電源
OFF
の経過時間リセット書式
void autopowerdown_reset(void);
解説
autopowerdown_set
関数で設定された自動電源OFF
までの経過時間をリセットします。戻り値
なし
プログラム例
autopowerdown_get
参照36
autopowerdown_set
自動電源
OFF
時間の設定書式
int autopowerdown_set(int time);
time
自動電源OFF
までの時間解説
自動電源
OFF
時間を設定します。timeで指定した時間、入力デバイスや通信デバイスなどが動作しない 状態が続いたとき、ターミナルの電源をOFF
します。time で指定した時間に入力デバイスや通信デバイ スなどが動作したときは、経過時間がリセットされます。time
には、0〜60までの値が指定可能です。timeの単位は分です。timeに0
を指定した場合、自動電 源OFF
は機能しません。timeに0〜60
以外の値を指定すると、設定を行わず戻り値にFALSE
を返しま す。【注意】
本関数の呼び出しでは環境設定は変更されません。本設定を環境設定値へ反映させる場合は、
systemconfig_save
関数を呼び出してください。戻り値
time
に0〜60
までのいずれかの値を指定するとTRUE
を返します。それ以外の値を指定するとFALSE
を返します。プログラム例
autopowerdown_get
参照37
backlight
バックライト点灯・消灯
書式
int backlight(int state);
state
点灯・消灯設定解説
本関数を呼び出すことによりバックライトを点灯・消灯することができます。stateに定数
ON
を指定するとバ ックライトは点灯します。定数OFF
を指定するとバックライトは消灯します。それ以外の値を指定すると戻り 値にFALSE
を返し、点灯・消灯の状態は変わりません。戻り値
state
に定数ON
またはOFF
のいずれかを指定するとTRUE
を返します。それ以外の値を指定するとFALSE
を返します。プログラム例
/*
バックライトの点灯・消灯設定を行います。
*/
#include "apver.h"
#include "frh17.h"
void main(void) {
int state;
unsigned char c;
for (;;){
c=keycharwait();
if (c==KEY_F1) backlight(ON);
if (c==KEY_F2) backlight(OFF);
state=backlight_state();
if (state==ON){
clear_screen();
gotoxy(1,2); put_string("B.L.=ON");
}
if (state==OFF){
clear_screen();
gotoxy(1,2); put_string("B.L.=OFF");
} } }
38
backlight_state
バックライトの点灯状況を取得します。
書式
int backlight_state(void);
解説
backlight
関数で設定されたバックライトの点灯状況を戻り値に返します。戻り値
バックライト点灯中は定数
ON
を返します。バックライト消灯中は定数OFF
を返します。プログラム例
backlight
参照39
backlighttime_get
バックライトの点灯時間を取得します。
書式
int backlighttime_get(void);
解説
backlighttime_set
関数で設定されたバックライト点灯時間を0〜600
の値で返します。戻り値(バックライ ト点灯時間)の単位は秒です。戻り値が
0
のときはバックライトが常時ON
の設定であることを意味します。戻り値
backlighttime_set
関数で設定されたバックライト点灯時間を0〜600
の値で返します。プログラム例
/*
バックライト点灯時間を設定します。
*/
#include <stdio.h>
#include "apver.h"
#include "frh17.h"
void main(void) {
int state;
unsigned char c;
char buff[15];
for (;;){
c=keycharwait();
if (c==KEY_F1){
backlighttime_set(0);
backlight(ON);
}
if (c==KEY_F2){
backlighttime_set(30);
backlight(ON);
}
state=backlighttime_get();
if (state==0){
clear_screen();
gotoxy(1,2); put_string("常時点灯");
} else {
clear_screen();
sprintf(buff,"点灯時間=%d",state);
gotoxy(1,2); put_string(buff);
} } }