目次へ  /  次へ


付録A ディレクトリ構成


KARACRIXは、インストールされたディレクトリ以下に、図1のような階層で展開されています。

図1 ディレクトリ構成

大きく分けて次の2種類に分けられます。



sys      KARACRIXのシステム用

usr      ユーザー用



 

以下に、sysディレクトリの概要を示します。



sweb       webブラウザからアクセスするためのHTML、CGIファイル

sfnt         CAD用アウトラインフォントデータ

simg        GUI用各種ビットマップファイル

sbin         KARACRIXシステム実行プログラム

srun        実行用一時ファイル

stbl         システム用各種データテーブル

stmp       システム用一時ファイル

ssmp       各種サンプルリソースファイル

slib         システム用ライブラリ

sinc        システム用インクルードファイル

setc        システム用

sxrs        GUI用画面リソースファイル



 

以下に、usrディレクトリの概要を示します。



bin          ユーザ作成プログラム実行ファイル

ufile         ユーザ作成データ

env           KARACRIXシステム環境設定ファイル

sdx           KARACRIXシステム設定テーブルファイル

prg           ユーザ作成プログラムソースファイル

pfm          印刷書式ファイル

mon          監視パネルファイル

log           オブジェクトログファイル

tre          オブジェクトトレンド記録保存ファイル

img          ユーザ作成ビットマップファイル

spool        印刷出力用スプールファイル

vdr           画像記録ファイル


上記のディレクトリ内の各種設定ファイル等は、KARACRIXが使用しますので、本マニュアル、ま たはその他の記述(当社のホームページ等)に説明のないものは変更しないでください。誤動作の 原因になる場合があります。
 


付録B 環境設定ファイルの内容


ユーザは、KARACRIXのインストール後、特に環境ファイルに手を加えなくてもそのまま使用でき るように適切な環境に設定されていますが、場合によっては環境設定ファイルを書き換える必要が あります。

ユーザの環境設定ファイルは、「$KARACRIXTYPE/usr/env」以下にあります。この中で次の環境設 定ファイルを編集します。内容は資料1および 資料2をご覧下さい。

表1 環境設定ファイル



付録C アナログ単位の追加


オブジェクト登録で使用するアナログ単位の追加を行うことができます。次のファイルをエディ タで編集します。

$KARACRIXTYPE/sys/stbl/kcxname_unit.tbl

内容は資料3を参照下さい。
 


付録D バイナリフォーマットの追加


オブジェクト登録で使用するバイナリフォーマットの追加を行うことができます。次のファイル をエディタで編集します。

$KARACRIXTYPE/sys/stbl/kcxtext_stat_binary.tbl

内容は資料4を参照下さい。
 


付録E トレンドファイルのフォーマット


●トレンドファイル名

短期トレンドグラフ/トレンドグラフのグラフ描画画面でファイル保存を行なうと、トレンド ファイルとして各種オブジェクトの状態や計測データがテキストファイルとして以下のディレクト リに生成されます。

$KARACRIXTYPE/usr/tre

ファイル名の生成ルールは、以下のようになっています。

sys_trmYYMMDDhhmmss.log

YY: 西暦年の下2桁(00〜99)
MM: 月(01〜12)
DD: 日(01〜31)
hh: 時(00〜23)
mm: 分(00〜59)
ss: 秒(00〜59)

●トレンドファイルのフォーマット

トレンドファイルはテキスト形式で以下のようなフォーマットになっています。

4-12行目は、トレンドグラフ描画条件設定で登録したオブジェクトの数によって可変長になっ ており、カンマ区切りで最大8項目までデータが並ぶことになります。

13行目以降に計測データが最新のものから降順に並んでいます。

1行目 コメント
2行目 サンプリング時間(秒),横拡大表示倍率(%),縦拡大表示倍率(%)(未使用),横時間軸幅(秒)
3行目 “グラフタイトル名”
4行目 オブジェクト登録表示行番号,・・・・
5行目 “オブジェクトID名”,・・・・
6行目 オブジェクトID,・・・・
7行目 データ型,・・・・
8行目 ハイレンジ値,・・・・
9行目 ローレンジ値,・・・・
10行目 線色番号,・・・・
11行目 線幅,・・・・
12行目 線種,・・・・
13行目 データ番号,縦時間軸表示フラグ,計測時間(UNIXタイム),データ1,データ2,・・・・

・・・

n行目 データ番号,縦時間軸表示フラグ,計測時間(UNIXタイム),データ1,データ2,・・・・

●データ型 (0:整数 1:実数)

●線色番号 (1:赤,2:緑,3:青,4:黄,5:水色,6:桃色,7:紫,8:蜜柑)

●線幅 (1〜4ドット)

●線種 (1:実線)

以下に、トレンドファイルのサンプルを示します。

#Copyright (c) 1996-2000 S.I.Soubou,Inc. All rights reserved.
1,100,100,120
"計測テスト"
0,1,2
“bi01”,“aii01”,“aif01”
55,175,213
0,0,1
10,100,100.000000
0,0,0.000000
1,2,3
1,1,1
1,1,1
994,0,940398044,1,50,64.377098
993,0,940398043,1,58,65.462513
992,0,940398042,1,65,66.545418
991,0,940398041,0,72,67.561493
990,0,940398040,0,79,68.526627
 


付録F インターバルログファイルのフォーマット


●インターバルログファイル名

インターバル記録設定を有効にすると、インターバルログファイルとして各種オブジェクトの状 態や計測データがバイナリファイルとして以下のディレクトリに生成されます。

$KARACRIXTYPE/usr/log

ファイル名の生成ルールは、以下のようになっています。

sys_itvYYMM.log

YY: 西暦年の下2桁(00〜99)

MM: 月(01〜12)

●インターバルログファイルのフォーマット

インターバルログファイルのフレームフォーマットを表3に示します。20Byteの固定長フォー マットになっています。

1) フレームヘッダ部

0バイト目は、フレームヘッダ部になっておりデータフレームの属性情報が定義されています。

表2 フレームヘッダの定義

表3 ログフレームのフォーマット

2) 汎用データ分部(char型)

1バイト目の1byteは、アナログオブジェクトの場合に、オブジェクト登録で設定したオブジェ クトの単位の単位テーブルへのインデックス番号が格納されています。単位のインデックス番号は 「資料3 kcxname_unit.tbl」を参照して下さい。

3) アジャストタイム部(short int型)

2-3バイト目の2byteは、ネットワーク上に複数のKARACRIXシステムが存在する場合に基準タイ ムサーバーとなるホストの時間との誤差を補正するために使用します。KARACRIXを単独で使用す る場合には未使用になっています。

4) オブジェクトID部(char型)

4-7バイト目の4byteは、計測オブジェクトの計測時刻がUNIXタイム(通算秒形式)で格納され ています。

5) データタイム部(long int型)

8-15バイト目の8byteは、計測オブジェクトIDが8桁のアスキーコードで格納されています。

6) データ部(long int型、float型、char型)

16-19バイト目の4byteに、オブジェクトの計測データが格納されています。格納されているデー タ型は、フレームヘッダのDataTypeにより判断します。

バイナリオブジェクトの状態データの場合には、表4、表5に示すようにhintフラグの値により 状態情報の論理が定義されています。

表4 バイナリデータ格納エリアの定義

表5 バイナリデータのON論理

●オブジェクトデータの格納形式

インターバル記録設定で登録されたオブジェクトの計測データは、設定されているインターバル のタイミングで、以下のように登録番号の順番に1オブジェクト1フレームとしてログファイルに 保存されます。

表6 ログファイル保存形式

●ログファイル読み出しサンプルプログラム

 1
 2 #include <stdio.h>
 3 #include <fcntl.h>
 4 #include <time.h>
 5
 6  typedef struct {
 7    unsigned char flag;
 8    unsigned char etc;
 9    short adjsec;
10   long logsec;
11   char objidname[8];
12 }
13 kcxlogrech;
14
15 typedef struct {
16   kcxlogrech h;
17   union {
18     unsigned char b[4];
19     long l;
20     float f;
21   } d;
22 }
23 kcxlogrec;
24
25 main()
26 {
27   int i, fd;
28   long ltime;
29   char objidname[16];
30   char filename [1024];
31   kcxlogrec logrec;
32   struct tm *jikan;
33
34     /* 2000年5月のファイル */
35     strcpy( filename, "sys_itv0005.log" );
36
37     if (( fd = open( filename, O_RDONLY, 0444 )) >= 0 ) {
38
39       while( read( fd, (void *)&logrec,sizeof( kcxlogrec )) > 0 ){
40
41          ltime = logrec.h.logsec + logrec.h.adjsec;
42          jikan = localtime( &ltime );
43
44          for(i=0;i<8;i++){
45            objidname[i] = logrec.h.objidname[i];
46          }
47          objidname[i] = (char)0;
48
49         printf("objid名 = %s\n", objidname );
50         printf("記録時間:yy=%d mm=%d dd=%d hh=%d mi=%d ss=%d\n",
51         jikan->tm_year+1900,jikan->tm_mon+1, jikan->tm_mday,
52         jikan->tm_hour,jikan->tm_min, jikan->tm_sec );
53
54         if( (logrec.h.flag & 0x07) == 0x01 ){
55           printf("バイナリデータ = %d ON論理 = %d ",
56                          (int)logrec.d.b[0],(int)logrec.d.b[2] );
57         }else if( (logrec.h.flag & 0x07) == 0x02 ){
58           printf("整数データ = %d 単位コード = %d",
59                           logrec.d.l,(int)logrec.h.etc );
60         }else if( (logrec.h.flag & 0x07) == 0x03 ){
61           printf("実数データ = %f 単位コード = %d",
62                           logrec.d.f,(int)logrec.h.etc );
63         }
64         printf("\n\n" );
65
66       }
67
68       close(fd);
69
70     }
71 }

付録G  印刷出力先の変更


KARACRIXで印刷を行う場合の出力先は、インストール時には「lp」に設定されています。この lpがシステムのprintcapファイルにない場合はlpを作成するか、またはKARACRIXの出力先を変 更することができます。

$KARACRIXTYPE/usr/sdx/sys_#obj_system.edt

この出力先の変更は、次のファイルの記述を変更することで可能です。

変更の記述個所については、資料5を参照下さい。
 


付録H  オブジェクト状態ダイアログの表示切替え


オブジェクトの状態ダイアログは、基本的にオブジェクトの現在の状態値を表示して確認するた めの機能を提供しますが、擬似オブジェクト(17章17.2を参照)として扱うものに関しては状態 値を設定できるようになっています。

外部のセンサなどに割り付けられている実オブジェクトと擬似オブジェクトを識別するために KARACRIXシステム内部で保持している識別情報をもとに状態ダイアログの表示が切替えられるよ うになっています。

KARACRIX内部の識別情報は、計測制御通信プログラムの中でkcxobj_defdlgwintype_set()関数 (「19章KCXライブラリリファレンス」を参照)を使用してセットします。

以上のようなしくみを提供する理由は、通信プログラムが状態値を書き込んでいるオブジェクト に対して、状態ダイアログから値を設定できてしまうとオブジェクトへの書き込みが競合してしま うため、これを避けるための措置です。
 


資料1  syscnf.env



 

syscnf.env(LINUXの場合)


#Copyright (c) 1996-2000 S.I.Soubou,Inc. All rights reserved.
#<< KARACRIX 環境データ >>
#
sysoption, ""
externalsrcpath, "/tmp" ←インポート/エクスポートするディレクトリ※1
rmtsecuchk, on
rmtctlperm, on ←Web、Eメールでアクセスをしないなら“off”
rmtctlpublic, on
cadeditperm, on ←CAD編集をしないなら“off”
prgeditperm, on ←プログラム編集をしないなら“off”
webjpgquality, 75 ←Web画像(JPEG)のクウォリティ(1〜100)
xidefdlgwintype, viewset
copyrightdpysec, 3 ←ライセンスウィンドウ表示の時間(0〜秒)
#
bootclean, on ←起動時に印刷スプールのクリアをしないなら“off”
txcodehint, euc
entrytext, key
ximserver, on ←日本語入力をしない(XIMサーバなし)なら“off”
alarmbeep, on
sysdbtype, text
logdbtype, text
videoimgrec, on
menuwinmappt, auto
emailrcvtype, pop
emailrcvunitsec, 60
hardcopycolor, color
printerdpi, 300
fontimgdotsz, 256
psoption, ""
kcxenvfilepath, "/tmp"
vflibname, "kcxVFlibd0a"
vflibpath, "open/kcxsvr/bin/"
vflibwait, 0
#
ccmacro, "/usr/bin/cc","cc","-D_KcxOsLINUX","-D_KcxVsTpNRM0","-O" ←コンパイルオプション※2
mkmacro, "/usr/bin/make","make","-f","/tmp/makefile.kcx","static"
cclibinc, "-I/usr/local/include","-I/usr/X11R6/include","-L/usr/X11R6/lib","-lX11","-lm"
#
printprg, KcxTBLtp_PRIPRG_Message, master,"Msg0","Msg0","0","1"
printprg, KcxTBLtp_PRIPRG_Report0, always,"Rep0","Rep0","1","1"
printprg, KcxTBLtp_PRIPRG_Report1, always,"Rep1","Rep1","1","1"
printprg, KcxTBLtp_PRIPRG_HardCopy,always,"Hdc0","Hdc0","1","1"
printprg, KcxTBLtp_PRIPRG_PrgList, always,"Lst0","Lst0","1","1"
#

※1 “/”が先頭に付くとフルパス指定になり、“/”が無い場合、KARACRIXのディレクトリから の相対パスになります。この場合、usr/ufileディレクトリの指定を推奨します。

※2 FreeBSDの場合は”-D_KcxOsLINUX”が”-D_KcxOsFREEBSD”となります。
 


資料2  sysunix.env


sysunix.env


#Copyright (c) 1996-2000 S.I.Soubou,Inc. All rights reserved.
#<< KARACRIX UNIX環境データ >>
# unixidname(c),unixidval(i)
#
shmkey_env, 21100 ←シェアードメモリのキー番号です
shmkey_ipc, 21200 〃
shmkey_obj, 21300 〃
shmkey_web, 21400 〃
#
#(mesgkey値とsemkey値がラップしてはいけません)
msgkey_opseventproc, 22100 ←セマフォのキー番号です
msgkey_eventmkdproc, 22200 〃
msgkey_eventactproc, 22300 〃
msgkey_consmesgproc, 22400 〃
semkey_consmesgmem, 23100 ←セマフォのキー番号です
semkey_histeventmem, 23200 〃
semkey_send1stmem, 23300 〃
semkey_sendfinalmem, 23400 〃
semkey_mtrendmem, 23500 〃
semkey_usershmem, 23600 〃
semkey_httpdcgibin, 23700 〃
semkey_uniquerecnum, 23800 〃
#
ipport_sedmon_syseditor, 51001 ←ソケット通信のポート番号です
ipport_sedmon_monitor, 51002 〃
ipport_sedcad_syseditor, 51101 〃
ipport_sedcad_cad, 51102 〃
ipport_sedcpl_syseditor, 51201 〃
ipport_sedcpl_compiler, 51202 〃
ipport_sedcmd_syseditor, 51301 〃
ipport_sedcmd_cmdserver, 51302 〃
ipport_objprc_bootobjctl, 51401 〃
ipport_objprc_sedobjctl, 51402 〃
ipport_objprc_cadobjctl, 51403 〃
ipport_objprc_schobjctl, 51404 〃
ipport_objprc_procctler, 51405 〃
ipport_objprc_emailobjctl, 51406 〃
ipport_pri_printer, 51501 〃
ipport_pri_ops, 51601 〃
ipport_emailsv_emgonly, 51701 〃
ipport_snd_opsbos, 51801 〃
ipport_snd_opsbom, 51802 〃
ipport_snd_iosnd, 51803 〃
#
ipport_monfsv_kcx, 52001 〃
ipport_monfsv_vflib, 52002 〃
ipport_sedfsv_kcx, 52101 〃
ipport_sedfsv_vflib, 52102 〃
ipport_cadfsv_kcx, 52201 〃
ipport_cadfsv_vflib, 52202 〃
ipport_fontserver_kcx, 52301 〃
ipport_fontserver_vflib, 52302 〃
ipport_sedback_syseditor, 52401 〃
ipport_sedback_backup, 52402 〃
ipport_monwebfsv_kcx, 52501 〃
ipport_monwebfsv_vflib, 52502 〃
ipport_sedwebfsv_kcx, 52601 〃
ipport_sedwebfsv_vflib, 52602 〃
#
#

※他のアプリケーションと上記のキー番号、ポート番号が衝突している場合に変更して下さい。
 


資料3  kcxname_unit.tbl


kcxname_unit.tbl


#Copyright (c) 1996-2000 S.I.Soubou,Inc. All rights reserved.
#<< KARACRIX 単位データ >>
#idcode(i), "dpysname(c)", "dpylname(c)", "etcname(c)" ←この順でエントリを作成します
#
0, "-", "-", "- (null)"
1, "A", "A", "A (ampere)"
2, "Bq", "Bq", "Bq (becquerel)"
3, "C", "C", "C (coulomb)"
4, "F", "F", "F (farad)"
5, "Hz", "Hz", "Hz (hertz)"
6, "J", "J", "J (joule)"
7, "K", "K", "K (kelvin)"
8, "N", "N", "N (newton)"
9, "Pa", "Pa", "Pa (pascal)"
10, "S", "S", "S (siemens)"
11, "Sv", "Sv", "Sv (sievert)"
12, "V", "V", "V (volt)"
13, "W", "W", "W (watt)"
14, "Wb", "Wb", "Wb (weber)"
#
16, "%", "%", "% (percent)"
17, "℃", "℃", "℃ (degree)"
18, "Ω", "Ω", "Ω (ohm)"
19, "lx", "lx", "lx (lux)"
20, "mol", "mol", "mol (mole)"
#

追加したい単位を20番以降に追加していきます。

“#”で始まる行はコメントとみなされます。
“idcode(i)”は重複しない正整数値です。
“dpysname(c)”は、KARACRIXでのオブジェクトデータを表示する際に単位として表示されます。
"dpylname(c)"は現在KARACRIXでは使われませんが、ユーザーが識別できるような名称をつけてください。
"etcname(c)"はオブジェクト登録時に選択ウィンドウで表示する内容を定義します。
 


資料4  kcxtext_stat_binary.tbl


kcxtext_stat_binary.tbl


#Copyright (c) 1996-2000 S.I.Soubou,Inc. All rights reserved.
#<< KARACRIX バイナリーステータス文字列データ >>
# idcode(i),"dpyname(c)"
# obj,"off_sname{nrm}(c)","off_lname{nrm}(c)","on_sname{alm}(c)","on_lname{alm}(c)"
# btn,"off_sname{nrm}(c)","off_lname{nrm}(c)","on_sname{alm}(c)","on_lname{alm}(c)"
# end
#
0, "ON/OFF"
obj, "OFF", "OFF", " ON", " ON"
btn, "OFF", "", " ON", ""
end
1, "オン/オフ"
obj, "オフ", "オフ", "オン", "オン"
btn, "オフ", "", "オン", ""
end
2, "起動/停止"
obj, "停止", "停止", "起動", "起動"
btn, "停止", "", "起動", ""
end
3, "実行/停止"
obj, "停止", "停止", "実行", "実行"
btn, "停止", "", "実行", ""
end
4, "開/閉"
obj, "閉", "閉", "開", "開"
btn, "閉", "", "開", ""
end
5, "OPEN/CLOSE"
obj, "クローズ", "クローズ", "オープン", "オープン"
btn, "クローズ", "", "オープン", ""
end
 


資料5  sys_#obj_system.edt


KARACRIXでは印刷時にUNIXシステムの”lpr”コマンドを実行します。コマンドで印刷すると きフィルター等を使用するためにオプションを設定しているユーザーは、そのオプションをこ こに設定します。

特に指定のないところは変更しないで下さい。
 

sys_#obj_system.edt


#Copyright (c) 1996-2000 S.I.Soubou,Inc. All rights reserved.
# no(i),perm(i),objidname{[8]}(c),objidcore(i),objtypename(c) ,objname(c)
# no(i),perm(i),objitemname(c),valtype{ifc}(c),val(if"c")
# end
#
0,1,"system",1,KcxOBJtp_SYSTEM_SysStd,"system"
0,0,KcxTBLtp_OBJSYSTEM_RmtProtocol,c,""
1,0,KcxTBLtp_OBJSYSTEM_RmtHostAddr,c,""
2,0,KcxTBLtp_OBJSYSTEM_RmtPortAddr,i,0
end
1,1,"_mesg0P",2,KcxOBJtp_PRINTER_UsrStd,"_mesg0P"
0,0,KcxTBLtp_OBJPRINTER_RmtProtocol,c,""
1,0,KcxTBLtp_OBJPRINTER_RmtHostAddr,c,""
2,0,KcxTBLtp_OBJPRINTER_RmtPortAddr,i,0
3,1,KcxTBLtp_OBJPRINTER_AlmCnvCode,i,0
4,1,KcxTBLtp_OBJPRINTER_Format,c,"escp"
5,1,KcxTBLtp_OBJPRINTER_PauseAnsSec,i,5
6,1,KcxTBLtp_OBJPRINTER_SpoolDirName,c,"0"
7,1,KcxTBLtp_OBJPRINTER_SpoolCleanSec,i,1800
8,1,KcxTBLtp_OBJPRINTER_SpoolCleanMByte,i,4
9,1,KcxTBLtp_OBJPRINTER_Protocol,c,"rs232c"
10,1,KcxTBLtp_OBJPRINTER_ProtocolOpt0,c,"/dev/tty00"
11,1,KcxTBLtp_OBJPRINTER_ProtocolOpt1,c,"9600"
12,1,KcxTBLtp_OBJPRINTER_ProtocolOpt2,c,"8"
13,1,KcxTBLtp_OBJPRINTER_ProtocolOpt3,c,"e"
14,1,KcxTBLtp_OBJPRINTER_ProtocolOpt4,c,"1"
15,1,KcxTBLtp_OBJPRINTER_ProtocolOpt5,c,""
16,1,KcxTBLtp_OBJPRINTER_ProtocolOpt6,c,""
17,1,KcxTBLtp_OBJPRINTER_ProtocolOpt7,c,""
end
2,1,"_ps0P",3,KcxOBJtp_PRINTER_UsrStd,"_ps0P"
0,0,KcxTBLtp_OBJPRINTER_RmtProtocol,c,""
1,0,KcxTBLtp_OBJPRINTER_RmtHostAddr,c,""
2,0,KcxTBLtp_OBJPRINTER_RmtPortAddr,i,0
3,1,KcxTBLtp_OBJPRINTER_AlmCnvCode,i,0
4,1,KcxTBLtp_OBJPRINTER_Format,c,"ps"
5,1,KcxTBLtp_OBJPRINTER_PauseAnsSec,i,5
6,1,KcxTBLtp_OBJPRINTER_SpoolDirName,c,"1"
7,1,KcxTBLtp_OBJPRINTER_SpoolCleanSec,i,3600
8,1,KcxTBLtp_OBJPRINTER_SpoolCleanMByte,i,-1
9,1,KcxTBLtp_OBJPRINTER_Protocol,c,"unix"
10,1,KcxTBLtp_OBJPRINTER_ProtocolOpt0,c,"/usr/bin/lpr"
11,1,KcxTBLtp_OBJPRINTER_ProtocolOpt1,c,"lpr"
12,1,KcxTBLtp_OBJPRINTER_ProtocolOpt2,c,"-Plp"
←printcapのエントリを指定します
13,1,KcxTBLtp_OBJPRINTER_ProtocolOpt3,c,""
←lprのオプションを指定します
14,1,KcxTBLtp_OBJPRINTER_ProtocolOpt4,c,""
←lprのオプションを指定します
15,1,KcxTBLtp_OBJPRINTER_ProtocolOpt5,c,""
←lprのオプションを指定します
16,1,KcxTBLtp_OBJPRINTER_ProtocolOpt6,c,""
←lprのオプションを指定します
17,1,KcxTBLtp_OBJPRINTER_ProtocolOpt7,c,""
←lprのオプションを指定します
end
3,1,"_pcadP",4,KcxOBJtp_PRIPRG_SysStd,"_pcadP"
0,0,KcxTBLtp_OBJPROGRAM_RmtProtocol,c,""
1,0,KcxTBLtp_OBJPROGRAM_RmtHostAddr,c,""
2,0,KcxTBLtp_OBJPROGRAM_RmtPortAddr,i,0
3,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr0,i,55000
4,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr1,i,55001
5,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr2,i,0
6,1,KcxTBLtp_OBJPROGRAM_AlmCnvCode,i,0
7,1,KcxTBLtp_OBJPROGRAM_CompileLang,i,0
8,1,KcxTBLtp_OBJPROGRAM_QueingSeqOutPut,i,1
9,1,KcxTBLtp_OBJPROGRAM_WebWrtCtlLevel,i,-1
end
4,1,"_mcadP",5,KcxOBJtp_PRIPRG_SysStd,"_mcadP"
0,0,KcxTBLtp_OBJPROGRAM_RmtProtocol,c,""
1,0,KcxTBLtp_OBJPROGRAM_RmtHostAddr,c,""
2,0,KcxTBLtp_OBJPROGRAM_RmtPortAddr,i,0
3,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr0,i,55003
4,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr1,i,55004
5,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr2,i,0
6,1,KcxTBLtp_OBJPROGRAM_AlmCnvCode,i,0
7,1,KcxTBLtp_OBJPROGRAM_CompileLang,i,0
8,1,KcxTBLtp_OBJPROGRAM_QueingSeqOutPut,i,1
9,1,KcxTBLtp_OBJPROGRAM_WebWrtCtlLevel,i,-1
end
5,1,"_listP",6,KcxOBJtp_PRIPRG_SysStd,"_listP"
0,0,KcxTBLtp_OBJPROGRAM_RmtProtocol,c,""
1,0,KcxTBLtp_OBJPROGRAM_RmtHostAddr,c,""
2,0,KcxTBLtp_OBJPROGRAM_RmtPortAddr,i,0
3,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr0,i,55006
4,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr1,i,55007
5,0,KcxTBLtp_OBJPROGRAM_MyIpPortAddr2,i,0
6,1,KcxTBLtp_OBJPROGRAM_AlmCnvCode,i,0
7,1,KcxTBLtp_OBJPROGRAM_CompileLang,i,0
8,1,KcxTBLtp_OBJPROGRAM_QueingSeqOutPut,i,1
9,1,KcxTBLtp_OBJPROGRAM_WebWrtCtlLevel,i,-1
end
#

資料3の単位と同様に、5番目以降に状態を追加していきます。
 


参考1 Webサーバーの設定


● Webサーバー(Apache)の設定について


(Apache1.3.3以前のバージョン場合)

Apacheの設定ファイル access.conf、srm.conf を以下のように修正しKARACRIXのホームページをアクセスできるように設定します。なお、これらの設定ファイルの存在している場所はディス トリビューションにより異なりますので、各OSの説明書を参照して下さい。

(以下の説明の中で、Apacheのドキュメントパス(/usr/local/apache/share)は、ディストリ ビューションにより異なる場合がありますので読み替えて下さい)

下記の例では、KARACRIXを /home/karacrix にインストールしたものとして説明します。また、XXXXXXの部分は、お使いのKARACRIXのタイプに合わせて書き換えて記述してください。

1) karacrix200L の場合: ../XXXXXX/.. -> ../karacrix200L/..

2) karacrix500R の場合: ../XXXXXX/.. -> ../karacrix500R/..

ファイル内の以下の行をエディタで変更して下さい。#を付けている行は、オリジナルの記述を 保存しておくためです。#を付けた行の次の行にKARACRIXのドキュメントパスを追記します。

A) access.conf ファイル

A.1) htdocsのパス

<Directory /usr/local/apache/share/htdocs>[変更前]

#<Directory /usr/local/apache/share/htdocs> [変更後]
<Directory /home/karacrix/XXXXXX/sys/sweb/htdocs>

A.2) cgi-binのパス

<Directory /usr/local/apache/share/cgi-bin>[変更前]

#<Directory /usr/local/apache/share/cgi-bin> [変更後]
<Directory /home/karacrix/XXXXXX/sys/sweb/cgi-bin>
AllowOverride None
Options None
</Directory>

B) srm.conf ファイル

B.1) htdocsのパス

DocumentRoot /usr/local/apache/share/htdocs [変更前]

#DocumentRoot /usr/local/apache/share/htdocs [変更後]
DocumentRoot /home/karacrix/XXXXXX/sys/sweb/htdocs

B.2) cgi-binのパス

ScriptAlias /cgi-bin/ /usr/local/apache/share/cgi-bin/ [変更前]

#ScriptAlias /cgi-bin/ /usr/local/apache/share/cgi-bin/
ScriptAlias /cgi-bin/ /home/karacrix/XXXXXX/sys/sweb/cgi-bin/ [変更後]

以上の変更をおこなった後、例えば、コンピュータを再起動するなどしてWebサーバーを立ち上 げ直して下さい。

(Apache1.3.4以降のバージョン場合)

Apacheの三つの設定ファイル access.conf、srm.conf、httpd.confファイルが一つの httpd.conf に統合されています。httpd.confファイルを以下のように修正してKARACRIXのホームページをア クセスできるように設定します。なお、これらの設定ファイルの存在している場所はディストリ ビューションにより異なりますので、各OSの説明書を参照して下さい。

(以下の説明の中で、Apacheのドキュメントパス(/usr/local/apache)は、ディストリビューショ ンにより異なる場合がありますので読み替えて下さい)

下記の例では、KARACRIXを /home/karacrix にインストールしたものとして説明します。また、XXXXXXの部分は、お使いのKARACRIXのタイプに合わせて書き換えて記述してください。

1) karacrix200L の場合: ../XXXXXX/.. -> ../karacrix200L/..

2) karacrix500R の場合: ../XXXXXX/.. -> ../karacrix500R/..

ファイル内の以下の行をエディタで変更して下さい。#を付けている行は、オリジナルの記述を 保存しておくためです。#を付けた行の次の行にKARACRIXのドキュメントパスを追記します。

(httpd.conf ファイル)

1) htdocsのパス

DocumentRoot /usr/local/apache/htdocs [変更前]

#DocumentRoot /usr/local/apache/htdocs [変更後]

DocumentRoot /home/karacrix/XXXXXX/sys/sweb/htdocs

2) htdocsのパス

<Directory /usr/local/apache/htdocs>[変更前]

#<Directory /usr/local/apache/htdocs> [変更後]
<Directory /home/karacrix/XXXXXX/sys/sweb/htdocs>

3) cgi-binのパス

ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/ [変更前]

#ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
ScriptAlias /cgi-bin/ /home/karacrix/XXXXXX/sys/sweb/cgi-bin/ [変更後]

4) cgi-binのパス

<Directory /usr/local/apache/cgi-bin>[変更前]

#<Directory /usr/local/apache/cgi-bin> [変更後]
<Directory /home/karacrix/XXXXXX/sys/sweb/cgi-bin>
AllowOverride None
Options None
</Directory>

以上の変更をおこなった後、例えば、コンピュータを再起動するなどしてWebサーバーを立ち上 げ直して下さい。

● Webからのアクセス

Webサーバーが立ち上がっている状態で、KARACRIXを起動して下さい。

KARACRIXが立ち上がっているホストとネットワークでつながっているコンピュータでWebブラウ ザを実行しKARACRIXが起動しているホストのURLを指定します。

例) 直接IPアドレス(DNSを利用しない場合等)を指定する場合

http://192.168.0.100/

URLを指定すると、KARACRIXホームページが読み込まれます。ユーザ認証を要求してきますので、 ユーザーIDとパスワードを入力して下さい。


参考2 ビデオキャプチャカードの設定


●ビデオキャプチャドライバ (例:Bt848用) の設定


[Linuxの場合]

2.2.x以降のカーネルを採用した、最近のディストリビューションをご使用の場合はビデオキャ プチャドライバが標準でインストールされている場合がほとんどですので、その場合は以下の [C]から作業をして下さい。それ以前の(2.0.x系)のカーネルを使用したディストリビュー ションをご使用の場合には、[A]から作業する必要があるかもしれません。

[A] Linuxカーネルの再構築

1. Linux Kernel Configuration が Loadable Module Supportに対応していない場合、これに対応したカーネルを作ります。

% cd /usr/src/linux

2. スーパーユーザになる。

% su
#

3. カーネルのコンフィグレーションを行う。

# make xconfig

Loadable_module_supportの項目で、Enable_loadable_module_support が y になっていなければ yにして。 MainMenu に戻り Save&Exitします。 (注意:表示内容と実際が異なる場合があるようです。)

4. 新しいカーネルを作成し入れ替える。(要注意)

# make dep
# make clean
# make zlilo (或いは make bzlilo)
# make modules
# make modules_install

[B] Linuxドライバ(Bt848)のインストール

カメラ画像を扱うためには、bt848チップを搭載したビデオキャプチャカードと デバイスドライバが必要です。以下にデバイスドライバのインストールについて説明します。下記の サイトからデバイスドライバを取得出来ます。

http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html

bttv-0.5.22.tar.gz(比較的安定している)
bttv-0.6.4.tar.gz(最新版)

1. 作業するディレクトリにドライバファイル(圧縮)を置く。

例) /home/karacrix で作業する場合

% cd /home/karacrix

2. スーパーユーザになる。

% su
#

3. 解凍する。

# tar xzvf bttv-0.5.22.tar.gz (ドライババージョン名(0.5.22)可変)

4. 作業ディレクトリに移動する。

# cd bttv/driver

5. make インストールする。

# make
# make install (失敗時: cp -v *.o /lib/modules/バージョン名/misc)

6. デバイスファイルを作成する。

# sh MAKEDEV

7. ヘッダファイルを include にコピーする。

# cp videodev.h /usr/include/linux

8. インストールの確認をする。

# cd /lib/modules/2.0.36/misc (カーネルバージョン名(2.0.36)可変)

ここに、 bttv.o, i2c.o, videodev.o が存在していれば正しくインストールされています。

[C] Linuxドライバ(Bt848)をモジュールとして組込む

1. スーパーユーザになる。

% su
#

2. 起動ファイルの設定をする為、ディレクトリを移動。

# cd /etc/rc.d

3. rc.modules ファイルに以下の記述を追加する。

(注: rc.modules はデイストリビューションによって、存在しないことがあります。この場合は、 modules を実行権限を付けて新規作成するか、或いは、rc 起動される他のファイル(rc.local等)に下記の記述を追加して下さい。)

# Video:

/sbin/modprobe videodev
/sbin/modprobe i2c
/sbin/modprobe bttv

※Linuxの最近のバージョンでは、デバイスファイルが作成されていない場合がありますので以 下の作業で確認をして、もし作成されていなければ以下の手順で作成して下さい。

4. デバイスファイルを確認する。

# cd /dev
# ls -l video*

lrwxrwxrwx 1 root root 11 Dec 29 18:08 video -> /dev/video0
crw-rw-rw- 1 root root 81, 0 Dec 29 18:08 video0
crw-rw-rw- 1 root root 81, 1 Dec 29 18:08 video1
crw-rw-rw- 1 root root 81, 2 Dec 29 18:08 video2
crw-rw-rw- 1 root root 81, 3 Dec 29 18:08 video3

上記のように表示されていれば、デバイスファイルは作成されています。もし、表示されない場 合には、5.を実行してください。

5. デバイスファイルを作成する。

# sh MAKEDEV video

[D] マシンの再起動と実行

1. マシンを再起動します。

2. ドライバモジュール名がロードされているか確認をする。

% lsmod

Module: #pages: Used by:
bttv 8 0
i2c 1 [bttv] 0
videodev 1 [bttv] 0

モジュール名に、bttv, i2c, videodev が出ていれば正常。

もし、出ていない場合は正しくモジュールが認識されていません。調査が必要です。

(例えば、/sbin/modprob videodev を手動で起動してエラーメッセージを見る)

3. X Window System を 16 或いは 24 プレーンで起動する。

例) startx コマンドを用いる場合

% startx -- -bpp 16

4. KARACRIX を起動し、カメラハンドラサンプルプログラムをコンパイルし、 プログラムを実行させます。その後、監視パネル上にカメラ画像を 描画させる領域をCADにて定義します。これにより、「監視パネル」 画面、或は遠隔のブラウザよりカメラ画像を見ることができます。

※KARACRIX V2.09 以降の手順(現在は、ビデオレコーダデーモンプログラムに機能を移設した ため、4.の手順は不要で、実行すると競合を起こします。

[FreeBSDの場合]

1. デバイスドライバに対応したカーネルを作ります。

% cd /usr/src/sys/i386/conf

2. スーパーユーザになる。

% su
#

3. カーネルのコンフィグレーション GENERIC(例) に以下の記述を追加する。

device bktr0

4. make インストールする。

# config GENERIC
# cd ../../compile/GENERIC
# make depend; make
# make install

5. デバイスファイルを作成する。

# cd /dev
# sh MAKEDEV bktr

X Window Systemの起動法などは、LINUXと同様ですので参考にして下さい。
 


Copyright(C) All Rights Reserved. by S.I.Soubou,Inc.