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; } |