아날로그 출력모듈(CFDAC)은 아래에 설명된 /analog-output/{module_address}/channel/{channel_address}디렉터리의 raw, voltes 파일을 통해 제어됩니다.
☞ “CFNET-FS 개발 환경 구성이 완료되지 않았다면, 아래 링크를 참고하여 먼저 설정을 진행해 주세요.”
analog-output » 모듈 주소 0~7{module_address} 디렉터리 » channel » 0, 1 채널 디렉터리가 있으며,
0, 1(채널) 디렉터리에는 해당 채널(포트)을 제어하기 위한 raw 및 volts 파일이 포함되어 있습니다.
.{mount-point}/analog-output/{module_address}/$ tree -L 2 /tmp/cfnet-fs/analog-output/ /tmp/cfnet-fs/analog-output/ ├── 0 │ └── channel ├── 1 │ └── channel ... 7
$ tree /tmp/cfnet-fs/analog-output/0
/tmp/cfnet-fs/analog-output/0
└── channel
├── 0
│ ├── raw.bin
│ ├── raw.txt
│ ├── volts.bin
│ └── volts.txt
└── 1
├── raw.bin
├── raw.txt
├── volts.bin
└── volts.txt
각 아날로그 출력 채널에는 다음과 같은 4개의 파일이 제공됩니다.
이 파일들 중 하나에 쓰기 작업을 하면 아날로그 출력 채널의 전압이 변경됩니다. 텍스트 파일(.txt)은 사용자 입력·표시에 적합하며, 바이너리 파일(.bin)은 연산 및 논리 처리가 필요한 경우에 적합합니다.
$ echo 5.0000 > /tmp/cfnet-fs/analog-output/0/channel/1/volts.txt
const string ANALOG_OUTPUT_0_CHANNEL_3 = "/tmp/cfnet-fs/analog-output/0/channel/1/volts.txt"; File.WriteAllText(ANALOG_OUTPUT_0_CHANNEL_3 , "5.0000");
const string ANALOG_OUTPUT_0_CHANNEL_3 = "/tmp/cfnet-fs/analog-output/0/channel/1/volts.bin"; File.WriteAllBytes(ANALOG_OUTPUT_0_CHANNEL_3, BitConverter.GetBytes(5.0f));
ANALOG_OUTPUT_0_CHANNEL_3 = "/tmp/cfnet-fs/analog-output/0/channel/1/volts.txt" with open(ANALOG_OUTPUT_0_CHANNEL_3, "w") as f: f.write("5.0000")
import struct ANALOG_OUTPUT_0_CHANNEL_3 = "/tmp/cfnet-fs/analog-output/0/channel/1/volts.bin" value = 5.0 with open(ANALOG_OUTPUT_0_CHANNEL_3, "wb") as f: f.write(struct.pack("<f", value))
#include <stdio.h> const char* ANALOG_OUTPUT_0_CHANNEL_3 = "/tmp/cfnet-fs/analog-output/0/channel/1/volts.txt"; int main(void) { FILE *f = fopen(ANALOG_OUTPUT_0_CHANNEL_3, "w"); fputs("5.0000", f); fclose(f); return 0; }
#include <stdio.h> const char* ANALOG_OUTPUT_0_CHANNEL_3 = "/tmp/cfnet-fs/analog-output/0/channel/1/volts.bin"; int main(void) { float value = 5.0f; FILE *f = fopen(ANALOG_OUTPUT_0_CHANNEL_3, "wb"); fwrite(&value, sizeof(float), 1, f); fclose(f); return 0; }