get-5bytes-buffer1

nazarijtipusak080/get-5bytes-from-buffer1/get-5bytes-buffer1

No description
get-5bytes-buffer1
@/get-5bytes-buffer1
buffer1nazarijtipusak080/buffer1/buffer1
beginnumber
triggerpulse
get-5bytes-buffer1
buffer1
begin
trigger
buffer
val1
val2
val3
val4
val5
done
donepulse
val5byte
val4byte
val3byte
val2byte
val1byte
buffernazarijtipusak080/buffer1/buffer1
To use the node in your project you should have the nazarijtipusak080/get-5bytes-from-buffer1 library installed. Use the “File → Add Library” menu item in XOD IDE if you don’t have it yet. See Using libraries for more info.

C++ implementation

//-- char buffer1::get_byte(i)
// Our constructor namespace should be: buffer1_ll__buffer1
struct State {
  // not used
  };

{{ GENERATED_CODE }}

void evaluate(Context ctx) {

  if ( !isInputDirty<input_trigger>(ctx) ) return;

  uint16_t i = static_cast<uint16_t> (getValue<input_begin>(ctx));
  auto _object = getValue<input_buffer1>(ctx); // buffer1

  if ( ! _object->buffer ) {
   // DEBUG_SERIAL.print(F("buffer1/"));DEBUG_SERIAL.print(F("get-byte")); DEBUG_SERIAL.print(F(" saw unallocated buffer1\n")); // exception
  }
 // else if ( i < 0 || i  >= _object->len ) {
    //emitValue<output_ERR>(ctx, 1); // pulse
  //}
  else {
    uint8_t _rez1 = _object->buffer[ i ];
       uint8_t _rez2 = _object->buffer[ i+1];
       uint8_t _rez3 = _object->buffer[ i+2 ];
       uint8_t _rez4 = _object->buffer[ i+3 ];
       uint8_t _rez5 = _object->buffer[ i+4 ];
    //DEBUG_SERIAL.print(F("@")); DEBUG_SERIAL.print((long) _object->buffer);
    //DEBUG_SERIAL.print(F("[")); DEBUG_SERIAL.print(_rez,HEX); DEBUG_SERIAL.print(F("]\n"));
    emitValue<output_val1>(ctx, _rez1);
    emitValue<output_val2>(ctx, _rez2);
    emitValue<output_val3>(ctx, _rez3);
    emitValue<output_val4>(ctx, _rez4);// byte
    emitValue<output_val5>(ctx, _rez5);// byte

    emitValue<output_done>(ctx, 1);
  }
  emitValue<output_buffer>(ctx, _object); // convenience
}