6#include "dawn/prog/switch.hxx"
7#include "test_common.hxx"
9#include "dawn/io/sdata.hxx"
10#include "dawn/io/virt.hxx"
18static uint32_t g_cfg_in0[] = {SW_IN0, 0};
19static uint32_t g_cfg_in1[] = {SW_IN1, 0};
20static uint32_t g_cfg_tgt[] = {SW_TGT, 0};
24static uint32_t g_bin_switch[] = {
25 CProgSwitch::objectId(0),
27 CProgSwitch::cfgIdInputs(4),
32 CProgSwitch::cfgIdTarget(),
38static void test_switch_and_gate()
52 TEST_ASSERT_EQUAL(OK, in0.init());
53 TEST_ASSERT_EQUAL(OK, in1.init());
54 TEST_ASSERT_EQUAL(OK, tgt.init());
55 TEST_ASSERT_EQUAL(OK, in0.initialize(1, 1,
true));
56 TEST_ASSERT_EQUAL(OK, in1.initialize(1, 1,
true));
57 TEST_ASSERT_EQUAL(OK, tgt.initialize(1, 1,
false));
59 TEST_ASSERT_EQUAL(OK, prog.configure());
60 prog.setObjectMapItem(SW_IN0, &in0);
61 prog.setObjectMapItem(SW_IN1, &in1);
62 prog.setObjectMapItem(SW_TGT, &tgt);
63 TEST_ASSERT_EQUAL(OK, prog.init());
64 TEST_ASSERT_EQUAL(OK, prog.start());
68 TEST_ASSERT_EQUAL(OK, in0.setData(in));
69 TEST_ASSERT_EQUAL(OK, in1.setData(in));
70 TEST_ASSERT_EQUAL(OK, tgt.getData(out, 1));
71 TEST_ASSERT_EQUAL(0x00, out(0) & 0xff);
75 TEST_ASSERT_EQUAL(OK, in0.setData(in));
77 TEST_ASSERT_EQUAL(OK, in1.setData(in));
78 TEST_ASSERT_EQUAL(OK, tgt.getData(out, 1));
79 TEST_ASSERT_EQUAL(0x00, out(0) & 0xff);
83 TEST_ASSERT_EQUAL(OK, in0.setData(in));
84 TEST_ASSERT_EQUAL(OK, in1.setData(in));
85 TEST_ASSERT_EQUAL(OK, tgt.getData(out, 1));
86 TEST_ASSERT_EQUAL(0x42, out(0) & 0xff);
90 TEST_ASSERT_EQUAL(OK, in0.setData(in));
91 TEST_ASSERT_EQUAL(OK, tgt.getData(out, 1));
92 TEST_ASSERT_EQUAL(0x00, out(0) & 0xff);
94 TEST_ASSERT_EQUAL(OK, prog.stop());
99 int test_prog_switch()
102 DAWN_RUN_TEST(test_switch_and_gate);
Descriptor wrapper for individual object configuration.
Virtual I/O type for user-provided data and callbacks.
Multi-input AND-gate switch: writes on/off commands to a target IO when all control inputs match thei...
Out-of-tree user-extension hooks for Dawn.
@ DTYPE_UINT32
Unsigned 32-bit integer (0 to 4294967295).
Static (compile-time) I/O data buffer (no timestamp).