Tag out0 = m2.tagTable.createTag("Output00", 0);
Tag out1 = m2.tagTable.createTag("Output01", 0);
Tag out2 = m2.tagTable.createTag("Output02", 0);
Mdta m = new Mdta(m0, "333", "test device");
// 1
m.channel.tagChannel.set( 0x500 );
m.execute();
assertEquals(m.tagSost.get(), 0xFE);
m.channel.tagChannel.set( 0x100 );
m.execute();
assertEquals(m.tagSost.get(), 0);
assertEquals(m.channel.tagName.getString(), "mod1@Input00");
// 2 delays=0
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
in0.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
// 3 delays > 0
m.tagDlyDrebezg.set(1);
m.tagDlyOutput.set(3);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 1);
assertEquals(m.tagValue.get(), 1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 1);
assertEquals(m.tagValue.get(), 1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 1);
assertEquals(m.tagValue.get(), 1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
m.tagBlok.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 4);
assertEquals(m.tagValue.get(), 1);
in0.set(0);
m.tagBlok.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);
// 4 trigger
m.tagFlags.set(1);
m.tagDlyDrebezg.set(0);
m.tagDlyOutput.set(0);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
in0.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 2);
assertEquals(m.tagValue.get(), 0);
m.tagTrigres.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);
m.tagTrigres.set(0);
// 5 MchaSost=2
m.tagFlags.set(2);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 1);
assertEquals(m.tagValue.get(), 1);
m.tagMchaSost.set(2);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 1);
assertEquals(m.tagValue.get(), 1);
m.tagMchaSost.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
in0.set(0);
m.execute();
// 6 MchaSost=4
m.tagMchaSost.set(0);
m.tagFlags.set(5);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 1);
assertEquals(m.tagValue.get(), 1);
m.tagMchaSost.set(2);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
m.tagMchaSost.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
in0.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 2);
assertEquals(m.tagValue.get(), 0);
m.tagMchaSost.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);
// 7 Flags=0xD
m.tagFlags.set(0xD);
m.tagMchaSost.set(0);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 1);
assertEquals(m.tagValue.get(), 1);
m.tagMchaSost.set(2);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
m.tagMchaSost.set(0);
m.execute();
// 7 Flags.b5b4 = 1
m.tagFlags.set(0x10);
m.tagDlyDrebezg.set(3);
m.tagMchaSost.set(0);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
in0.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 0);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);
// 8 Flags.b5b4 = 2
m.tagFlags.set(0x20);
m.tagDlyDrebezg.set(3);
m.tagMchaSost.set(0);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
in0.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 0);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 0);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);
// 9 Flags.b5b4 = 2
m.tagFlags.set(0x30);
m.tagDlyDrebezg.set(3);
m.tagMchaSost.set(0);
in0.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 1);
in0.set(0);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);
// 10 Transform = 10
m.tagFlags.set(0);
m.tagDlyDrebezg.set(0);
m.tagTransform.set(10);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 10);
m.tagBlok.set(1);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 4);
assertEquals(m.tagValue.get(), 10);
m.tagBlok.set(0);
m.tagTransform.set(0xFFFF);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);
// scaling
m.tagPointV.set(10);
m.tagPointP.set(100);
in0.set(200);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 20);
m.tagPointV.set(0);
m.tagPointP.set(100);
m.tagPointV1.set(10);
m.tagPointP1.set(200);
in0.set(150);
m.execute();
assertEquals(m.tagOutput.get(), 1);
assertEquals(m.tagSost.get(), 3);
assertEquals(m.tagValue.get(), 5);
in0.set(50);
m.execute();
assertEquals(m.tagOutput.get(), 0);
assertEquals(m.tagSost.get(), 0);
assertEquals(m.tagValue.get(), 0);