#include "matrix32.h"
long DataIn[256]; /* 読み込みデータ用バッファ */
long DataOut[256]; /* 書き込みデータ用バッファ */
short RetCode; /* 戻り値 */
long DNG_Version; /* Matrixバージョン番号 */
short DNG_LPT; /* LPTポート番号 */
short DNG_LPTADR; /* LPTポートのアドレス */
short DNG_Count; /* LPTポートに接続されているMatrix数 */
short DNG_Mem; /* Matrixのメモリサイズ */
short DNG_MaxVar; /* 最大データフィールド数 */
short i;
/*----------------------------------------------------*/
/* Matrix-API の初期化 */
/*----------------------------------------------------*/
RetCode = Init_MatrixAPI();
if(RetCode < 0) exit;
/*-----------------------------------------------------*/
/* LPT1があるかどうか確認 */
/*-----------------------------------------------------*/
DNG_LPT = 1;
DNG_LPTADR = GetPortAdr(DNG_LPT);
if(DNG_LPTADR == 0)
{
printf(”LPT1はがありません!”);
Release_MatrixAPI(); exit;
}
/*-----------------------------------------------------*/
/* LPT1に接続されたMatrix数を調べる */
/*-----------------------------------------------------*/
DNG_Count = Dongle_Count(DNG_LPT);
if(DNG_Count == 0)
{
printf(”LPT1にMatrixは接続されていません!”);
Release_MatrixAPI(); exit;
}
/*-----------------------------------------------------*/
/* LPT1に接続された最後のMatrixのメモリサイズ */
/*-----------------------------------------------------*/
DNG_Mem = Dongle_MemSize(DNG_Count, DNG_LPT);
if(DNG_Mem == 0)
{
printf(”メモリサイズは読み取れません!”);
Release_MatrixAPI(); exit;
}
DNG_MaxVar = DNG_Mem / 4; /* データフィールド数 */
/*-----------------------------------------------------*/
/* LPT1に接続された最後のMatrixのバージョン */
/*-----------------------------------------------------*/
DNG_Version = Dongle_Version(DNG_Count, DNG_LPT);
if(DNG_Version > 0)
{
printf("このMatrixのバージョン : %d.%d",
HIWORD(DNG_Version),
LOWORD(DNG_Version));
}
else
{
printf(”Matrixのバージョンを読み取れませんでした”);
Release_MatrixAPI(); exit;
}
/*-----------------------------------------------------*/
/* LPT1に接続された最後のMatrixから 15個のデータフィールドを*/
/* ユーザコード 1234 で読み取り、表示する */
/*-----------------------------------------------------*/
RetCode=Dongle_ReadData(1234, DataIn, 15, DNG_Count, DNG_LPT);
if(RetCode < 0)
{
printf("データ読み取り中にエラー発生");
Release_MatrixAPI(); exit;
}
for(i=0; i<15; i++)
{
printf("データフィールドフィールド %d = %ld", i+1, DataIn[i]);
}
/*-----------------------------------------------------*/
/* LPT1に接続された最後のMatrixの15個のデータフィールドに */
/* ユーザコード 1234 で値101,102,103…を書き込む */
/*-----------------------------------------------------*/
for(i=0; i<15; i++)
{
DataOut[i] = 101 + i;
}
RetCode=Dongle_WriteData(1234, DataOut, 15, DNG_Count, DNG_LPT);
if(RetCode < 0)
{
printf("Matrix書き込み中にエラー発生!");
Release_MatrixAPI(); exit;
}
/*-----------------------------------------------------*/
/* Matrix-APIの解放 */
/*-----------------------------------------------------*/
Release_MatrixAPI();