J08 Wrinting binary samples

Binary signals are built of byte arrays. In this example we use binary signals to display images.

 

Binary Signals

In general, the binary data can be anything. If BINARY_CONTENT_IMAGE is selected, the binary data shall be in form of packed images supported by the SWT ImageLoader("WinBMP", "WinBMP", "GIF", "WinICO", "JPEG", "PNG", "TIFF", "OS2BMP") .

Interface

This is the interface:

public interface IBinarySamplesWriter extends ISamplesWriter{
   
    boolean write(long units, boolean conflict, byte[] value);    

}

The parameters have the following meaning:

units
No of domain units (e.g. ns)
conflict
Define this sample as a conflict one.
value
An array of byte

Creating

Now take a look at these examples (out of de.toem.impulse.serializer.ExampleBinaryReaderReader):

        Scope signals = addScope(null, "Signals");
        Signal image1 = addSignal(signals, "Image", "An image signal", 
                ProcessType.Discrete, SignalType.Binary, new SignalDescriptor(
                SignalDescriptor.BINARY_CONTENT_IMAGE));

To create a binary signal, you need to give the signal type SignalType.Binary and a signal descriptor with its content description (STRUCT_BINARY_IMAGE,..).

Writing an image signal

Here an example that writes png images from a a gif sequence.

        // images
        IBinarySamplesWriter imageWriter = (IBinarySamplesWriter) getWriter(image1);
        try {
            ImageData[] imageData = new ImageLoader()
                .load(EclipseBundles.getBundleEntryAsStream(
                ExtensionToolkit.PLUGIN_ID, "input.gif"));
            for (ImageData data : imageData) {
                ImageLoader loader = new ImageLoader();
                loader.data = new ImageData[] { data };
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                loader.save(out, SWT.IMAGE_PNG);
                out.close();
                imageWriter.write(t, false, out.toByteArray());
                t += 500;
            }

        } catch (IOException e) {
        }

Print

User Rating: 0 / 5

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive