Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
COM(PCI/C-PCI)Linux/RT
www.interface.co.jp
GPG-4141 調歩同期シリアル通信インタフェースモジュール用 Linux/RT 対応ドライバ
Help for Linux
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
2
目 次
第 1 章 はじめに 3
1.1 概要............................................................................. 3
1.2 特長............................................................................. 3
第 2 章 製品仕様 4
2.1 動作環境......................................................................... 4
2.2 基本仕様......................................................................... 6
第 3 章 実行手順 10
3.1 デバイスを動かすまで............................................................ 10
3.2 制御手順(調歩同期通信部) ...................................................... 14
3.3 制御手順(汎用DIO部) ........................................................... 20
3.4 ドライバ組み込みオプション ...................................................... 23
3.5 /procファイルシステム........................................................... 25
第 4 章 リファレンス 26
4.1 関数一覧(調歩同期通信部) ...................................................... 26
4.2 IOCTLリクエスト一覧(調歩同期通信部) ........................................... 27
4.3 拡張ioctl仕様(調歩同期通信部) ................................................. 28
4.4 構造体(調歩同期通信部)........................................................ 40
4.5 関数一覧(汎用DIO部) ............................................................. 47
4.6 関数個別説明(汎用DIO部) ......................................................... 48
4.7 戻り値一覧(汎用DIO部) ........................................................... 70
第 5 章 サンプルプログラム 71
5.1 データ送信サンプルプログラム .................................................... 71
5.2 データ受信サンプルプログラム .................................................... 71
5.3 データ送信サンプルプログラム(全二重方式) ........................................ 72
5.4 データ送信サンプルプログラム(2 線式半二重)....................................... 72
5.5 データ受信サンプルプログラム(全二重方式) ........................................ 72
5.6 データ受信サンプルプログラム(2 線式半二重)....................................... 72
第 6 章 ユーティリティ 73
6.1 通信方式設定プログラム.......................................................... 73
第 7 章 重要な情報 74
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
3
第1章 はじめに
1.1 概要 本ソフトウェアは、Linux アプリケーションから、弊社調歩同期シリアル通信製品の制御を行うた
めのソフトウェアです。GPG-4141 は、弊社調歩同期シリアル通信製品を Linux アプリケーションか
らシリアル関数をコール(汎用 DIO 部は Lib をリンクし関数をコール)することにより制御します。
本ドキュメントは、Linux 上で GPG-4141 を使用するための情報を掲載しています。
1.2 特長 ●弊社シリアル通信製品をコンピュータ本体内蔵のシリアルポートと同様に使用することができま
す。
●TTY ドライバに準拠しており、Linux 標準シリアル関数(termios)を使用して通信が行えます。
●ボーレート設定用の ioctl を呼び出すことで、コンピュータ本体内蔵のシリアルポートでは実現で
きないボーレートを設定することができます。
●RS-485 インタフェースモジュールを使用すれば、2 線式半二重によるマルチドロップ通信を実現
することができます。
また、4線式半二重通信にも対応しています。
●通信モジュール製品に対応しています。下記のような特長があります。
・CPU を搭載しており、通信の際のパソコンや CPU ボード負荷を軽減することが出来ます。
※PCI/CTP/CPZ-420108Q,PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420208Q,PCI/CTP/CPZ-420216Q
のみ搭載しています。
・ 大 16 チャンネルの通信を制御することが可能です。
※PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420216Q のみ 大 16 チャンネル可能です。
・ 大 48 点のデジタル入出力を制御することが可能です。
※PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420216Q のみ 大 48 点可能です。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
4
第2章 製品仕様
2.1 動作環境 機種 弊社製 FA コントローラ
弊社製 Classembly Devices®
PC/AT 互換機、NEC PC/FC-9821
ドライバ種別 TTY ドライバ(Linux 標準シリアルドライバ互換)
組み込み方式 モジュール(ダイナミックロード/アンロード)
PCI-4201xxQ, PCI-4202xxQ
CPZ-4201xxQ, CPZ-4202xxQ
CTP-4201xxQ, CTP-4202xxQ
/dev/ttyJ0~/dev/ttyJ127
/dev/cuj0 ~/dev/cuj127
ドライバ組み込み時変更可能
PCI-4161, PCI-4661xx
LPC-400111, LPC-4661xx
PEX-400111, PEX-4661xx, PEX-H4661xx
CTP-4661xx, CPZ-4661xx
/dev/ttyG0~/dev/ttyG127
/dev/cug0 ~/dev/cug127
ドライバ組み込み時変更可能
IUC-C2934(L), IUC-P2934(L)
IUC-x2934(L6), TIO-C2934x(L6)
IUC-x2934(L7)
/dev/ttyUSB0 RS485
/dev/ttyUSB1 RS232C
固定割り当て(変更不可)
IUC-x4668(L6), TIO-C4668x(L6)
IUC-x4668(L7)
/dev/ttyUSB0 RS232C
/dev/ttyUSB1 RS232C
/dev/ttyUSB2 RS232C
/dev/ttyUSB3 RS232C
固定割り当て(変更不可)
IUC-x4676(L6), IUC-x4855(L6)
TIO-C4676x(L6), TIO-C4855x(L6)
IUC-x4676(L7), IUC-x4855(L7)
/dev/ttyUSB0 RS232C
IUC-x3615(L6), IUC-x4326(L6)
IUC-x2980(L6),
TIO-C3615x(L6), TIO-C4326x(L6)
TIO-C2980x(L6),
IUC-x3615(L7), IUC-x4326(L7)
IUC-x2980(L7)
/dev/ttyUSB0 RS232C
/dev/ttyUSB1 RS485
固定割り当て(変更不可)
デバイ
スノー
ド
上記以外 /dev/ttyS64~/dev/ttyS191
/dev/cua64 ~/dev/cua191
ドライバ組み込み時変更可能
PCI-4201xxQ, PCI-4202xxQ
CPZ-4201xxQ, CPZ-4202xxQ
CTP-4201xxQ, CTP-4202xxQ
固定割り当て(デフォルト 48, 49)
ドライバ組み込み時変更可能
メジャ
ー番号
割り当
て PCI-4161, PCI-4661xx
LPC-400111, LPC-4661xx
PEX-400111, PEX-4661xx, PEX-H4661xx
CTP-4661xx, CPZ-4661xx
固定割り当て(デフォルト 40, 41)
ドライバ組み込み時変更可能
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
5
IUC-C2934(L), IUC-P2934(L)
IUC-x2934(L6), TIO-C2934x(L6)
IUC-x4668(L6), TIO-C4668x(L6)
IUC-x4676(L6), TIO-C4676x(L6)
IUC-x3615(L6), TIO-C3615x(L6)
IUC-x4326(L6), TIO-C4326x(L6)
IUC-x4855(L6), TIO-C4855x(L6)
IUC-x2980(L6), TIO-C2980x(L6)
IUC-x2934(L7), IUC-x2980(L7)
IUC-x3615(L7), IUC-x4326(L7)
IUC-x4676(L7), IUC-x4668(L7)
IUC-x4855(L7)
固定割り当て変更不可(188)
上記以外 固定割り当て(デフォルト 4, 5)
ドライバ組み込み時変更可能
ソースコードの
取り扱い
ドライバモジュール公開
ビルドサポート メイクファイル提供
ヘルプファイル PDF 形式
テキスト形式
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
6
2.2 基本仕様 大ポート数 128 ポート
PCI-4161 12bps ~ 1Mbps
PCI-46610x, PCI-4202xxQ,
PEX-46610x, PEX-H46610x,
LPC-46610x,
CPZ-46610x, CPZ-4202xxQ,
CTP-4202xxQ,CTP-46610x
8bps ~ 2Mbps
PCI-4661x0, PCI-4201xxQ,
PEX-400111, PEX-4661x0, PEX-H4661x0
LPC-400111, LPC-4661x0,
CPZ-4661x0, CPZ-4201xxQ,
CTP-4201xxQ,CTP-4661x0
8bps ~ 1Mbps
IUC-C2934(L)(RS232C),
IUC-P2934(L)(RS232C),
IUC-x2934(L6)(RS232C),
TIO-C2934x(L6)(RS232C),
IUC-x2934(L7)(RS232C)
2400bps,4800bps,9600bps,19200bps,
38400bps,57600bps,115200bps,
230400bps,460800bps,921600bps
IUC-x3615(L6)(RS232C),
IUC-x4668(L6)(RS232C),
IUC-x4676(L6)(RS232C),
IUC-x4326(L6)(RS232C),
IUC-x4855(L6)(RS232C),
IUC-x2980(L6)(RS232C),
TIO-C3615x(L6)(RS232C),
TIO-C4668x(L6)(RS232C),
TIO-C4676x(L6)(RS232C),
TIO-C4326x(L6)(RS232C),
TIO-C4855x(L6)(RS232C),
TIO-C2980x(L6)(RS232C),
IUC-x3615(L7)(RS232C),
IUC-x4668(L7)(RS232C),
IUC-x4676(L7)(RS232C),
IUC-x4326(L7)(RS232C),
IUC-x4855(L7)(RS232C),
IUC-x2980(L7)(RS232C)
300bps,600bps,1200bps,1800bps,
2400bps,4800bps,9600bps,19200bps,
38400bps,57600bps,115200bps,
230400bps,460800bps,500000bps,
576000bps,921600bps,1000000bps
ボーレート
IUC-C2934(L)(RS485),
IUC-P2934(L)(RS485),
IUC-x2934(L6)(RS485),
TIO-C2934x(L6)(RS485),
IUC-x3615(L6)(RS485),
IUC-x4326(L6)(RS485),
IUC-x2980(L6)(RS485),
TIO-C3615x(L6)(RS485),
TIO-C4326x(L6)(RS485),
TIO-C2980x(L6)(RS485),
IUC-x2934(L7)(RS485),
IUC-x3615(L7)(RS485),
IUC-x4326(L7)(RS485),
IUC-x2980(L7)(RS485)
300bps,600bps,1200bps,1800bps,
2400bps,4800bps,9600bps,19200bps,
38400bps,57600bps,115200bps,
230400bps,460800bps,500000bps,
576000bps,921600bps,1000000bps,
1500000bps,2000000bps
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
7
上記以外 2bps ~ 921600bps
IUC-C2934(L)(RS232C),
IUC-P2934(L)(RS232C),
IUC-x2934(L6)(RS232C),
TIO-C2934x(L6)(RS232C),
IUC-x2934(L7)(RS232C)
8bit データ長
上記以外 5bit ~ 8bit
パリティ なし、奇数、偶数
PCI-4161, PCI-4661xx,
PCI-4201xxQ, PCI-4202xxQ,
PEX-400111, PEX-4661xx, PEX-H4661xx,
LPC-400111, LPC-4661xx,
CPZ-4661xx,
CPZ-4201xxQ, CPZ-4202xxQ,
CTP-4201xxQ, CTP-4202xxQ,
CTP-4661xx,
IUC-C2934(L)(RS485),
IUC-P2934(L)(RS485),
IUC-x2934(L6)(RS485),
IUC-x3615(L6), IUC-x4668(L6),
IUC-x4676(L6), IUC-x4326(L6),
IUC-x4855(L6), IUC-x2980(L6),
TIO-C2934x(L6) (RS485),
TIO-C3615x(L6), TIO-C4668x(L6),
TIO-C4676x(L6), TIO-C4326x(L6),
TIO-C4855x(L6), TIO-C2980x(L6),
IUC-x2934(L7)(RS485),
IUC-x3615(L7), IUC-x4668(L7),
IUC-x4676(L7), IUC-x4326(L7),
IUC-x4855(L7), IUC-x2980(L7)
1bit, 2bit
IUC-C2934(L)(RS232C),
IUC-P2934(L)(RS232C),
IUC-x2934(L6)(RS232C),
TIO-C2934x(L6)(RS232C),
IUC-x2934(L7)(RS232C)
1bit
ストップビッ
ト長
上記以外 1bit, 1.5bit, 2bit
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
8
IUC-C2934(L)(RS232C),
IUC-P2934(L)(RS232C),
IUC-x2934(L6)(RS232C),
TIO-C2934x(L6)(RS232C),
IUC-x3615(L6)(RS232C),
IUC-x4668(L6)(RS232C),
IUC-x4676(L6)(RS232C),
IUC-x4326(L6)(RS232C),
IUC-x4855(L6)(RS232C),
IUC-x2980(L6)(RS232C),
TIO-C3615x(L6)(RS232C),
TIO-C4668x(L6)(RS232C),
TIO-C4676x(L6)(RS232C),
TIO-C4326x(L6)(RS232C),
TIO-C4855x(L6)(RS232C),
TIO-C2980x(L6)(RS232C),
IUC-x2934(L7)(RS232C),
IUC-x3615(L7)(RS232C),
IUC-x4668(L7)(RS232C),
IUC-x4676(L7)(RS232C),
IUC-x4326(L7)(RS232C),
IUC-x4855(L7)(RS232C),
IUC-x2980(L7)(RS232C)
全二重通信
上記以外の RS232C 全二重通信、半二重通信(4 線式)
IUC-C2934(L)(RS485),
IUC-P2934(L)(RS485),
IUC-x2934(L6)(RS485),
IUC-x3615(L6)(RS485),
IUC-x4326(L6)(RS485),
IUC-x2980(L6)(RS485),
TIO-C2934x(L6)(RS485),
TIO-C3615x(L6)(RS485),
TIO-C4326x(L6)(RS485),
TIO-C2980x(L6)(RS485),
IUC-x2934(L7)(RS485),
IUC-x3615(L7)(RS485),
IUC-x4326(L7)(RS485),
IUC-x2980(L7)(RS485)
全二重通信、半二重通信(2 線式)
通信方式
上記以外の RS-485 全二重通信、半二重通信(2 線式、4線
式)
RS-232C 出力信号:RS, ER
入力信号:CS, DR, CI, CD
制御信号
RS-485 出力信号:C(全二重通信のみ *1)
入力信号:I(全二重通信のみ *1)
/proc ファイルシステム
※下記以外の型式
IUC-C2934(L)、IUC-P2934(L)、
IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、
IUC-x4676(L6)、IUC-x4326(L6)、IUC-x4855(L6)、
IUC-x2980(L6)、
TIO-C2934x(L6)、TIO-C3615x(L6)、TIO-C4668x(L6)、
TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、
参照できる内容
・デバイスノード名
・送受信通算バイト数
・制御信号状態
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
9
TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、
IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
汎用 DIO 部 PCI-4201xxQ, PCI-4202xxQ
CPZ-4201xxQ, CPZ-4202xxQ
CTP-4201xxQ, CTP-4202xxQ
24 点/1 デバイス
*1) 半二重通信時、C 信号、I 信号はデータライン切り替え用に使われるため、制御することはできま
せん。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
10
第3章 実行手順
3.1 デバイスを動かすまで 1. インストール
インタフェースモジュールを拡張スロットに実装しシステムを起動します。
インストーラを起動し、Linux ドライバのインストールを行います。
詳しいインストール方法は、Readme をご参照ください。 #bash install
インストーラの指示に従って、インストールを行ってください。
2. ドライバモジュールの組み込み
Linux 用ドライバモジュールを組み込みます。
組み込むドライバは使用するインタフェースモジュールによって異なります。
インタフェースモジュール ドライバ
PCI-4201xxQ, PCI-4202xxQ
CPZ-4201xxQ, CPZ-4202xxQ
CTP-4201xxQ, CTP-4202xxQ
cp4201
PCI-4161, PCI-4661xx, LPC-400111, LPC-4661xx
PEX-400111, PEX-4661xx, PEX-H4661xx, CTP-4661xx
CPZ-4661xx
cp4161
IUC-C2934(L), IUC-P2934(L),
IUC-x2934(L6), IUC-x3615(L6),IUC-x4668(L6), IUC-x4676(L6),
IUC-x4326(L6), IUC-x4855(L6),IUC-x2980(L6),
TIO-C2934x(L6), TIO-C3615x(L6), TIO-C4668x(L6), TIO-C4676x(L6),
TIO-C4326x(L6), TIO-C4855x(L6), TIO-C2980x(L6),
IUC-x2934(L7), IUC-x3615(L7),IUC-x4668(L7), IUC-x4676(L7),
IUC-x4326(L7), IUC-x4855(L7),IUC-x2980(L7)
ifcp2105
上記以外 cp4141
例)PCI-420108Q の場合 #modprobe cp4201
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
11
3. デバイスノード名の確認
/proc ファイルシステムを参照することにより、各通信ポートのデバイスノード名を確認します。
・cp4201, cp4161, cp4141 ドライバモジュールを組み込む製品の場合
行頭の ttyxx がデバイスノード名になります。 #cat /proc/tty/driver/cp4141 ttyS64: PCI-4141(bid=0h)CH1 [9600bps] tx:0 rx:0 ttyS65: PCI-4141(bid=0h)CH2 [9600bps] tx:0 rx:0 ttyS66: PCI-4142(bid=0h)CH1 [9600bps HD2W] tx:0 rx:0 ttyS67: PCI-4142(bid=0h)CH2 [9600bps HD2W] tx:0 rx:0 #cat /proc/tty/driver/cp4161 ttyG0: PCI-4161(bid=0h)CH1 [9600bps] tx:0 rx:0 ttyG1: PCI-4161(bid=0h)CH2 [9600bps] tx:0 rx:0
・ifcp2105 ドライバモジュールを組み込む製品の場合
・IUC-C2934(L), IUC-P2934(L), IUC-x2934(L6), TIO-C2934x(L6), IUC-x2934(L7)の場合
「ttyUSB0」, 「ttyUSB1」がデバイスノード名になります。
RS485 のデバイスノードは ttyUSB0、RS232C のデバイスノードは ttyUSB1 となります。
・IUC-x3615(L6), TIO-C3615x(L6), IUC-x3615(L7)の場合
「ttyUSB0」, 「ttyUSB1」がデバイスノード名になります。
RS485 のデバイスノードは ttyUSB1、RS232C のデバイスノードは ttyUSB0 となります。
・IUC-x4668(L6), TIO-C4668x(L6), IUC-x4668(L7)の場合
「ttyUSB0」,「ttyUSB1」,「ttyUSB2」,「ttyUSB3」がデバイスノード名になります。
RS232C の CH1, CH2, CH3, CH4 がそれぞれ「ttyUSB0」,「ttyUSB1」,「ttyUSB2」,「ttyUSB3」
となります。
・IUC-x4676(L6), TIO-C4676x(L6), IUC-x4676(L7)の場合
「ttyUSB0」がデバイスノード名になります。
・IUC-x4326(L6), TIO-C4326x(L6), IUC-x4326(L7)の場合
「ttyUSB0」, 「ttyUSB1」がデバイスノード名になります。
RS485 のデバイスノードは ttyUSB1、RS232C のデバイスノードは ttyUSB0 となります。
・IUC-x4855(L6), TIO-C4855x(L6), IUC-x4855(L7)の場合
「ttyUSB0」がデバイスノード名になります。
・IUC-x2980(L6), TIO-C2980x(L6), IUC-x2980(L7)の場合
「ttyUSB0」, 「ttyUSB1」がデバイスノード名になります。
RS485 のデバイスノードは ttyUSB1、RS232C のデバイスノードは ttyUSB0 となります。
通信ポートはデバイスノード名を指定してオープンします。
注)インタフェースモジュールが実装されていないと正しく表示されませんので、ご注意ください。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
12
4. プログラム作成
ここでは「ポートオープン」→「ボーレート設定」→「データ送信」→「ポートクローズ」の一連の通信
ポート制御を行うプログラムを作成します。
エディタを起動し、下記のコードを入力して下さい。
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
#include <sys/ioctl.h>
#include "cp4141.h"
int main(void)
{
int fd, ret;
struct termios options;
unsigned long BaudRate;
fd = open("/dev/ttyS64", O_RDWR | O_NONBLOCK);
if (fd < 0){
perror("The port is not found. ");
return -1;
}
BaudRate = 921600;
ret = ioctl( fd, CP4141_SET_BAUDRATE, &BaudRate);
if(ret == -1) {
perror("The baudrate setup cannot be performed. ");
close(fd);
return -1;
}
ret = write(fd, "12345", 5);
if(ret == -1) {
perror("Failed to transmit the data. ");
close(fd);
return -1;
}
close(fd);
return 0;
}
コードの記述が終われば comtest.c というファイル名で保存しておきます。
5. コンパイル
作成したプログラムをコンパイルします。下記のコマンドを実行してください。 #gcc –o comtest comtest.c
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
13
6. 実行
コンパイルすることで実行ファイル comtest ができていますので、 #./comtest と入力し、プログラムを実行してください。
より詳しいプログラム方法は、『3.2 制御手順』、およびチュートリアルをご参照ください。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
14
3.2 制御手順(調歩同期通信部) GPG-4141 では、Linux 標準シリアル関数を使用して通信ポートを制御します。
1.初期化
オープンシステムコールでポートをオープンします。
オープンしたポートはアプリケーション終了の際には必ずクローズシステムコールでポートをクロ
ーズして下さい。
下の例ではデバイスノード ttyS66 のポートをオープンしています。
int open_port(void)
{
int fd;
/* ポートオープン */
fd = open("/dev/ttyS66", O_RDWR);
if(fd < 0) {
perror("The port is not found. ");
}
return fd;
}
●インタフェースモジュールを特定してのポートオープン方法
ioctl 関数でポートに対して CP4141_GET_PORTINFO リクエストを指定することで、そのポートの詳細
な機能情報を取得できます。これにより、そのポートが所望のポートかどうかを調べることができま
す。
int open_cp4141port(int DeviceID, int SubsystemID, int BoardID, int ChannelNumber)
{
int index;
int tempfd;
char ttyname[256];
CP4141_PORTINFO PortInfo;
/* ポート検索("/dev/ttyS64"から順番にサーチします) */
for(index = 0; index < CP4141_MAX_PORTS; index++) {
sprintf(ttyname, "/dev/" CP4141_TTY_NAME "%d", index + 64);
tempfd = open(ttyname, O_RDWR | O_NDELAY);
if(tempfd < 0) continue;
if(ioctl(tempfd, CP4141_GET_PORTINFO, &PortInfo) < 0) {
close(tempfd);
return -1;
}
if (PortInfo.DeviceID == DeviceID &&
PortInfo.SubsystemID == SubsystemID &&
PortInfo.BoardID == BoardID &&
PortInfo.ChannelNumber == ChannelNumber) {
return tempfd;
}
}
return -1;
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
15
}
int main(void)
{
int fd;
/* ポートオープン */
fd = open_cp4141port(4144, 0x1, 0, 1);
if(fd < 0) {
perror("The port is not found. ");
return -1;
}
}
上の例では PCI-4144(RSW1 設定値が 0)のチャンネル 1をオープンしています。
ポートのオープンが完了したら、通信パラメータを設定します。tcgetattr 関数は現在の設定値を取
得し、必要な項目に対して termios 構造体のパラメータを変更します。
tcsetattr 関数で行います。設定例を以下に示します。
int setup_port(int fd)
{
struct termios tty_config;
/* 現在の設定値を取得 */
tcgetattr(fd, &tty_config);
/* 以下の条件で通信設定を行う */
/* データ長 8bit、1 ストップビット */
/* フロー制御なし、ローカルエコーなし */
tty_config.c_cflag &= ~(CRTSCTS | CSIZE);
tty_config.c_cflag |= (CS8 | CLOCAL | CREAD);
tty_config.c_iflag &= ~(IXON | IXOFF | ICRNL | ISTRIP);
tty_config.c_oflag = 0;
tty_config.c_lflag &= ~(ICANON | ECHO);
if(tcsetattr(fd, TCSANOW, &tty_config) == -1) {
perror("The port setup cannot be performed. ");
return -1;
}
return 0;
}
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
16
●termios で設定できないボーレートの指定方法
termios では下記の 18 種類のボーレートに設定することができます。
50bps, 75bps, 110bps, 134bps, 150bps, 200bps, 300bps, 600bps, 1200bps, 1800bps,
2400bps, 4800bps, 9600bps, 19200bps, 38400bps, 57600bps, 115200bps, 230400bps
※カーネル 2.6.32-5 では上記に加え、下記のボーレートを設定することができます。
460800bps, 500000bps, 576000bps, 921600bps, 1000000bps, 1500000bps, 2000000bps
これ以外のボーレートに設定する場合、ボーレート設定用 ioctl リクエストを使用します。
下の例ではボーレートを 921600bps に設定しています。
int setup_port(int fd)
{
struct termios tty_config;
unsigned long BaudRate;
/* 通信設定(ボーレートの設定はここでは行わない) */
tcgetattr(fd, &tty_config);
tty_config.c_cflag &= ~(CRTSCTS | CSIZE);
tty_config.c_cflag |= (CS8 | CLOCAL | CREAD);
tty_config.c_iflag &= ~(IXON | IXOFF | ICRNL | ISTRIP);
tty_config.c_oflag = 0;
tty_config.c_lflag &= ~(ICANON | ECHO);
if(tcsetattr(fd, TCSANOW, &tty_config) == -1) {
perror("The port setup cannot be performed. ");
return -1;
}
/* ボーレートを 921600bps に設定 */
BaudRate = 921600;
if(ioctl(fd, CP4141_SET_BAUDRATE, &BaudRate) == -1) {
perror("The baudrate setup cannot be performed. ");
return -1;
}
return 0;
}
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
17
2.送信
データ送信する際には、termios の write 関数を使用します。
データ送信例を以下に示します。
void send_data(int fd)
{
char SendBuffer[256];
size_t SendLength;
/* SendBuffer に、送信データを格納 */
strcpy(SendBuffer, "The quick brown fox jumps over the lazy dog. ");
/* データ長の取得 */
SendLength = strlen(SendBuffer);
/* データ送信 */
write(fd, SendBuffer, SendLength);
}
3.受信
受信バッファ内に格納されているデータを取得するには、termios の read 関数を使用します。以下
に例を示します。
#define MAX_RECEIVE_LENGTH 128
int receive_data(int fd)
{
int ret;
char RecvBuffer[MAX_RECEIVE_LENGTH];
/* 受信を行います。 */
ret = read(fd, RecvBuffer, MAX_RECEIVE_LENGTH);
if(ret < 0) return ret;
/* 受信したデータを表示します。 */
if(ret > 0) {
RecvBuffer[ret] = '/0';
printf("%s", RecvBuffer);
}
return ret;
}
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
18
4.半二重制御
半二重通信を行うには、半二重設定用 ioctl リクエストの CP4141_SET_DUPLEX_MODE を呼び出し通信
方式を切り替える必要があります。
下の例では通信方式を 2線式半二重に切り替えています。
int set_duplexmode(int fd)
{
int ret;
unsigned long DuplexMode;
/* 2 線式半二重に設定 */
DuplexMode = CP4141_HALF_DUPLEX_2W;
ret = ioctl(fd, CP4141_SET_DUPLEX_MODE, &DuplexMode);
return ret;
}
●データラインの切り替え(cp4141 ドライバの場合)
データラインの切り替えは制御信号設定用 ioctl リクエスト TIOCMBIS,TIOCMBIC を使用します。
データ送信を行う場合、TIOCMBIS リクエストで送信有効・受信無効に切り替え、データ送信を行
い、データ送信後 TIOCMBIC リクエストで送信無効・受信有効に切り替えます。
int half_send_data(int fd)
{
int ret;
unsigned int flag;
/* 送信有効・受信無効に切り換え */
flag = TIOCM_RTS;
ioctl(fd, TIOCMBIS, &flag);
/* データを送信 */
ret = write(fd, "12345", 5);
if(ret < 0) return ret;
/* 全ての送信データが回線に送出されるまで待つ */
while(1) {
ioctl(fd, TIOCSERGETLSR, &flag);
if(flag & TIOCSER_TEMT) {
break;
}
}
/* 送信無効・受信有効に切り換え */
flag = TIOCM_RTS;
ioctl(fd, TIOCMBIC, &flag);
return 0;
}
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
19
注意点として、送信関数呼び出し後のデータライン切り替えのタイミングが早いと、全ての送信デー
タが回線に送出される前にラインが切り替えられ、送信データが欠けてしまいます。
終データが回線に送出されるのを待ってから、TIOCMBIC リクエストでラインの切り替えを行って
ください。
終データが回線に送出されたかどうかは、TIOCSERGETLSR リクエスト戻り値の TIOCSER_TEMT ビッ
トで確認することができます。
write 関数リターン時、全ての送信データが回線に送出されたわけではないのでご注意ください。
●データラインの切り替え(cp4201/cp4161 ドライバの場合)
データラインの切り替えはハードウェアで自動的に行います。
データラインの切り替えのタイミングは CP4141_SET_HS_FUNCTION リクエストで設定します。
●データラインの切り替え(ifcp2105 ドライバの場合)
データラインの切り替えはハードウェアで自動的に行います。
データラインの切り替えのタイミングは下記となります。
1 ÷ 設定されたボーレート
5.終了処理
close 関数でポートの終了処理を行います。
int close_port(int fd)
{
int ret;
ret = close(fd);
if(ret < 0) {
perror("The close operation was failed.");
return ret;
}
return 0;
}
ポートの使用を終了する際は必ず close 関数を実行してください。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
20
3.3 制御手順(汎用 DIO 部)
基本的な制御の手順は以下の通りです。(記述例は C言語です。)
1.初期化
デバイスをオープンし、デバイスハンドルを得ます。
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
/* デバイス初期化 */
lRet = SdioOpen(nDevice);
if (lRet != IFSDIO_ERROR_SUCCESS) { /* オープンに失敗 */
return -1;
}
第 1 引数には、型式・チャンネル・RSW1 設定値により一意に定まるデバイス番号を指定します。
型式・チャンネル・RSW1 設定とデバイス番号の対応は以下のとおりになります。 型式 RSW1
設定値
チャンネル デバイス
番号
デバイス番号識別子
1 33 IFSDIO_DEVICENO_TTYQ_0_1 0
2 34 IFSDIO_DEVICENO_TTYQ_0_2
1 35 IFSDIO_DEVICENO_TTYQ_1_1 1
2 36 IFSDIO_DEVICENO_TTYQ_1_2
… … … …
1 63 IFSDIO_DEVICENO_TTYQ_F_1
CPZ-420108Q, CPZ-420116Q,
CPZ-420208Q, CPZ-420216Q,
CTP-420108Q, CTP-420116Q,
CTP-420208Q, CTP-420216Q,
PCI-420108Q, PCI-420116Q,
PCI-420208Q, PCI-420216Q
※CPZ-420108Q, CPZ-420208Q,
CTP-420108Q, CTP-420208Q,
PCI-420108Q,PCI-420208Q には、
チャンネル 2は存在しません。
F
2 64 IFSDIO_DEVICENO_TTYQ_F_2
2.入力方法
SdioInputByte/SdioInputWord/SdioInputDword 関数を用いて、指定した接点の状態を読み出します。
// IN1~IN8 の 8 点の接点状態を入力します。
lRet = SdioInputByte( nDevice, IFSDIO_IN1_8, &Value );
// IN1~IN16 の 16 点の接点状態を入力します。
lRet = SdioInputWord( nDevice, IFSDIO_IN1_16, &Value );
// IN1~IN32 の 32 点の接点状態を入力します。
lRet = SdioInputDword( nDevice, IFSDIO_IN1_32, &Value );
上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の接点状態を入力しますが、以下のように、
入力する接点の範囲を指定して入力することも出来ます。
// IN5~IN7 の 3 点の接点状態を入力します。
lRet = SdioInputPoint( nDevice, &nBuffer[0], 5, 3 );
配列 nBuffer は、3つ以上の要素が用意されていなければなりません。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
21
3.出力方法
SdioOutputByte/SdioOutputWord/SdioOutputDword 関数を用いて、出力を変化させます。
// OUT1~OUT8 の 8 点の出力を変化させします。
lRet = SdioOutputByte( nDevice, IFSDIO_OUT1_8, Value );
// OUT1~OUT16 の 16 点の出力を変化させます。
lRet = SdioOutputWord( nDevice, IFSDIO_OUT1_16, Value );
// OUT1~OUT32 の 32 点の出力を変化させします。
lRet = SdioOutputDword( nDevice, IFSDIO_OUT1_32, Value );
上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の出力状態を変化させますが、以下のように、
出力する範囲を指定することも出来ます。
// OUT5~OUT7 の 3 点の出力を変化させます。
lRet = SdioOutputPoint( nDevice, &nBuffer[0], 5, 3 );
配列 nBuffer は、3 つ以上の要素が用意され、あらかじめ nBuffer[0]~[2]へ、 OUT3~5 へ出力さ
せる値がセットされていなければなりません。
4.STB 入力時のデータを取り込む
1) STB 入力によるラッチ機能を有効にします。
// STB の立下りエッジでデータをラッチする。
lRet = SdioSetLatchLogic( nDevice, IFSDIO_FALL_EDGE );
2) STB 入力割り込み時の動作を登録します。
// コールバック関数 CallBackProc を登録
lRet = SdioSetEvent( nDevice, NULL, 0, NULL, CallBackProc, 0);
上記はコールバックを用いた例です。
SdioSetEvent 関数では、コールバック処理を登録させることが出来ます。
STB 入力時に、SdioSetEvent 関数で指定したコールバック関数が呼び出されます。
コールバック関数の仕様は、CallBackProc を参照してください。
3) STB 入力時の割り込みを有効にします。
// STB の立下りエッジで割り込みを発生させる
lRet = SdioSetEventLogic( nDevice, IFSDIO_FALL_EDGE );
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
22
4) CallBackProc 関数の中で、STB 入力によってラッチされた接点状態を読み出します。
// IN1~IN8 の 8 点の接点状態を入力します。
lRet = SdioInputLatchByte( nDevice, IFSDIO_IN1_8, &Value );
// IN1~IN16 の 16 点の接点状態を入力します。
lRet = SdioInputLatchWord( nDevice, IFSDIO_IN1_16, &Value );
// IN1~IN32 の 32 点の接点状態を入力します。
lRet = SdioInputLatchDword( nDevice, IFSDIO_IN1_32, &Value );
上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の接点状態を入力しますが、以下のように、
入力する接点の範囲を
指定して入力することも出来ます。
// IN5~IN7 の 3 点の接点状態を入力します。
lRet = SdioInputLatchPoint( nDevice, &nBuffer[0], 5, 3 );
配列 nBuffer は、3つ以上の要素が用意されていなければなりません。
5.終了方法
1) STB 入力割り込み処理を登録している場合、割り込みを無効にしてから、登録している処理を解除
します。
// STB 入力割り込みを解除
lRet = SdioSetEventLogic( nDevice, 0);
// STB 入力割り込み時の処理を解除
lRet = SdioSetEvent( nDevice, NULL, 0, NULL, NULL, 0);
2) SdioClose 関数でデバイスをクローズします。
lRet = SdioClose( nDevice);
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
23
3.4 ドライバ組み込みオプション 本ドライバ組み込み時、以下のパラメータを設定することができます。
※ifcp2105 ドライバモジュールでは対応しておりません。ご注意下さい。
cp4141 ドライバ
パラメータ 内容
cp4141_ttyname TTY デバイス名を設定します。
デフォルトは ttyS です。
cp4141_calloutname コールアウトデバイス名を設定します。
デフォルトは cua です。
cp4141_ttymajor TTY デバイスのメジャー番号を設定します。
デフォルトは 4です。
cp4141_calloutmajor コールアウトデバイスのメジャー番号を設定します。
デフォルトは 5です。
cp4141_minorstart シリアルポートのマイナー番号が割り振られる先頭値です。
デフォルトは 64 です。
ドライバ組み込み直後の RS-485 の通信方式を設定します。
デフォルトは全二重です。
設定値は以下のとおりです。
full 全二重通信
half2w 2 線式半二重通信
cp4141_duplexmode
half4w 4 線式半二重通信
cp4161 ドライバ
パラメータ 内容
cp4161_ttyname TTY デバイス名を設定します。
デフォルトは ttyG です。
cp4161_calloutname コールアウトデバイス名を設定します。
デフォルトは cug です。
cp4161_ttymajor TTY デバイスのメジャー番号を設定します。
デフォルトは 40 です。
cp4161_calloutmajor コールアウトデバイスのメジャー番号を設定します。
デフォルトは 41 です。
cp4161_minorstart シリアルポートのマイナー番号が割り振られる先頭値です。
デフォルトは 0です。
ドライバ組み込み直後の RS-485 の通信方式を設定します。
デフォルトは全二重です。
設定値は以下のとおりです。
full 全二重通信
half2w 2 線式半二重通信
cp4161_duplexmode
half4w 4 線式半二重通信
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
24
cp4201 ドライバ
パラメータ 内容
cp4201_ttyname TTY デバイス名を設定します。
デフォルトは ttyJ です。
cp4201_calloutname コールアウトデバイス名を設定します。
デフォルトは cuj です。
cp4201_ttymajor TTY デバイスのメジャー番号を設定します。
デフォルトは 48 です。
cp4201_calloutmajor コールアウトデバイスのメジャー番号を設定します。
デフォルトは 49 です。
cp4201_minorstart シリアルポートのマイナー番号が割り振られる先頭値です。
デフォルトは 0です。
ドライバ組み込み直後の RS-485 の通信方式を設定します。
デフォルトは全二重です。
設定値は以下のとおりです。
full 全二重通信
half2w 2 線式半二重通信
cp4201_duplexmode
half4w 4 線式半二重通信
オプション指定例
#modprobe cp4141 cp4141_ttyname=ttyH cp4141_ttymajor=45 cp4141_minorstart=0
TTY デバイス名を ttyH、TTY デバイスのメジャー番号を 45、マイナー番号の先頭値を 0 に設定し
ます。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
25
3.5 /proc ファイルシステム /proc ファイルシステムを参照することで、シリアルポートの認識状況、動作状況を確認することが
できます。
※IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6) 、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、
TIO-C2934x(L6)、TIO-C3615x(L6)、TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、
TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7) 、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)は対応しておりません。
ご注意下さい。
参照できる内容は以下のとおりです。
項目 内容
デバイスノード デバイスノード名を表示します。
製品型式 製品型式を表示します。
括弧内は RSW1 設定値(CardBus シリーズの場合カード ID 番号)を表
します。
ボーレート 現在設定されているボーレートを表示します。
現在設定されている通信方式を表示します。
RS-485 のみ表示されます。
FD 全二重通信に設定されています。
HD2W 2 線式半二重通信に設定されています。
通信方式
HD4W 4 線式半二重通信に設定されています。
送受信通算バイト数 現在まで送受信したデータの通算バイト数です。
tx が送信バイト数、rx が受信バイト数です。
現在 ON になっている制御信号を表示します。
RS-232C RS 信号が ON になっています。 RTS
RS-485 C 信号が ON になっています。
ER ER 信号が ON になっています。
RS-232C CS 信号が ON になっています。 CTS
RS-485 I 信号が ON になっています。
DR DR 信号が ON になっています。
CI CI 信号が ON になっています。
制御信号状態
CD CD 信号が ON になっています。
表示例 #cat /proc/tty/driver/cp4141 ttyS64: PCI-4141(bid=0h)CH1 [9600bps] tx:812 rx:4312 RTS|CTS ttyS65: PCI-4141(bid=0h)CH2 [9600bps] tx:4312 rx:812 RTS|CTS ttyS66: PCI-4142(bid=0h)CH1 [9600bps HD2W] tx:0 rx:0 ttyS67: PCI-4142(bid=0h)CH2 [9600bps HD2W] tx:0 rx:0
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
26
第4章 リファレンス
4.1 関数一覧(調歩同期通信部)
No 関数名 機能
1 open ポートのオープンを行います。
2 close ポートのクローズを行います。
3 tcsetattr ポートの通信設定を行います。
4 tcgetattr ポートの通信設定を取得します。
5 write データを送信します。
6 read 受信データを取得します。
7 tcflush 送受信バッファをクリアします。
8 ioctl 通信ポートに対する各種制御を行います。
一覧に掲示した関数が Linux 標準シリアル関数(termios)です。
termios の詳細内容につきましては、専門書籍、Linux 関連の Web site を御覧下さい。
以下に Linux のシリアル通信に関する情報源を紹介します。
全般
http://linuxjf.sourceforge.jp/JFdocs/Serial-HOWTO.html
プログラミング
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/termios.3.html
http://linuxjf.sourceforge.jp/JFdocs/Serial-Programming-HOWTO.html
SETSERIAL
http://linuxjm.sourceforge.jp/html/setserial/man8/setserial.8.html
その他
http://linuxjf.sourceforge.jp/
http://linuxjm.sourceforge.jp/
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
27
4.2 IOCTL リクエスト一覧(調歩同期通信部)
制御信号の操作、ブレーク信号送信などは ioctl システムコールで行います。
ボーレート、全二重/半二重の設定などの、当社通信製品固有の処理は拡張 ioctl で制御を行います。
拡張 ioctl については、次項の『4.3 拡張 ioctl 仕様』をご参照ください。
No リクエスト 機能
1 TCSBRK ブレーク信号の送信を行います。
2 TIOCMGET 制御信号の状態取得
RS-232C RS,ER 信号を ON にします。
RS-485 全二重 C 信号を ON にします。
3 TIOCMBIS
RS-485 半二重 送信ラインを有効にします。
RS-232C RS,ER 信号を OFF にします。
RS-485 全二重 C 信号を OFF にします。
4 TIOCMBIC
RS-485 半二重 受信ラインを有効にします。
5 TIOCMSET RS,ER の出力状態を個別に変換します。
6 TIOCGSERIAL ポート情報の取得を行います。※1 ※2
7 TIOCSSERIAL ポート情報の設定を行います。※2
8 TIOCSERGETLSR 通信コントローラの送信バッファの状態を取得します。※2
9 CP4141_SET_BAUDRATE ボーレートの設定を行います。
10 CP4141_GET_BAUDRATE ボーレートの取得を行います。
11 CP4141_SET_DUPLEX_MODE 全二重/半二重の設定を行います。
12 CP4141_GET_DUPLEX_MODE 全二重/半二重の取得を行います。
13 CP4141_SET_FIFO_TRIGGER FIFO トリガレベルを設定します。
14 CP4141_GET_FIFO_TRIGGER FIFO トリガレベルを取得します。
15 CP4141_SET_HSFUNCTION 拡張通信設定を行います。
16 CP4141_GET_HSFUNCTION 拡張通信設定の取得を行います。
17 CP4141_GET_PORTINFO 通信ポートのハードウェア情報を取得します。
※1 64Bit 版の場合 serial_struct 構造体の iomap_base メンバにてアドレス取得ができます。
port メンバには-1 がはいります。
※2 下記の製品型式には対応していません。ご注意下さい。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、 IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、
TIO-C2934x(L6)、TIO-C3615x(L6)、TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、
TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、 IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
28
4.3 拡張 ioctl 仕様(調歩同期通信部)
1. CP4141_SET_BAUDRATE ボーレートを設定します。
int ioctl(
int fd,
CP4141_SET_BAUDRATE,
unsigned long* BaudRate
);
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
BaudRate ボーレートを格納した変数へのポインタを指定します。
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT BaudRate がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
EINVAL BaudRate の値が不正である。
備考
1. Linux 標準シリアル関数は以下の 18 種類のボーレートしか選択できません。
本 API を呼び出すことによりこれ以外のボーレートにも設定できます。
50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,19200,38400,57600,
115200,230400
2. シリアル通信製品には複数の基準クロックが搭載されていますが、本 API はボーレートから
自動的に 適な基準クロックを算出し設定します。アプリケーションで基準クロックを意識
する必要はありません。
下記の製品型式には対応していませんのでご注意下さい。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、TIO-C2934x(L6)、TIO-C3615x(L6)、
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
使用例
unsigned long BaudRate;
BaudRate = 230400;
ioctl(fd, CP4141_SET_BAUDRATE, &BaudRate);
ボーレートを 230400bps に設定します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
29
2. CP4141_GET_BAUDRATE ボーレートを取得します。
int ioctl(
int fd,
CP4141_GET_BAUDRATE,
unsigned long* BaudRate
);
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
BaudRate ボーレートを格納する変数へのポインタを指定します。
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT BaudRate がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
備考
デフォルトは 9600bps に設定されています。
下記の製品型式には対応していませんのでご注意下さい。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、TIO-C2934x(L6)、TIO-C3615x(L6)、
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
使用例
unsigned long BaudRate;
ioctl(fd, CP4141_GET_BAUDRATE, &BaudRate);
ボーレートの取得を行います。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
30
3. CP4141_SET_DUPLEX_MODE 通信方式(全二重/半二重)を設定します。
int ioctl(
int fd,
CP4141_SET_DUPLEX_MODE,
unsigned long* DuplexMode );
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
DuplexMode 全二重/半二重設定の情報を格納した変数のポインタを指定します。
識別子 モード
CP4141_FULL_DUPLEX 全二重通信
CP4141_HALF_DUPLEX_2W 2 線式半二重通信
CP4141_HALF_DUPLEX_4W 4 線式半二重通信
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT DuplexMode がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
EINVAL DuplexMode の値が不正である。もしくは関数が製品に対応していない。
備考
この関数は、下記の製品型式に対応していませんのでご注意下さい。
PCI-4141, PCI-4141P, PCI-4141PE ,PCI-4144, PCI-4146, PCI-4148C,
PCI-4150(シリアルポート部), PCI-4155,
CTP-4141, CTP-4141P, CTP-4142, CTP-4142P, CTP-4144, CTP-4146, CTP-4148,
CPZ-4141, CPZ-4141P, CPZ-4142, CPZ-4142P, CPZ-4144, CPZ-4146, CPZ-4148
IUC-x4668(L6)、IUC-x4676(L6)、IUC-x4855(L6)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4855(L7)
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4855x(L6)、
下記製品は RS232C 側のみ対応していません。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4326(L6)、IUC-x2980(L6)、
IUC-x3615(L7)、IUC-x4326(L7)、IUC-x2980(L7)
TIO-C2934(L6)、TIO-C3615x(L6)、TIO-C4326x(L6)、TIO-C2980x(L6)、IUC-x2934(L7)、
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
31
使用例
unsigned long DuplexMode;
DuplexMode = CP4141_HALF_DUPLEX_2W;
ioctl(fd, CP4141_SET_DUPLEX_MODE, &DuplexMode);
2 線式半二重に設定します。
備考
<2 線式半二重通信>
下記のような接続で、Tラインのみ接続して半二重通信を行います。
<4 線式半二重通信>
下記のような接続で、2線式と違い Tラインと Rラインを分けて半二重通信を行います。
T :送信ライン
SG :信号グランド T:送信ライン
SG:信号グランド
T:送信ライン
SG:信号グランド
R:受信ライン
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
32
4. CP4141_GET_DUPLEX_MODE 通信方式(全二重/半二重)を取得します。
int ioctl(
int fd,
CP4141_GET_DUPLEX_MODE,
unsigned long* DuplexMode );
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
DuplexMode 全二重/半二重設定の情報を格納する変数のポインタを指定します。
識別子 モード
CP4141_FULL_DUPLEX 全二重通信
CP4141_HALF_DUPLEX_2W 2 線式半二重通信
CP4141_HALF_DUPLEX_4W 4 線式半二重通信
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT DuplexMode がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
備考
この関数は、下記の製品には対応していませんのでご注意下さい。
IUC-x4668(L6)、IUC-x4676(L6)、IUC-x4855(L6)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4855(L7)
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4855x(L6)、
下記製品は RS232C 側のみ対応していません。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4326(L6)、IUC-x2980(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4326(L7)、IUC-x2980(L7)
TIO-C2934(L6)、TIO-C3615x(L6)、TIO-C4326x(L6)、TIO-C2980x(L6)、
使用例
unsigned long DuplexMode;
ioctl(fd, CP4141_GET_DUPLEX_MODE, &DuplexMode);
全二重/半二重の取得を行います。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
33
5. CP4141_SET_FIFO_TRIGGER FIFO トリガレベルを設定します。
Int ioctl(
int fd,
CP4141_SET_FIFO_TRIGGER,
struct fifo_trigger_level * FifoTrigger
);
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
FifoTrigger FIFO トリガレベルが格納された構造体へのポインタを指定します。
詳細は「fifo_trigger_level構造体」を参照ください。
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT FifoTrigger がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
EINVAL FifoTrigger の値が不正である。
使用例
struct fifo_trigger_level FifoTrigger;
FifoTrigger.fifotx = UART_FCR654_T_TRIGGER_8;
FifoTrigger.fiforx = UART_FCR_TRIGGER_4;
ioctl(fd, CP4141_SET_FIFO_TRIGGER, &FifoTrigger);
送信 FIFO トリガレベルを 8、受信 FIFO トリガレベルを 16 に設定します。(PCI-4141 の場合)
備考
本 ioctl リクエストは GPG-4141 ver1.0x の TIOCSFIFOTRG リクエストと同仕様です。
下記の型式は、拡張の受信トリガレベルとして 1~7までの設定も可能です。
設定方法は下記のように「UART_FCR4661_R_TRIGGER_EN+設定値」を FifoTrigger.fiforx に設定
します。
拡張受信トリガ設定可能型式
PCI-4201xxQ, PCI-4202xxQ, PCI-4661xx, LPC-400111, LPC-4661xx,
CPZ-4201xxQ, CPZ-4202xxQ, CPZ-4661xx,
CTP-4201xxQ, CTP-4202xxQ, CTP-4661xx,
PEX-400111, PEX-4661xx, PEX-H4661xx
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
34
下記の製品型式には対応していませんのでご注意下さい。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、TIO-C2934x(L6)、TIO-C3615x(L6)、
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
FifoTrigger.fiforx = UART_FCR4661_R_TRIGGER_EN + 5;
受信トリガレベルを 5に設定します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
35
6. CP4141_GET_FIFO_TRIGGER FIFO トリガレベルを取得します。
int ioctl(
int fd,
CP4141_GET_FIFO_TRIGGER,
struct fifo_trigger_level * FifoTrigger );
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
FifoTrigger FIFO トリガレベルを格納する構造体へのポインタを指定します。
詳細は「fifo_trigger_level構造体」を参照ください。
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT FifoTrigger がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
使用例
struct fifo_trigger_level FifoTrigger;
ioctl(fd, CP4141_GET_FIFO_TRIGGER, &FifoTrigger);
FIFO トリガレベルを取得します。
備考
本 ioctl リクエストは GPG-4141 ver1.0x の TIOCGFIFOTRG リクエストと同仕様です。
下記の製品型式には対応していませんのでご注意下さい。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、TIO-C2934x(L6)、TIO-C3615x(L6)、
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
36
7. CP4141_SET_HS_FUNCTION 拡張通信パラメータを設定します。
int ioctl(
int fd,
CP4141_SET_HS_FUNCTION,
CP4141_HSFUNC * HsFunc
);
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
HsFunc 拡張通信パラメータが格納された構造体へのポインタを指定します。
詳細は「CP4141_HSFUNC構造体」を参照ください。
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT HsFunc がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
EINVAL 通信設定に誤りがあります。
備考
この関数は、下記の製品型式に対応していませんのでご注意下さい。
PCI-4141, PCI-4141P, PCI-4141PE, PCI-4142, PCI-4142P, PCI-4142PE
PCI-4144, PCI-4145, PCI-4146, PCI-4147, PCI-4148C, PCI-4149C
PCI-4150(シリアルポート部), PCI-4155,
CTP-4141, CTP-4141P, CTP-4142, CTP-4142P, CTP-4144, CTP-4145
CTP-4146, CTP-4147, CTP-4148, CTP-4149, CPZ-4141, CPZ-4141P, CPZ-4142, CPZ-4142P,
CPZ-4144, CPZ-4145, CPZ-4146, CPZ-4147, CPZ-4148, CPZ-4149
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、TIO-C2934x(L6)、TIO-C3615x(L6)、
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、
IUC-x4855(L7)、IUC-x2980(L7)
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
37
使用例
CP4141_HSFUNC HsFunc;
ioctl(fd, CP4141_GET_HS_FUNCTION, &HsFunc);
HsFunc.TxCSelect = CP4141_TXC_INTERNAL;
HsFunc.RxCSelect = CP4141_RXC_EXTERNAL;
HsFunc.HoldTime = 10000;
HsFunc.SetupTime = 15000;
ioctl(fd, CP4141_SET_HS_FUNCTION, &HsFunc);
拡張通信パラメータを以下のように設定します。 送信クロック
受信クロック
ホールド時間
セットアップ時間
内部
外部
10ms
15ms
備考
各製品型式でサポートしている拡張通信パラメータは下記のとおりです。 製品型式 送信クロッ
ク選択
受信クロッ
ク選択
ホールド
時間
セットアッ
プ時間
モニタ
モード
T・C
信号設定
PCI-4161 ○ ○ ○ ○ × ×
PCI-46610x,PCI-4202xxQ,
CPZ-46610x,CPZ-4202xxQ,
CTP-4202xxQ,CTP-46610x,
LPC-46610x,
PEX-46610x, PEX-H46610x
× × ○ ○ × ○
PCI-4661x0,PCI-4201xxQ,
CPZ-4661x0,CPZ-4201xxQ,
CTP-4201xxQ,CTP-4661x0,
PEX-400111,PEX-4661x0,
LPC-400111,LPC-4661x0
PEX-H4661x0
× × ○ ○ × ×
上記以外 × × × × × ×
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
38
8. CP4141_GET_HS_FUNCTION 拡張通信パラメータを取得します。
int ioctl(
int fd, /* ファイルハンドル */
CP4141_GET_HS_FUNCTION,
CP4141_HSFUNC * HsFunc /* 拡張通信設定構造体 */ );
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
HsFunc 拡張通信パラメータを格納する構造体へのポインタを指定します。
詳細は「CP4141_HSFUNC構造体」を参照ください。
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT HsFunc がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
備考
下記の製品型式には対応していませんのでご注意下さい。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、TIO-C2934x(L6)、TIO-C3615x(L6)、
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
使用例
CP4141_HSFUNC HsFunc;
ioctl(fd, CP4141_GET_HS_FUNCTION, &HsFunc);
拡張通信パラメータを取得します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
39
9. CP4141_GET_PORTINFO ポートのハードウェア情報を取得します。
int ioctl(
int fd,
CP4141_GET_PORTINFO,
CP4141_PORTINFO * PortInfo
);
パラメータ
fd open システムコールで取得したシリアルポートのファイルディスクリプタを指定します。
PortInfo 通信ポートのハードウェア情報を格納する構造体へのポインタを指定します。
戻り値
関数が成功すると、0が返ります。
関数が失敗すると、-1 が返ります。エラー情報は errno に格納されます。
識別子 エラー内容
EBADF fd が有効なディスクリプタではない。
EFAULT PortInfo がアクセス不可能なメモリを参照している。
ENOTTY fd がキャラクタ・スペシャル・デバイスを参照していない。
備考
下記の製品型式には対応していませんのでご注意下さい。
IUC-C2934(L)、IUC-P2934(L)、IUC-x2934(L6)、IUC-x3615(L6)、IUC-x4668(L6)、IUC-x4676(L6)、
IUC-x4326(L6)、IUC-x4855(L6)、IUC-x2980(L6)、TIO-C2934x(L6)、TIO-C3615x(L6)、
TIO-C4668x(L6)、TIO-C4676x(L6)、TIO-C4326x(L6)、TIO-C4855x(L6)、TIO-C2980x(L6)、
IUC-x2934(L7)、IUC-x3615(L7)、IUC-x4668(L7)、IUC-x4676(L7)、IUC-x4326(L7)、IUC-x4855(L7)、
IUC-x2980(L7)
参照
3.2 制御手順『1. 初期化』
使用例
int ret;
CP4141_PORTINFO PortInfo;
ret = ioctl(fd, CP4141_GET_PORTINFO, &PortInfo);
ハードウェア情報の取得を行います。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
40
4.4 構造体(調歩同期通信部)
1. fifo_trigger_level 構造体
FIFO トリガレベルを設定する構造体です。
struct fifo_trigger_level {
unsigned int fifotx;
unsigned int fiforx;
};
メンバ 説明
fifotx 送信 FIFO トリガレベルを設定します。
送信 FIFO 内のデータサイズがトリガレベルになったとき送信割り込みが発生します。
※ PCI-4201xxQ, PCI-4202xxQ, PCI-4161,PCI-4661xx,
CTP-4661xx, CPZ-4661xx, CTP-4201xxQ, CTP-4202xxQ,CPZ-4201xxQ, CPZ-4202xxQ,
LPC-400111, LPC-4661xx,
PEX-400111, PEX-4661xx, PEX-H4661xx
で本パラメータは無効です。
識別子 FIFO トリガレベル
UART_FCR654_T_TRIGGER_8 8
UART_FCR654_T_TRIGGER_16 16
UART_FCR654_T_TRIGGER_32 32
UART_FCR654_T_TRIGGER_56 56
※デフォルトは UART_FCR654_T_TRIGGER_8 が設定されています。
fiforx
受信 FIFO トリガレベルを設定します。
FIFO バッファに蓄積されたデータを抜き取る閾値です。
FIFO トリガレベル 識別子
PCI-4201xxQ, PCI-4202xxQ, CPZ-4201xxQ,
CPZ-4202xxQ, CTP-4201xxQ,CTP-4202xxQ,
PCI-4661xx, LPC-400111, LPC-4661xx,
PEX-400111, PEX-4661xx, PEX-H4661xx
CTP-4661xx,CPZ-4661xx
PCI-4161 PCI-415
5
左 に 表
記 さ れ
て い な
い型式
UART_FCR4661_R_TRIGGER_EN 1~7 ※
UART_FCR_TRIGGER_1 8 8 1 8
UART_FCR_TRIGGER_4 16 16 4 16
UART_FCR_TRIGGER_8 128 128 8 56
UART_FCR_TRIFFER_14 256 256 14 60
※デフォルトは UART_FCR_TRIGGER_1 が設定されています。
PCI-4661xx, PCI-H4661xx, CTP-4661xx,CPZ-4661xx は UART_FCR4661_R_TRIGGER_EN を
使用すると、1~7 の受信 FIFO トリガレベルを設定できます。使用方法は
UART_FCR4661_R_TRIGGER_EN に 1~7 の設定したい値を足した値を fiforx に入力して
ください。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
41
2. CP4141_HSFUNC 構造体
拡張通信設定を格納する構造体です。
typedef struct {
unsigned int TxCSelect;
unsigned int RxCSelect;
unsigned int HoldTime;
unsigned int SetupTime;
unsigned int Mode;
unsigend int SignalMode;
} CP4141_HSFUNC, *PCP4141_HSFUNC;
メンバ 説明
TxCSelect 送信に関して内部クロック/外部クロックの選択を行います。
識別子 内容
CP4141_TXC_INTERNAL 送信に内部クロックを使用 ※デフォルト
CP4141_TXC_EXTERNAL 送信に外部クロックを使用
RxCSelect 受信に関して内部クロック/外部クロックの選択を行います。
識別子 内容
CP4141_RXC_INTERNAL 受信に内部クロックを使用 ※デフォルト
CP4141_RXC_EXTERNAL 受信に外部クロックを使用
HoldTime ホールドタイムは型式によって意味合いが違いますので注意してください。
PCI-4161・・・半二重制御を行う際に、データを出し終えてから送信要求信号(RS)を無効
にするまでの時間(ホールドタイム(下記、図の H))を設定します。単位はμs で、設定可
能範囲は 1~1500000(1.5s)です。
その他型式・・・半二重制御を行う際に、送信データをインタフェースモジュールから
出し終えてから送信有効信号(TXE)または送信要求信号(RS)が無効になるまでの時間(ホ
ールドタイム(下記、図の H))を設定します。単位はμs で、設定可能範囲は 1~150000
(150ms)です。
RS
CS
S H
送信データ
RS
S H
送信データ
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
42
設定範囲は下記のとおりです。
型式 RATE× CLK [μs]
PCI-4661xx, PCI-4201xxQ, PCI-4202xxQ,
CTP-4661xx, CTP-4201xxQ, CTP-4202xxQ,
CPZ-4661xx, CPZ-4201xxQ, CPZ-4202xxQ
LPC-400111, LPC-4661xx
PEX-400111,PEX-4661xx, PEX-H4661xx,
RATE = 0 ~ 15
CLK = 1, 10, 100, 1000, 10000
PCI-4161 RATE = 0 ~ 15
CLK = 1, 10, 100, 1000, 10000, 100000
上記以外の型式 0~99999(μs)
※デフォルトは 0に設定されています
SetupTime セットアップタイムは型式によって意味合いが違いますので注意してください。
PCI-4161 の場合・・・半二重制御を行う際に、送信可信号(CS)が有効になってからデー
タを出し始めるまでの時間(セットアップタイム(下記、図の S))を設定します。単位はμ
sで、設定可能範囲は 1~1500000(1.5s)です。
その他型式の場合・・・半二重制御を行う際に、送信有効信号(TXE)または送信要求信号
(RS)が有効になってからインタフェースモジュールが送信データを出し始めるまでの
時間(セットアップタイム(下記、図の S))を設定します。単位はμs で、設定可能範囲
は 1~150000(150ms)です。
設定範囲は下記のとおりです。
型式 RATE× CLK [μs]
PCI-4661xx, PCI-4201xxQ,PCI-4202xxQ,
CTP-4661xx, CTP-4201xxQ,CTP-4202xxQ,
CPZ-4661xx, CPZ-4201xxQ,
CPZ-4202xxQ
PEX-400111, PEX-4661xx, PEX-H4661xx,
LPC-400111, LPC-4661xx,
RATE = 0 ~ 15
CLK = 1, 10, 100, 1000, 10000
PCI-4161 RATE = 0 ~ 15
CLK = 1, 10, 100, 1000, 10000, 100000
上記以外の型式 0~99999(μs)
※デフォルトは 0に設定されています
RS
データ
S H
RS
CS
データ
S H
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
43
Mode ポートの各種設定を行います。
1. モニタモード設定
識別子 内容
CP4141_MONITOR_DISABLE モニタモードを無効にします。 ※デフォルト
CP4141_MONITOR_RSCS モニタモード(RS/CS 接続)を有効にします。
CP4141_MONITOR_RSCD モニタモード(RS/CD 接続)を有効にします。
SignalMode RS-485 の T・C 信号設定を行います。
下記の C信号と T信号を 1つづつ選択し、足した値を設定してください。
信号 識別子 内容
CP4141_C_INVALID C 信号を常に無効にします。 ※デフォルト
CP4141_C_TXE TXE が’1’の時 C信号有効。TXE が’0’の時 C信号無効。
CP4141_C_NOT_TXE TXE が’1’の時 C信号無効。TXE が’0’の時 C信号有効。
C 信号
CP4141_C_VALID C 信号を常に有効にします。
CP4141_T_TXE TXE が’1’の時 T信号有効。TXE が’0’の時 T信号無効。
※デフォルト
T 信号
CP4141_T_VALID T 信号を常に有効にします。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
44
3. CP4141_PORTINFO 構造体
ポートのハードウェア情報が格納されている構造体です。
●32bit 版
typedef struct {
int StructVersion;
int StructLength;
int MinorNumber;
int VendorID;
int DeviceID;
int SubsystemID;
int RevisionID;
int BoardID;
int ChannelNumber;
int BaseAddress;
int IrqNumber;
} CP4141_PORTINFO, *PCP4141_PORTINFO
●64bit 版
typedef struct {
int StructVersion;
int StructLength;
int MinorNumber;
int VendorID;
int DeviceID;
int SubsystemID;
int RevisionID;
int BoardID;
int ChannelNumber;
unsigned long BaseAddress;
int IrqNumber;
} CP4141_PORTINFO, *PCP4141_PORTINFO
メンバ 説明
StructVersion 本構造体のバージョン情報です。
StructLength 本構造体のサイズです。
MinorNumber デバイスノードのマイナー番号です。
VendorID インタフェースモジュールのベンダ ID です。
DeviceID インタフェースモジュールのデバイス ID です。
SubsystemID インタフェースモジュールのサブシステム ID です。
RevisionID インタフェースモジュールのリビジョン ID です。
BoardID インタフェースモジュールの RSW1 設定値です。
ChannelNumber インタフェースモジュールのチャンネル番号です。
値は 1始まりです(チャンネル 1の場合は 1、チャンネル 2の場合は 2となりま
す)
BaseAddress 通信コントローラの I/O(またはメモリ)ポートアドレスです。
IrqNumber インタフェースモジュールの割り込み番号です。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
45
各インタフェースモジュールのデバイス ID、サブシステム ID は下記のとおりです。
製品型式 デバイス ID サブシステム ID
PCI-4141
PCI-4141P
4141(102Dh) 0001h
PCI-4141PE 4141(102Dh) 0011h
PCI-4142
PCI-4142P
4142(102Eh) 0001h
PCI-4142PE 4142(102Eh) 0011h
PCI-4144 4144(1030h) 0001h
PCI-4145 4145(1031h) 0001h
PCI-4146 4146(1032h) 0001h
PCI-4147 4147(1033h) 0001h
PCI-4148C(CH1~CH4) 4148(1034h) 0001h
PCI-4148C(CH5~CH8) 4148(1034h) 0002h
PCI-4149C(CH1~CH4) 4149(1035h) 0001h
PCI-4149C(CH5~CH8) 4149(1035h) 0002h
PCI-4150 4150(1036h) 0001h
PCI-4155 4155(103Bh) 0001h
PCI-4161 4161(1041h) 0001h
PCI-4646 4646(1226h) 0001h
PCI-466101 4661(1235h) 2081h
PCI-466102/P 4661(1235h) 2082h
PCI-466110 4661(1235h) 208Ah
PCI-466120/P 4661(1235h) 2094h
PCI-466130 4661(1235h) 209Eh
PCI-466104/A/P/PA 4661(1235h) 2084h
PCI-466140/A/P/PA 4661(1235h) 20A8h
PCI-466108(CH1~CH4) 4661(1235h) 2088h
PCI-466108(CH5~CH8) 4661(1235h) 2108h
PCI-466180(CH1~CH4) 4661(1235h) 20D0h
PCI-466180(CH5~CH8) 4661(1235h) 2150h
PCI-420108Q 4201(1069h) 2088h
PCI-420116Q 4201(1069h) 2090h
PCI-420208Q 4202(106Ah) 2088h
PCI-420216Q 4202(106Ah) 2090h
LPC-400111 4001(FA1h) 208Bh
LPC-466102 4661(1235h) 2082h
LPC-466104 4661(1235h) 2084h
LPC-466120 4661(1235h) 2094h
LPC-466140 4661(1235h) 20A8h
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
46
製品型式 デバイス ID サブシステム ID
CTP-4141
CPZ-4141
CTP-4141P
CPZ-4141P
4141(102Dh) 0101h
CTP-4142
CTP-4142P
4142(102Eh) 0101h
CTP-4144
CPZ-4144
4144(1030h) 0101h
CTP-4145
CPZ-4145
4145(1031h) 0101h
CTP-4146
CPZ-4146
4146(1032h) 0101h
CTP-4147
CPZ-4147
4147(1033h) 0101h
CTP-4148(CH1~CH4)
CPZ-4148(CH1~CH4)
4148(1034h) 0101h
CTP-4148(CH5~CH8)
CPZ-4148(CH5~CH8)
4148(1034h) 0102h
CTP-4149(CH1~CH4)
CPZ-4149(CH1~CH4)
4149(1035h) 0101h
CTP-4149(CH5~CH8)
CPZ-4149(CH5~CH8)
4149(1035h) 0102h
CTP-466102
CPZ-466102/P
4661(1235h) 2482h
CTP-466120
CPZ-466120/P
4661(1235h) 2494h
CPZ-466104/A/P/PA 4661(1235h) 2484h
CPZ-466140/A/P/PA 4661(1235h) 24A8h
CPZ-466108(CH1~CH4) 4661(1235h) 2488h
CPZ-466108(CH5~CH8) 4661(1235h) 2508h
CPZ-466180(CH1~CH4) 4661(1235h) 24D0h
CPZ-466180(CH5~CH8) 4661(1235h) 2550h
CPZ-420108Q
CTP-420108Q
4201(1069h) 2488h
CPZ-420116Q
CTP-420116Q
4201(1069h) 2490h
CPZ-420208Q
CTP-420208Q
4202(106Ah) 2488h
CPZ-420216Q
CTP-420216Q
4202(106Ah) 2490h
製品型式 デバイス ID サブシステム ID
PEX-400111 4001(FA1h) 2C8Bh
PEX-466102 4661(1235h) 2C82h
PEX-466104 4661(1235h) 2C84h
PEX-466120 4661(1235h) 2C94h
PEX-466140 4661(1235h) 2CA8h
PEX-H466102/P 4661(1235h) 2082h
PEX-H466120/P 4661(1235h) 2094h
PEX-H466104PA 4661(1235h) 2084h
PEX-H466140PA 4661(1235h) 20A8h
PEX-H466108(CH1~CH4) 4661(1235h) 2088h
PEX-H466108(CH5~CH8) 4661(1235h) 2108h
PEX-H466180(CH1~CH4) 4661(1235h) 20D0h
PEX-H466180(CH5~CH8) 4661(1235h) 2150h
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
47
4.5 関数一覧(汎用 DIO 部) ※ これらの関数は、下記の製品型式のみ対応していますのでご注意下さい。
PCI/CTP/CPZ-420108Q, PCI/CTP/CPZ-420116Q, PCI/CTP/CPZ-420208Q, PCI/CTP/CPZ-420216Q
No 関数名 機能
1 SdioOpen 通信モジュールのデジタル入出力デバイスのオープンを行い、
以後のアクセスを行えるようにします。
2 SdioClose 通信モジュールのデジタル入出力デバイスのクローズを行い、
アクセスのために使用されていた各種リソースの解放を行い、
以後のアクセスを禁止します。
3 SdioInputPoint 任意の点数の入力接点の状態を読み込みます。
4 SdioOutputPoint 任意の点数の出力接点の出力を制御します。
5 SdioInputByte 指定した 8点の入力接点の状態を読み込みます。
(BYTE アクセス)
6 SdioInputWord 指定した 16 点の入力接点の状態を読み込みます。
(WORD アクセス)
7 SdioInputDword 指定した 32 点の入力接点の状態を読み込みます。
(DWORD アクセス)
8 SdioOutputByte 指定した 8点の出力接点の出力を制御します。
(BYTE アクセス)
9 SdioOutputWord 指定した 16 点の出力接点の出力を制御します。
(WORD アクセス)
10 SdioOutputDword 指定した 32 点の出力接点の出力を制御します。
(DWORD アクセス)
11 SdioSetLatchLogic 入力信号をラッチする STB 信号の論理を指定します。
12 SdioGetLatchLogic 入力信号をラッチする STB 信号の論理を取得します。
13 SdioInputLatchPoint 任意の点数のラッチされた入力接点の状態を読み込みます。
14 SdioInputLatchByte ラッチされた 32 点の入力接点の状態を読み込みます。
(BYTE アクセス)
15 SdioInputLatchWord ラッチされた 32 点の入力接点の状態を読み込みます。
(WORD アクセス)
16 SdioInputLatchDword ラッチされた 32 点の入力接点の状態を読み込みます。
(DWORD アクセス)
17 SdioSetEvent STB 信号の変化による割り込みが発生したときに実行するイベ
ントを指定します。
18 SdioSetEventLogic STB 信号の割り込み発生論理を設定します。
19 SdioGetEventLogic STB 信号の割り込み発生論理の設定を取得します。
20 SdioGetTmoduleStatus 通信モジュールの接続状態を取得します。
21 SdioSetTmodulePower 通信モジュールの電源を制御します。
22 CallBackProc STB 信号の割り込み発生によってコールされるコールバック関
数のプレースホルダです。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
48
4.6 関数個別説明(汎用 DIO 部)
1. SdioOpen 通信モジュールのデジタル入出力デバイスのオープンを行い、以後のデバイスへのアクセスを行える
ようにします。
long SdioOpen(
int nDevice // デバイス番号
);
パラメータ
nDevice オープンするデバイス番号を指定します。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOpen( nDevice );
if(lRet != IFSDIO_ERROR_SUCCESS) {
/* オープンに失敗 */
printf("Fail to open the device\n");
}
通信モジュールのデジタル入出力デバイスをオープンします。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
49
2. SdioClose 通信モジュールのデジタル入出力デバイスのクローズを行い、通信モジュールのデジタル入出力デバ
イスへアクセスのために使用されていた各種リソースの解放を行い、以後の通信モジュールのデジタ
ル入出力デバイスへのアクセスを禁止します。
long SdioClose(
int nDevice // デバイス番号
);
パラメータ
nDevice デバイス番号を指定します。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioClose( nDevice );
通信モジュールのデジタル入出力デバイスのクローズ処理を行います。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
50
3. SdioInputPoint 任意の点数の入力接点の状態を読み込みます。指定した開始接点番号から 1接点ずつ変数に格納され
ます。
long SdioInputPoint(
int nDevice, // デバイス番号
unsinged char *pbBuffer, // 接点状態を返す変数へのポインタ
unsigned long ulStartNum, // 入力開始接点番号
unsigned long ulInputNum // 入力接点数
);
パラメータ
nDevice デバイス番号を指定します。
pbBuffer デバイスから読み取ったデータを受け取るバッファを指すポインタです。
ulStartNum
入力開始接点番号 1~24 を指定してください。
入力接点の指定と、信号は下記のように対応しています。
接点番号 1 2 3 … 31 32
入力信号 IN1 IN2 IN3 … IN31 IN32
1: Low レベル 0:High レベル
ulInputNum
入力接点数を指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bBuffer[8];
lRet = SdioInputPoint( nDevice, &bBuffer[0], 16, 8 );
IN16~23 の状態を入力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
51
4. SdioOutputPoint 任意の点数の出力接点の出力を制御します。指定した開始接点番号から 1接点づつ変数に格納された
データで接点を制御します。
long SdioOutputPoint(
int nDevice, // デバイス番号
unsinged char *pbBuffer, // 出力状態を収めている変数へのポインタ
unsigned long ulStartNum, // 出力開始接点番号
unsigned long ulOutputNum // 出力接点数
);
パラメータ
nDevice デバイス番号を指定します。
pbBuffer デバイスから出力させるデータを収めている変数へのポインタです。
ulStartNum 出力開始接点番号 1~24 を指定してください。
出力接点の指定と、信号は下記のように対応しています。
接点番号 1 2 3 … 31 32
出力信号 OUT1 OUT2 OUT3 … OUT31 OUT32
1: Low レベル 0:High レベル
ulOutputNum 出力接点数を指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bBuffer[8] = { 1, 0, 0, 1, 0, 1, 1, 0};
lRet = SdioOutputPoint( nDevice, &bBuffer[0], 16, 8 );
OUT16~23 に値を出力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
52
5. SdioInputByte 接点 8点分のデータを読み込み、1バイト(8ビット)の変数に格納します。
long SdioInputByte(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned char *pbValue // 接点状態を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
ulInputNo 読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。
IFSDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。
IFSDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。
pbValue 読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。 ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
IFSDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1
IFSDIO_IN9_16 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9
IFSDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bValue;
lRet = SdioInputByte( nDevice, IFSDIO_IN1_8, &bValue );
IN1~8 の状態を bValue に入力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
53
6. SdioInputWord 接点 16 点分のデータを読み込み、1ワード(16 ビット)の変数に格納します。
long SdioInputWord(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned short *pwValue // 接点状態を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
ulInputNo 読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。
IFSDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。
24 点入力の端子台では、IN25~IN32 のデータは取得できません。
またここのデータは全て 0になります。
pwValue 読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。 ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0
IFSDIO_IN1_16 IN16 IN15 IN14 … IN3 IN2 IN1
IFSDIO_IN17_32 IN32 IN31 IN30 … IN19 IN18 IN17
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned short wValue;
lRet = SdioInputWord( nDevice, IFSDIO_IN1_16, &wValue );
IN1~16 の状態を wValue に入力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
54
7. SdioInputDword 接点 32 点分のデータを読み込み、1ダブルワード(32 ビット)の変数に格納します。
long SdioInputDword(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned long *pdwValue // 接点状態を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
ulInputNo 読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。
24 点入力の端子台では IN25~IN32 のデータは取得できません。
またここのデータは全て 0になります。
pdwValue 読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。 ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0
IFSDIO_IN1_32 IN32 IN31 IN30 … IN3 IN2 IN1
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned long dwValue;
lRet = SdioInputDword( nDevice, IFSDIO_IN1_32, &dwValue );
IN1~32 の状態を dwValue に入力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
55
8. SdioOutputByte 接点 8点分の出力を制御します。
long SdioOutputByte(
int nDevice, // デバイス番号
unsigned long ulOutputNo, // 出力接点位置
unsigned char bValue // 出力データ
);
パラメータ
nDevice デバイス番号を指定します。
ulOutputNo データを出力する接点を下記の識別子で指定します。
IFSDIO_OUT1_8 OUT1~OUT8 の 8 点分のデータを出力します。
IFSDIO_OUT9_16 OUT9~OUT16 の 8 点分のデータを出力します。
IFSDIO_OUT17_24 OUT17~OUT24 の 8 点分のデータを出力します。
bValue 指定した接点へ出力するデータを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
出力データは下記のようにビット毎に接点と対応しています。 ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
IFSDIO_OUT1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1
IFSDIO_OUT9_16 OUT6 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9
IFSDIO_OUT17_24 OUT24 OUT23 OUT22 OUT21 OUT20 OUT19 OUT18 OUT17
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOutputByte( nDevice, IFSDIO_OUT1_8, 0x12);
OUT1~8 へ 12h を出力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
56
9. SdioOutputWord 接点 16 点分の出力を制御します。
long SdioOutputWord(
int nDevice, // デバイス番号
unsigned long ulOutputNo, // 出力接点位置
unsigned short wValue // 出力データ
);
パラメータ
nDevice デバイス番号を指定します。
ulOutputNo データを出力する接点を下記の識別子で指定します。
IFSDIO_OUT1_16 OUT1~OUT16 の 16 点分のデータを出力します。
IFSDIO_OUT17_24 OUT17~OUT32 の 16 点分のデータを出力します。
24 点出力の端子台では OUT25~OUT32 から出力できません。
pwValue 指定した接点へ出力するデータを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
出力データは下記のようにビット毎に接点と対応しています。 ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0
IFSDIO_OUT1_16 OUT16 OUT15 OUT14 … OUT3 OUT2 OUT1
IFSDIO_OUT17_32 OUT32 OUT31 OUT30 … OUT19 OUT18 OUT17
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOutputWord( nDevice, IFSDIO_OUT1_16, 0x1234);
OUT1~16 へ 1234h を出力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
57
10. SdioOutputDword
接点 32 点分の出力を制御します。
long SdioOutputDword(
int nDevice, // デバイス番号
unsigned long ulOutputNo, // 出力接点位置
unsigned long dwValue // 出力データ
);
パラメータ
nDevice デバイス番号を指定します。
ulOutputNo データを出力する接点を下記の識別子で指定します。
IFSDIO_OUT1_32 OUT1~OUT32 の 32 点分のデータを出力します。
24 点出力の端子台では OUT25~OUT32 から出力できません。
dwValue 指定した接点へ出力するデータを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
出力データは下記のようにビット毎に接点と対応しています。 ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0
IFSDIO_OUT1_32 OUT32 OUT31 OUT30 … OUT3 OUT2 OUT1
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOutputDword( nDevice, IFSDIO_OUT1_32, 0x123456);
OUT1~32 へ 00123456h を出力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
58
11. SdioSetLatchLogic
入力信号をラッチする STB 信号の論理を指定します。
long SdioSetLatchLogic(
int nDevice, // デバイス番号
unsigned char bLatchLogic // STB 入力論理
);
パラメータ
nDevice デバイス番号を指定します。
bLatchLogic 入力信号をラッチする STB 信号の論理を以下の識別子で指定します。
IFSDIO_RISE_EDGE STB 信号の立ち上がりでラッチします。
IFSDIO_FALL_EDGE STB 信号の立ち下がりでラッチします。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
ラッチするエッジは立ち上がりと立ち下がりを両方同時に指定することもできます。
STB 信号の変化により割り込みを発生させることができますが、この割り込みの設定とラッチの設
定は独立して指定できます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioSetLatchLogic( nDevice, IFSDIO_RISE_EDGE );
STB 信号の立ち上がりで入力信号をラッチするように設定します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
59
12. SdioGetLatchLogic
入力信号をラッチする STB 信号の論理を取得します。
long SdioGetLatchLogic(
int nDevice, // デバイス番号
unsigned char *pbLatchLogic // STB 入力論理を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
pbLatchLogic STB 信号の論理を格納する変数へのポインタを指定してください。
STB 信号の論理を以下の識別子で格納されます。
IFSDIO_RISE_EDGE STB 信号の立ち上がりでラッチします。
IFSDIO_FALL_EDGE STB 信号の立ち下がりでラッチします。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bLatchLogic;
lRet = SdioGetLatchLogic( nDevice, &bLatchLogic );
STB 信号をラッチする論理を取得します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
60
13. SdioInputLatchPoint
任意の点数のラッチされた入力接点の状態を読み込みます。指定した開始接点番号から 1接点ずつ変
数に格納されます。
long SdioInputLatchPoint(
int nDevice, // デバイス番号
unsigned char *pbBuffer, // 接点状態を返す変数へのポインタ
unsigned long ulStartNum, // 入力開始接点番号
unsigned long ulInputNum // 入力接点数
);
パラメータ
nDevice デバイス番号を指定します。
pbBuffer デバイスから読み取ったデータを受け取るバッファを指すポインタです。
ulStartNum 入力開始接点番号 1~24 を指定してください。ピン IN/OUT1 が 1 に対応します。
ulInputNum 入力接点数を指定してください。
入力接点の指定と、信号は下記のように対応しています。
接点番号 1 2 3 … 31 32
入力信号 IN1 IN2 IN3 … IN31 IN32
1: Low レベル 0:High レベル
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bBuffer[8];
lRet = SdioInputLatchPoint( nDevice, &bBuffer[0], 16, 8 );
IN16~23 の入力接点状態を、bBuffer へ返します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
61
14. SdioInputLatchByte
ラッチされた接点 8点分のデータを読み込み、1バイト(8ビット)の変数に格納します。
long SdioInputLatchByte(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned char *pbValue // 接点状態を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
ulInputNo 読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。
IFSDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。
IFSDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。
pbValue 入力した接点状態を返す変数へのポインタ。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。 ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
IFSDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1
IFSDIO_IN9_16 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9
IFSDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bValue;
lRet = SdioInputLatchByte( nDevice, IFSDIO_IN1_8, &bValue );
STB 信号によってラッチされた IN1~IN8 の状態を bValue に入力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
62
15. SdioInputLatchWord
ラッチされた接点 16 点分のデータを読み込み、1ワード(16 ビット)の変数に格納します。
long SdioInputLatchWord(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned short *pwValue // 接点状態を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
ulInputNo 読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。
IFSDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。
24 点入力の端子台では IN25~IN32 のデータは取得できません。
またここのデータは全て 0になります。
pwValue 読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。 ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0
IFSDIO_IN1_16 IN16 IN15 IN14 … IN3 IN2 IN1
IFSDIO_IN17_32 IN32 IN31 IN30 … IN19 IN18 IN17
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned short wValue;
lRet = SdioInputLatchWord( nDevice, IFSDIO_IN1_16, &wValue );
STB 信号によってラッチされた IN1~IN16 の状態を wValue に入力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
63
16. SdioInputLatchDword
ラッチされた接点 32 点分のデータを読み込み、1ダブルワード(32 ビット)の変数に格納します。
long SdioInputLatchDword(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned long *pdwValue // 接点状態を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
ulInputNo 読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。
24 点入力の端子台では IN25~IN32 のデータは取得できません。
またここのデータは全て 0になります。
pdwValue 読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。 ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0
IFSDIO_IN1_32 IN32 IN31 IN30 … IN3 IN2 IN1
1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned long dwValue;
lRet = SdioInputLatchDword( nDevice, IFSDIO_IN1_32, &dwValue );
STB 信号によってラッチされた IN1~IN32 の状態を dwValue に入力します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
64
17. SdioSetEvent
STB 信号の変化による割り込みが発生したときに実行するイベントを指定します。
long SdioSetEvent(
int nDevice, // デバイス番号
unsigned long ulWindowHandle, // 予約
unsigned long ulWindowMessage, // 予約
unsigned long ulEventHandle, // 予約
LPSDIOCALLBACK pCallBackProc, // コールバック関数へのポインタ
unsigned long ulUserData // ユーザパラメータ
);
パラメータ
nDevice デバイス番号を指定します。
ulWindowHandle 予約です。0を指定してください。
ulWindowsMessage 予約です。0を指定してください。
ulEventHandle 予約です。0を指定してください。
pCallBackProc 割り込み発生時に呼び出されるコールバック関数へのポインタを指定します。
ulUserData コールバック関数およびメッセージハンドラへ引き渡すユーザ・データを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
void EventHandler(unsigned long ulEventFactor, unsigned long ulUserData)
{
:
}
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioSetEvent( nDevice, 0, 0, 0, EventHandler, 0 );
STB 割り込み発生時に呼び出されるコールバック関数を登録します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
65
18. SdioSetEventLogic
STB 信号の割り込み発生論理と、通信モジュールの異常発生割り込みを設定します。
long SdioSetEventLogic(
int nDevice, // デバイス番号
unsigned char bEventLogic // STB 信号割り込み発生論理
);
パラメータ
nDevice デバイス番号を指定します。
bEventLogic STB 信号の割り込み論理を以下の識別子で指定します。
IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みを発生します。
IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みを発生します。
通信モジュールの異常発生割り込みを以下の識別子で指定します。
IFSDIO_CONNECT_EVENT 通信モジュールとの切断で割り込みを発生します。
IFSDIO_POWER_EVENT 通信モジュールの電源電圧異常で割り込みを発生します。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
割り込みを発生する論理は立ち上がりと立ち下がりを両方同時に指定することもできます。
STB 信号の変化により入力信号の状態をラッチできますが、このラッチの設定と割り込みの設定
は独立して指定できます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioSetEventLogic( nDevice, IFSDIO_FALL_EDGE);
STB 信号の割り込み発生論理を立ち下がりに設定します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
66
19. SdioGetEventLogic
STB 信号の割り込み発生論理の設定を取得します。
long SdioGetEventLogic(
int nDevice, // デバイス番号
unsigned char *pbEventLogic // STB信号割り込み発生論理を返す変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
pbEventLogic STB 信号の割り込み論理、通信モジュール異常の割り込み発生条件を格納する変数へのポイン
タを指定します。
割り込み論理、条件は以下の識別子で格納されます。
IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みを発生します。
IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みを発生します。
IFSDIO_CONNECT_EVENT 通信モジュールとの切断で割り込みを発生します。
IFSDIO_POWER_EVENT 通信モジュールの電源電圧異常で割り込みを発生します。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bEventLogic;
lRet = SdioGetEventLogic( nDevice, &bEventLogic);
STB 信号の割り込み発生論理を取得します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
67
20. SdioGetTmoduleStatus
通信モジュールの接続状態を取得します。
long SdioGetTmoduleStatus(
int nDevice, // デバイス番号
unsigned char *pbTmoduleStatus // 接続状態を格納する変数へのポインタ
);
パラメータ
nDevice デバイス番号を指定します。
pbTmoduleStatus 通信モジュールの接続状態を格納する変数へのポインタを指定します。
bit7 bit6 Bit5 bit4 bit3 bit2 bit1 bit0
予約 予約 PWRNG SAFNG 予約 予約 PWROK SAFOK
SAFOK 1 現在、通信モジュールと接続されています。
0 現在、通信モジュールと接続されていません。
PWROK 1 現在、通信モジュールの電源電圧は正常です。
0 現在、通信モジュールの電源電圧が異常です。
SAFNG 1 前回の本関数実行時から、今回の実行までに、通信モジュールとの
切断がありました。
0 前回の本関数実行時から、今回の実行までに、通信モジュールとの
切断はありませんでした。
PWRNG 1 前回の本関数実行時から、今回の実行までに、通信モジュールの電
源電圧の異常がありました。
0 前回の本関数実行時から、今回の実行までに、通信モジュールの電
源電圧の異常はありませんでした。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bTmoduleStatus;
lRet = SdioGetTmoduleStatus( nDevice, &bTmoduleStatus);
通信モジュールの接続状態を取得します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
68
21. SdioSetTmodulePower
通信モジュールの電源を制御します。
long SdioSetTmodulePower(
int nDevice, // デバイス番号
unsigned char bSetPower // 電源状態
);
パラメータ
nDevice デバイス番号を指定します。
bSetPower 電源状態を指定します。
識別子 値 内容
IFSDIO_POWER_ON 1 通信モジュールの電源を ON にします。
IFSDIO_POWER_OFF 0 通信モジュールの電源を OFF にします。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ
い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioSetTmodulePower( nDevice, IFSDIO_POWER_OFF);
通信モジュールの電源を OFF にします。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
69
22. CallBackProc
STB 信号の割り込み発生、通信モジュール異常時の割り込み発生によってコールされるコールバック
関数のプレースホルダです。
呼び出される関数は SdioSetEvent 関数に渡した関数となります。
void CallBackProc(
unsigned long ulEventLogic, // 割り込み要因
unsigned long ulUserData // ユーザーデータ
);
パラメータ
ulEventLogic コールバック関数を呼び出した STB 信号の割り込み発生論理です。
割り込み論理は以下の識別子で格納されます。
IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みが発生しました。
IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みが発生しました。
IFSDIO_CONNECT_EVENT 通信モジュールとの切断で割り込みが発生しました。
IFSDIO_POWER_EVENT 通信モジュールの電源電圧異常で割り込みが発生しました。
ulUserData SdioSetEvent関数で指定したユーザデータです。
戻り値
なし
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
70
4.7 戻り値一覧(汎用 DIO 部)
エラー識別子 値 意味 対処方法
IFSDIO_ERROR_SUCCESS 0 正常終了
IFSDIO_ERROR_DEVICE_NOT_FOUND 0xC0000001 デバイスが見つかりま
せん
指定されたデバイスが見つかりません
でした。指定されたデバイスが認識さ
れているか確認して下さい。
IFSDIO_ERROR_DEVICE_NOT_OPEN 0xC0000002 デバイスがオープンさ
れていません
デバイスをオープンしているか確認し
てください。
IFSDIO_ERROR_INVALID_PARAMETER 0xC0001001 引数パラメータの値が
不正です
関数に指定する値が不正もしくは範囲
外です。
引数に NULL ポインタが指定されてい
ます。
IFSDIO_ERROR_TERMINAL 0xC0003001 端子台に異常がありま
す
端子台の電源電圧に異常があるか、端
子台が接続されていません。または正
しくない組み合わせの端子台が接続さ
れています。
正しい組み合わせの端子台を接続して
ください。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
71
第5章 サンプルプログラム
5.1 データ送信サンプルプログラム データ送信を行うサンプルプログラムです。
・実行方法
#cd /usr/src/interface/gpg4141/(アーキテクチャ名※)/linux/samples/c #make #./send ※アークテクチャ名は IBM PC/AT 互換機なら「i386」、弊社 SH-CPU ボードなら「sh」になります(以
下同じ)。
実行すると下記表示になりますので、デバイス名と送信する文字列を入力します。
***************** Send data Program ***********************
Input the One Port Device Name : (デバイス名※)
※例:デバイスノード名が ttyG0 の場合は、「/dev/ttyG0」となります。(以下同じ)。
文字列データを入力して「ENTER」キーを押すと、データを送信します。
5.2 データ受信サンプルプログラム データ受信を行うサンプルプログラムです。
・実行方法
#cd /usr/src/interface/gpg4141/(アーキテクチャ名※)/linux/samples/c #make #./receive
実行すると下記表示になりますので、データを送信するデバイス名を入力します。
***************** Receive data Program ***********************
Input the One Port Device Name : (デバイス名)
デバイス名を入力した後、受信待機状態になります。データを受信すると、受信したデータを表示し
ます。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
72
5.3 データ送信サンプルプログラム(全二重方式) 全二重方式でデータ送信を行うサンプルプログラムです。
RSW1 設定値が 1の PCI-4141 のチャンネル 1から、キーボードから入力した文字列データを全二重方
式で送信します。「CTRL + \」キーが押されたらプログラムを終了します。
#cd /usr/src/interface/gpg4141/(アーキテクチャ名※)/linux/samples/c #make #./fd_send
5.4 データ送信サンプルプログラム(2 線式半二重) 2線式半二重でデータ送信を行うサンプルプログラムです。
RSW1 設定値が 1の PCI-4142 のチャンネル 1から、キーボードから入力した文字列データを 2線式半
二重で送信します。「CTRL + \」キーが押されたらプログラムを終了します。
#cd /usr/src/interface/gpg4141/(アーキテクチャ名)/linux/samples/c #make #./hd_send
5.5 データ受信サンプルプログラム(全二重方式) 全二重式でデータ受信を行うサンプルプログラムです。
RSW1 設定値が 1 の PCI-4141 のチャンネル 1 で、送信側からのデータを受信します。「CTRL + \」キ
ーが押されたらプログラムを終了します。
#cd /usr/src/interface/gpg4141/(アーキテクチャ名)/linux/samples/c #make #./fd_receive
5.6 データ受信サンプルプログラム(2 線式半二重) 2線式半二重でデータ受信を行うサンプルプログラムです。
RSW1 設定値が 1 の PCI-4142 のチャンネル 1 で、データを受信します。「CTRL + \」キーが押された
らプログラムを終了します。
#cd /usr/src/interface/gpg4141/(アーキテクチャ名)/linux/samples/c #make #./hd_receive
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
73
第6章 ユーティリティ
6.1 通信方式設定プログラム 通信方式(全二重/半二重)を設定するプログラムです。
※下記製品のみ対応しております。ご注意下さい。
IUC-C2934(L), IUC-P2934(L), IUC-x2934(L6), IUC-x3615(L6), IUC-x4668(L6), IUC-x4676(L6),
IUC-x4326(L6), IUC-x4855(L6), IUC-x2980(L6), IUC-x2934(L7), IUC-x3615(L7), IUC-x4668(L7),
IUC-x4676(L7), IUC-x4326(L7), IUC-x4855(L7), IUC-x2980(L7),
ITC-x2984(L6), ITC-x4006(L6), ITC-x4007(L6), ITC-x4874(L6),
ITC-x2984(L7), ITC-x4006(L7), ITC-x4007(L7), ITC-x4874(L7),
IMC-T4003(L6), IMC-T4004(L6), IMC-T4666(L6), IMC-T4667(L6),
TIO-C2934x(L6), TIO-C3615x(L6), TIO-C4668x(L6), TIO-C4676x(L6), TIO-C4326x(L6),
TIO-C4855x(L6), TIO-C2980x(L6),
TIO-N2984x(L6),TIO-N4006x(L6), TIO-N4007x(L6), TIO-N4874x(L6), ETC-D916(L6)
設定した通信方式は Linux 上に保存され、次回ドライバ組込み時からは自動で設定した通信方式とな
ります。(RS-485 のみ)
※設定はデバイスノード名に対して保存されます。
デバイスを拡張(追加)するなどして、デバイスノード名が変更された場合、
再度設定を行う必要があります。ご注意下さい。
【実行方法】
コンソールから下記のコマンドを実行します。
ifsetduplex [デバイスノード名] [DuplexMode]
デバイスノード名:設定を行うデバイスノード名を指定します。(ttyxxx)
デバイスノード名については「3.1 デバイスを動かすまで」の「3 デバイスノ
ード名の確認」を参照してください。
DuplexMode :通信方式を指定します。指定する値は下記となります。
値 モード
1 全二重通信
0 2 線式半二重通信
2 4 線式半二重通信
※ioctl リクエストの CP4141_SET_DUPLEX_MODE による設定を行います。
製品により設定できない通信方式があります。ご注意下さい。
下記にそれぞれの実行例を記載します。
・全二重の設定 #ifsetduplex ttyUSB0 1 デバイスノード名「ttyUSB0」を全二重に設定します。
・2 線式半二重の設定 #ifsetduplex ttyUSB0 0 デバイスノード名「ttyUSB0」を 2線式半二重に設定します。
・4 線式半二重の設定 #ifsetduplex ttyG0 2 デバイスノード名「ttyG0」を 4線式半二重に設定します。
GPG-4141 Help for Linux
© 2001 Interface Corporation. All rights reserved.
74
第7章 重要な情報
保証の内容と制限
弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に誤り
が無いことを保証していません。
本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。
弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあった場
合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に起因する
いかなる損害に対しても弊社は責任を負いません。
ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があります。
著作権、知的所有権
弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。
本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。
医療機器/器具への適用における注意
弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製造さ
れた物では有りません。
弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機器
と共に設計された物では有りません。
医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、損
傷/損害を引き起こす場合が有ります。
複製の禁止
弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことはでき
ません。
責任の制限
弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、間
接的な損害、重大な損害について、責任を負いません。
本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる結果
に関する一切のリスクについては、本製品の使用者に帰属するものとします。
本製品に含まれる不都合、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的損
害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する改良(有
償サービスの利用)、代品交換までとし、製品の予防交換並びに、代金減額等、金銭面での賠償の責
任は負わないものとします。
本製品は、日本国内仕様です。
商標/登録商標
本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。