Method: RCSimCinterface.rcsim_add_systemT_outputs
- Defined in:
- ext/hruby_sim/hruby_rcsim_build.c
.rcsim_add_systemT_outputs(systemTV, sigVs) ⇒ Object
Adds outputs to a C systemT.
949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 |
# File 'ext/hruby_sim/hruby_rcsim_build.c', line 949
VALUE rcsim_add_systemT_outputs(VALUE mod, VALUE systemTV, VALUE sigVs) {
/* Get the C systemT from the Ruby value. */
SystemT systemT;
value_to_rcsim(SystemTS,systemTV,systemT);
// printf("rcsim_add_systemT_inputs with systemT=%p\n",systemT);
/* Prepare the size for the outputs. */
long num = RARRAY_LEN(sigVs);
long old_num = systemT->num_outputs;
systemT->num_outputs += num;
// printf("first systemT->outputs=%p\n",systemT->outputs); fflush(stdout);
systemT->outputs =realloc(systemT->outputs,
sizeof(SignalI[systemT->num_outputs]));
// systemT->outputs =(SignalI*)my_realloc(systemT->outputs,
// sizeof(SignalI[old_num]), sizeof(SignalI[systemT->num_outputs]));
// printf("now systemT->outputs=%p\n",systemT->outputs); fflush(stdout);
// printf("access test: %p\n",systemT->outputs[0]); fflush(stdout);
/* Get and add the signals from the Ruby value. */
for(long i=0; i< num; ++i) {
SignalI sig;
// show_access(systemT->outputs,old_num+i);
value_to_rcsim(SignalIS,rb_ary_entry(sigVs,i),sig);
systemT->outputs[old_num + i] = sig;
}
return systemTV;
}
|