CFNET-FS 파일 시스템을 사용하기 위해서는 다운로드 및 파일 시스템을 생성 과정이 필요합니다.
Modular Pi의 bash 터미널에서 wget 또는 curl과 같은 명령어를 사용하여 직접 파일을 다운로드할 수도 있습니다.
wget https://downloads.comfiletech.com/CFNET/cfnet-fs/release/1.0.0/linux-arm64/cfnet-fs chmod +x cfnet-fs
다운로드 후 아래와 같이 실행 파일을 실행하여 CFNET 가상 파일 시스템을 생성합니다.
cfnet-fs {mount-point} {i2c1-device} {i2c2-device} {i2c3-device}
ModularPi 환경에서는 아래와 같이 실행합니다.
cfnet-fs /tmp/cfnet-fs /dev/i2c-0 /dev/i2c-1 /dev/i2c-3
마운트 경로 (mount-point) :프로그램을 실행하는 사용자가 접근 가능한 임의의 디렉터리를 지정할 수 있습니다. 예: /tmp/cfnet-fs/dev/i2c-0 : 아날로그 입력/출력 모듈(CFADC, CFDAC 등)에 사용되는 I²C 포트입니다./dev/i2c-1 : 디지털 입력 모듈(CFDI)에 사용되는 I²C 포트입니다./dev/i2c-3 : 디지털 출력 모듈(CFDO)에 사용되는 I²C 포트입니다.
cfnet-fs가 실행 중인 동안에는 ls, tree 와 같은 일반적인 파일 시스템 명령어를 사용하여 마운트된 경로(예: /tmp/cfnet-fs)의 파일 시스템을 탐색할 수 있습니다.
$ tree /tmp/cfnet-fs/
├── analog-input
│ └── 0
│ └── channel
│ ├── 0
│ │ ├── amps.txt
│ │ ├── amps.bin
│ │ ├── volts.txt
│ │ └── volts.bin
│ ├── 1
│ │ ├── amps.txt
│ │ ├── amps.bin
│ │ ├── volts.txt
│ │ └── volts.bin
│ ...
├── analog-input
│ └── 1
│ └── channel
│ ├── 0
│ │ ├── amps.txt
│ │ ├── amps.bin
│ │ ├── volts.txt
│ │ └── volts.bin
│ ...
├── analog-output
│ └── 0
│ └── channel
│ ├── 0
│ │ ├── raw.txt
│ │ └── volts.txt
│ └── 1
│ ├── raw.txt
│ └── volts.txt
├── analog-output
│ └── 1
│ └── channel
│ ├── 0
│ │ ├── raw.txt
│ │ └── volts.txt
│ ...
├── digital-input
│ └── 0
│ ├── channel
│ │ ├── 0
│ │ │ ├── state.txt
│ │ │ └── state.bin
│ │ ├── 1
│ │ │ ├── state.txt
│ │ │ └── state.bin
│ │ ...
│ ├── state.txt
│ └── state.bin
├── digital-input
│ └── 1
│ ├── channel
│ │ ├── 0
│ │ │ ├── state.txt
│ │ │ └── state.bin
│ ...
└── digital-output
├── 0
│ ├── channel
│ │ ├── 0
│ │ │ ├── state.txt
│ │ │ └── state.bin
│ │ ├── 1
│ │ │ ├── state.txt
│ │ │ └── state.bin
│ │ ...
│ ├── state.txt
│ └── state.bin
└── 1
├── channel
│ ├── 0
│ │ ├── state.txt
│ │ └── state.bin
...
마운트 지점의 파일에서 읽고 쓰는 간단한 작업만으로 Modular Pi + CFNET I/O 모듈 시스템을 자동화할 수 있습니다.
echo 1 > /tmp/cfnet-fs/digital-output/0/channel/3/state.txt
File.WriteAllText("/tmp/cfnet-fs/digital-output/0/channel/3/state.txt", "1");
with open("/tmp/cfnet-fs/digital-output/0/channel/3/state.txt", "w") as f: f.write("1")