Method: RCSimCinterface.rcsim_add_signal_signals

Defined in:
ext/hruby_sim/hruby_rcsim_build.c

.rcsim_add_signal_signals(signalIV, sigVs) ⇒ Object

Adds sub signals a C signal.



1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
# File 'ext/hruby_sim/hruby_rcsim_build.c', line 1281

VALUE rcsim_add_signal_signals(VALUE mod, VALUE signalIV, VALUE sigVs) {
    /* Get the C signal from the Ruby value. */
    SignalI signalI;
    value_to_rcsim(SignalIS,signalIV,signalI);
    // printf("rcsim_add_signal_signals with signalI=%p\n",signalI);
    /* Prepare the size for the alternate system types. */
    long num = RARRAY_LEN(sigVs);
    long old_num = signalI->num_signals;
    signalI->num_signals += num;
    signalI->signals=realloc(signalI->signals,
            sizeof(SignalI[signalI->num_signals]));
    // signalI->signals = (SignalI*)my_realloc(signalI->signals,
    //         sizeof(SignalI[old_num]), sizeof(SignalI[signalI->num_signals]));
    /* Get and add the alternate system types from the Ruby value. */
    for(long i=0; i< num; ++i) {
        SignalI sig;
        value_to_rcsim(SignalIS,rb_ary_entry(sigVs,i),sig);
        signalI->signals[old_num + i] = sig;
    }
    return signalIV;
}