z_status zp_parser::parse_item(void*& p_item, ctext item_entry_name ) { //ZTF; z_status status; const zp_factory* ie=find_item(item_entry_name); if(ie==0) return zs_no_entry_for_item; void* obj=ie->create_obj(); context_set_root(obj,ie,0); reset_results(); status=_process_template(zp_mode_parse_input); if(status==zs_matched) { ZT("==========ITEM[%s] MATCHED, CREATING=====\n",item_entry_name); index_reset(); context_get_current_template_parser().index_reset(); reset_results(); status=_process_template(zp_mode_parse_create); p_item=obj; } return status; }
z_status zp_parser::parse_template( ctext tmpl) { z_status status; //_append_mode=false; //TODO this is UGLY! reset_results(); context_set_root(0,0,tmpl); status=_process_template(zp_mode_parse_input); return status; /* if(status==zs_matched) { Z_ASSERT(0); //void* obj=new void_generic(tmpl); Z_ASSERT(0); //context_set_root(obj,0,0); ZT("==========TEMPLATE[%s] MATCHED, CREATING=====\n",tmpl); index_reset(); context_get_current_template_parser().index_reset(); reset_results(); status=_process_template(zp_mode_parse_create); Z_ASSERT(0); //p_item=obj; } return status; */ }
void handle_run(ThroughputCommand & an_instance) { if( an_instance.command == THROUGHPUT_COMMAND_START) { logres = true; reset_results(); interval_data_length_ = an_instance.data_length; demand_ = an_instance.current_publisher_effort; ACE_High_Res_Timer::gettimeofday_hr ().to_usec (first_time_); } if( an_instance.command == THROUGHPUT_COMMAND_COMPLETE) { logres = false; ACE_UINT64 last_time; ACE_High_Res_Timer::gettimeofday_hr ().to_usec (last_time); interval_time_ = (last_time - first_time_); ++run_; show_results(); if(an_instance.current_publisher_effort == an_instance.final_publisher_effort) { shutdown_flag = true; } } }
void sql_stream::check_binds() { if (m_bExecuted && m_nArgPos==(int)m_vars.size()) { // reset the query for another execution reset_results(); } if (m_nArgPos>=(int)m_vars.size()) throw db_excpt(m_queryBuf, "Mismatch between bound variables and query"); }
z_status zp_parser::parse_obj(void* p_obj,const zp_factory* factory,ctext data) { z_status status; Z_ASSERT(p_obj); set_source(data,strlen(data)); reset_results(); factory->clear_all_vars(p_obj); context_set_root(p_obj,factory,0); status=_process_template(zp_mode_parse_input); if(status==zs_matched) { ZT("==========ITEM[%s] MATCHED, CREATING=====\n",factory->get_name()); index_reset(); context_get_current_template_parser().index_reset(); reset_results(); status=_process_template(zp_mode_parse_create); } return status; }
void write_one (void) { if ((number_of_msg_ == 0) && (datalen_idx_ == 0)) { ACE_High_Res_Timer::gettimeofday_hr ().to_usec (start_time_test_); } // First message sent always, next messages only as previous sent message // is received back. if ((number_of_msg_ == 0) || received_) { // All messages send, stop timer. if ((iterations_ != 0) && (number_of_msg_ >= iterations_ )) { if (datalen_idx_ >= (nr_of_runs_ - 1)) { stop(); calc_results(); ACE_High_Res_Timer::gettimeofday_hr ().to_usec (end_time_test_); ACE_Reactor::instance ()->end_reactor_event_loop (); } else { calc_results(); reset_results(); ++datalen_idx_; datalen_ = datalen_range_[datalen_idx_]; instance_->data.length (datalen_); } } else { try { instance_->seq_num = number_of_msg_; // Keep last sent seq_num, to control if message is sent back. seq_num_ = number_of_msg_; received_ = false; ACE_High_Res_Timer::gettimeofday_hr ().to_usec (start_time_); test_data_writer_->write (*instance_, DDS_HANDLE_NIL); } catch (const ::CORBA::Exception& ) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Internal Error ") ACE_TEXT ("while writing sample with sequence_number <%u>.\n"), instance_->seq_num)); } ++number_of_msg_; } } }
bool write_one (void) { // First message sent always, next messages only as previous sent message // is received back. if ((number_of_msg_ == 0) || received_) { // All messages send, stop timer. if ((iterations_ != 0) && (number_of_msg_ >= iterations_ )) { if (datalen_idx_ >= (nr_of_runs_ - 1)) { calc_results(); return true; } else { calc_results(); reset_results(); ++datalen_idx_; datalen_ = datalen_range_[datalen_idx_]; instance_->data.length (datalen_); } } else { try { instance_->seq_num = number_of_msg_; // Keep last sent seq_num, to control if message is sent back. seq_num_ = number_of_msg_; received_ = false; RTINtpTime_setZero(&start_time_); timer->getTime(timer, &start_time_); test_data_writer_->write (*instance_, DDS_HANDLE_NIL); } catch (const CORBA::Exception& ) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Internal Error ") ACE_TEXT ("while writing sample with sequence_number <%u>.\n"), instance_->seq_num)); } ++number_of_msg_; } } return false; }
z_status zp_parser::output_default_template(z_file* fp,ctext tmpl) { z_status status; //_append_mode=false; ZT("==========TEMPLATE[%s] OUTPUT DEFAULT=====\n",tmpl); _file_out=fp; reset_results(); context_set_root(0,0,tmpl); status=_process_template(zp_mode_output_default); if(status<zs_fatal_error) status=zs_ok; return status; }
static int cmd_dyno_run(UNUSED(int argc), UNUSED(char **argv)) { ecu_data *ep; int speed; /* measured speed */ int rpm; /* measured rpm */ int rpm_previous = 0; /* previous rpm */ unsigned long tv0, tv; /* measuring time */ int elapsed; /* elapsed time (ms) */ int i, length = 0; /* length of printed string */ int nb = 0; /* number of measures */ //make sure we're connected ! if (global_l3_conn == NULL) { fprintf(stderr, FLFMT "No active L3 connection !\n", FL); return CMD_FAILED; } /* Check mass */ if (dyno_get_mass() <= 0) { printf("The mass of the vehicle has not been set, please set the mass first\n"); return CMD_OK; } /* Check mass */ if (dyno_loss_done <= 0) { printf("The loss determination has not been done, please use command loss or setloss first\n"); return CMD_OK; } /* Show instructions */ printf("To proceed dyno, do a full-throttle acceleration run\n"); printf("in a single gear from a rolling start.\n"); printf("The run ends automatically when RPM begins to decrease.\n"); printf("\n"); wait_enter("Press ENTER when ready... "); printf("\n"); /* Reset data */ dyno_reset(); /* dyno data */ reset_results(); tv0=diag_os_getms(); /* initial time */ ep = ecu_info; /* ECU data */ /* Measures */ while (1) { /* measure RPM */ rpm = RUN_MEASURE_DATA(RPM_PID, ep); if (rpm < 0) { printf("invalid RPM !\n"); break; } if (rpm_previous == 0) { /* this is the first measure */ printf("Starting dyno (min rpm=%d)\n", rpm); printf("Number of measures : "); } /* if RPM starts decreasing, stop run */ if (rpm < rpm_previous) { printf(" (max rpm=%d)\n", rpm_previous); break; } /* get elapsed time */ tv=diag_os_getms(); elapsed = (int) (tv - tv0); /* Add measure */ dyno_add_measure(elapsed, rpm); /* Display number of measures */ nb++; for (i = 0; i < length; i++) { printf(""); } length = printf("%d (%d RPM) ", nb, rpm); fflush(stdout); /* force displaying now (may slow down dyno...) */ rpm_previous = rpm; } /* measure gear ratio */ rpm_previous = rpm; speed = RUN_MEASURE_DATA(SPEED_PID, ep); /* m/s * 1000 */ rpm = RUN_MEASURE_DATA(RPM_PID, ep); if ((speed < 0) || (rpm < 0)) { printf("invalid RUN_MEASURE_DATA result !\n"); return CMD_FAILED; } dyno_set_gear(speed, (rpm_previous + rpm) / 2); /* display dyno time */ tv=diag_os_getms(); elapsed = (int) (tv - tv0); printf("Dyno time : %ds.\n", (elapsed/1000)); printf("\n"); return CMD_OK; }
static int cmd_dyno_loss(UNUSED(int argc), UNUSED(char **argv)) { ecu_data *ep; int speed; /* measured speed */ int speed_previous = 0; /* previous speed */ unsigned long tv0, tv; int elapsed; /* elapsed time */ int i, length; /* length of printed string */ int nb = 0; /* number of measures */ //make sure we have an L3 connection first ! if (global_l3_conn == NULL) { fprintf(stderr, FLFMT "Error: there must be an active L3 connection!\n", FL); return CMD_FAILED; } /* Check mass */ if (dyno_get_mass() <= 0) { printf("The mass of the vehicle has not been set, please set the mass first\n"); return CMD_OK; } /* Show instructions */ printf("To proceed loss determination, reach the maximum speed you will reach during\n"); printf("dyno, then push in the clutch, leaving the car in gear. Allow the car to coast\n"); printf("down to the lowest possible speed. Press ENTER when finished.\n"); printf("\n"); wait_enter("Press ENTER when ready... "); printf("\n"); /* Reset data */ dyno_loss_reset(); /* dyno data */ reset_results(); tv0=diag_os_getms(); /* initial time */ ep = ecu_info; /* ECU data */ /* exclude 1st measure */ speed_previous = LOSS_MEASURE_DATA(SPEED_PID, ep); /* m/s * 1000 */ if (speed_previous < 0) { printf("invalid speed !\n"); return CMD_FAILED; } printf("Starting loss determination (max speed=%d km/h)\n", SPEED_ISO_TO_KMH(speed_previous)); printf("Number of measures : 0"); length = 1; /* loss measures */ while (1) { /* measure speed */ speed = LOSS_MEASURE_DATA(SPEED_PID, ep); /* m/s * 1000 */ if (speed < 0) { printf("invalid speed !\n"); break; } /* get elapsed time */ tv=diag_os_getms(); elapsed = (int) (tv - tv0); if (speed < speed_previous) { /* Add measure */ dyno_loss_add_measure(elapsed, speed); nb++; speed_previous = speed; } if (pressed_enter() != 0) { /* ENTER pressed : stops */ printf("Number of measures : %d (min speed=%d km/h)\n", nb, SPEED_ISO_TO_KMH(speed)); break; } if (speed_previous == speed) { /* measure added: update display */ /* erase previous measure */ for (i = 0; i < length; i++) { printf(""); } /* Display new measure */ length = printf("%d (speed=%d km/h, d=%5.5f, f=%4.2f)\t ", nb, SPEED_ISO_TO_KMH(speed), dyno_loss_get_d(), dyno_loss_get_f()); fflush(stdout); /* force displaying now (may slow down dyno...) */ } } /* display dyno time */ //elapsed = MILLIS(tv) - MILLIS(tv0); tv=diag_os_getms(); elapsed= (int) (tv - tv0); printf("d=%5.5f, f=%4.2f\n", dyno_loss_get_d(), dyno_loss_get_f()); printf("Loss determination time : %ds.\n", (elapsed/1000)); printf("\n"); /* now dyno loss has been done */ dyno_loss_done = 1; return CMD_OK; }