16 PosixSerialConfig serial {
18 .device_path =
"COM3",
20 .device_path =
"/dev/ttyUSB0",
28 auto protocol = make_c4_binary_protocol();
29 protocol.route.station_no = 0;
33 std::fprintf(stderr,
"open failed: %s\n", status.
message);
37 CpuModelInfo model {};
38 status = plc.read_cpu_model(model);
40 std::fprintf(stderr,
"cpu-model failed: %s\n", status.
message);
44 std::array<std::uint16_t, 2> words {};
45 status = plc.read_words(
"D100", words);
47 std::fprintf(stderr,
"read_words failed: %s\n", status.
message);
51 std::uint32_t sparse_d100 = 0;
52 status = plc.random_read(
"D100", sparse_d100);
54 std::fprintf(stderr,
"random_read failed: %s\n", status.
message);
59 "sync example ok: model=%s code=0x%04X D100=0x%04X D101=0x%04X sparseD100=0x%04X\n",
60 model.model_name.data(),
64 static_cast<std::uint16_t
>(sparse_d100 & 0xFFFFU));