8.2.1.2.15 Binary Output, SBO, Sequence number checking (revision 3.1r1, subset level 3)

Device under test: Step Function I/O dnp3 outstation

05:24:30.481 Running procedure: 8.2.1.2.15
05:24:30.483 This procedure is enabled because the following options:
05:24:30.483 - supports.binaryOutput.commands == true
05:24:30.483 step: 2
05:24:30.483 - Tell a manual tester: Watch binary output 0 during this procedure: it should not operate at all, after the OPERATE in step 4 or the one in step 7. You'll be asked what you saw after the steps, so make sure you can tell one operation from two (e.g. a counter, or an on-time long enough to see). Get ready, then press ENTER.
05:24:30.483 - Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
05:24:30.483 - g12v1, 1-Byte Count and Index, count: 1
05:24:30.483 - [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:30.484 --A-> Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
05:24:30.484 g12v1, 1-Byte Count and Index, count: 1
05:24:30.484 [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:30.484 --T-> fir: 1 fin: 1 seq: 0
05:24:30.484 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
05:24:30.484 --P-> 05 64 18 C4 00 04 01 00 5B 61
05:24:30.484 C0 C0 03 0C 01 17 01 00 03 01 64 00 00 00 C8 00 FD 11
05:24:30.484 00 00 00 FF FF
05:24:30.485 step: 3
05:24:30.485 - Read a single fragment response w/ sequence(0x00)
05:24:30.485 - Verify the response contains the exact object header:
05:24:30.485 - g12v1, 1-Byte Count and Index, count: 1
05:24:30.485 - [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:30.485 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
05:24:30.485 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
05:24:30.485 C0 C0 81 90 00 0C 01 17 01 00 03 01 64 00 00 00 9C 9A
05:24:30.485 C8 00 00 00 00 78 FB
05:24:30.485 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
05:24:30.485 <-T-- fir: 1 fin: 1 seq: 0
05:24:30.485 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00 IIN(DeviceRestart, NeedTime)
05:24:30.485 g12v1, 1-Byte Count and Index, count: 1
05:24:30.485 [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:30.485 step: 4
05:24:30.485 - Operate(0x04) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
05:24:30.486 - g12v1, 1-Byte Count and Index, count: 1
05:24:30.486 - [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:30.486 --A-> Operate(0x04) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
05:24:30.486 g12v1, 1-Byte Count and Index, count: 1
05:24:30.486 [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:30.486 --T-> fir: 1 fin: 1 seq: 0
05:24:30.487 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
05:24:30.487 --P-> 05 64 18 C4 00 04 01 00 5B 61
05:24:30.487 C0 C2 04 0C 01 17 01 00 03 01 64 00 00 00 C8 00 1D 75
05:24:30.487 00 00 00 FF FF
05:24:30.487 step: 5
05:24:30.487 - Read a single fragment response w/ sequence(0x02)
05:24:30.487 - Verify the response contains the exact object header:
05:24:30.487 - g12v1, 1-Byte Count and Index, count: 1
05:24:30.487 - [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 2 (NO_SELECT)
05:24:30.488 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
05:24:30.488 C1 C2 81 90 00 0C 01 17 01 00 03 01 64 00 00 00 20 0B
05:24:30.488 C8 00 00 00 02 C4 97
05:24:30.488 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
05:24:30.488 <-T-- fir: 1 fin: 1 seq: 1
05:24:30.488 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02 IIN(DeviceRestart, NeedTime)
05:24:30.488 g12v1, 1-Byte Count and Index, count: 1
05:24:30.488 [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 2 (NO_SELECT)
05:24:30.488 step: 6
05:24:30.488 - Check that no binary control point operated
05:24:31.489 [PLG] Binary output did NOT operate
05:24:31.489 step: 7
05:24:31.489 - Operate(0x04) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
05:24:31.489 - g12v1, 1-Byte Count and Index, count: 1
05:24:31.489 - [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:31.490 --A-> Operate(0x04) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
05:24:31.490 g12v1, 1-Byte Count and Index, count: 1
05:24:31.490 [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 0 (SUCCESS)
05:24:31.490 --T-> fir: 1 fin: 1 seq: 0
05:24:31.490 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
05:24:31.490 --P-> 05 64 18 C4 00 04 01 00 5B 61
05:24:31.490 C0 C1 04 0C 01 17 01 00 03 01 64 00 00 00 C8 00 35 C7
05:24:31.490 00 00 00 FF FF
05:24:31.490 step: 8
05:24:31.490 - Read a single fragment response w/ sequence(0x01)
05:24:31.490 - Verify the response contains the exact object header:
05:24:31.490 - g12v1, 1-Byte Count and Index, count: 1
05:24:31.490 - [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 2 (NO_SELECT)
05:24:31.491 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
05:24:31.491 C2 C1 81 90 00 0C 01 17 01 00 03 01 64 00 00 00 9C 6F
05:24:31.491 C8 00 00 00 02 C4 97
05:24:31.491 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
05:24:31.491 <-T-- fir: 1 fin: 1 seq: 2
05:24:31.491 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime)
05:24:31.491 g12v1, 1-Byte Count and Index, count: 1
05:24:31.491 [0] - code: 0x03 (LATCH_ON, NUL) count: 1 onTime: 100 offTime: 200 status: 2 (NO_SELECT)
05:24:31.491 step: 9
05:24:31.491 - Check that no binary control point operated
05:24:32.492 [PLG] Binary output did NOT operate
05:24:32.493 Passed procedure: 8.2.1.2.15