XS04 Script Production Example: Analyse Logic Vector
Similar use case as "Analyse Logic", but here we have a logic vector. With in0.logicValue() .getState(1) you can extract bits out of the vector.
// input: an array of all input signals // in0: primary input of type ISamplePointer,IReadableSamples // in1..: additional inputs of type ISamplePointer,IReadableSamples // out: output signal of type IIntegerSamplesWriter // console: console output of type MessageConsoleStream // iter: iterator of type ISamplesIterator // progress: progess control of type IScriptProgress var start = -1; progress.cont(); while ( iter.hasNext()) { var current <:Long:> = iter.next(out); if (!input[0].isNone()) { if (input[0].logicValue().getState(1) == STATE_1) start = current; if (input[0].logicValue().getState(1) == STATE_0 && start >= 0) { out.write(start, false, new java.lang.Long(current - start)); start = -1; } } } // LOGIC STATES // Level 2 - 1 Bit // 0: '0' strong drive, logic zero // 1: '1' strong drive, logic one // Level 4 - 2 Bits // 2: 'Z' high impedance // 3: 'X' strong drive, unknown logic value // Level 16 - 4 Bits // 4: 'L' weak drive, logic zero // 5: 'H' weak drive, logic one // 6: 'U' uninitialized // 7: 'W' weak drive, unknown logic value // 8: '-' (STATE_D) don't care // 9 - 14: 'J', 'K', 'M', 'N', 'O', 'P' to be defined by the userAbout Signal Scripts Open JavaDoc Reference