XS04 Script Production Example: Analyse Logic Vector

Content outdated

We are in the process of migrating all content to impulse version 2.0.

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 user
About Signal Scripts Open JavaDoc Reference

Result


toem

technical software and tooling

Company

Contact Us

This email address is being protected from spambots. You need JavaScript enabled to view it.