542 /***********************************************************************/ |
542 /***********************************************************************/ |
543 /***********************************************************************/ |
543 /***********************************************************************/ |
544 /***********************************************************************/ |
544 /***********************************************************************/ |
545 /***********************************************************************/ |
545 /***********************************************************************/ |
546 |
546 |
547 #define MILLISECOND 1000000 |
547 #define MILLISECOND 1 |
548 #define SECOND 1000 * MILLISECOND |
548 #define SECOND 1000 * MILLISECOND |
549 |
549 |
550 unsigned long long calculate_time(symbol_c *symbol) { |
550 unsigned long long calculate_time(symbol_c *symbol) { |
551 if (NULL == symbol) return 0; |
551 if (NULL == symbol) return 0; |
552 |
552 |
565 |
565 |
566 if (NULL != interval) { |
566 if (NULL != interval) { |
567 /* SYM_REF5(interval_c, days, hours, minutes, seconds, milliseconds) */ |
567 /* SYM_REF5(interval_c, days, hours, minutes, seconds, milliseconds) */ |
568 unsigned long long int time_ull = 0; |
568 unsigned long long int time_ull = 0; |
569 long double time_ld = 0; |
569 long double time_ld = 0; |
570 /* |
|
571 const unsigned long long int MILLISECOND = 1000000; |
|
572 const unsigned long long int SECOND = 1000 * MILLISECOND |
|
573 */ |
|
574 |
570 |
575 if (NULL != interval->milliseconds) { |
571 if (NULL != interval->milliseconds) { |
576 if (VALID_CVALUE( int64, interval->milliseconds) && GET_CVALUE( int64, interval->milliseconds) < 0) ERROR; // interval elements should always be positive! |
572 if (VALID_CVALUE( int64, interval->milliseconds) && GET_CVALUE( int64, interval->milliseconds) < 0) ERROR; // interval elements should always be positive! |
577 if (VALID_CVALUE( int64, interval->milliseconds)) time_ull += GET_CVALUE( int64, interval->milliseconds) * MILLISECOND; |
573 if (VALID_CVALUE( int64, interval->milliseconds)) time_ull += GET_CVALUE( int64, interval->milliseconds) * MILLISECOND; |
578 else if (VALID_CVALUE(uint64, interval->milliseconds)) time_ull += GET_CVALUE(uint64, interval->milliseconds) * MILLISECOND; |
574 else if (VALID_CVALUE(uint64, interval->milliseconds)) time_ull += GET_CVALUE(uint64, interval->milliseconds) * MILLISECOND; |
2668 generate_c_config_c generate_c_config(&config_s4o, &config_incl_s4o); |
2664 generate_c_config_c generate_c_config(&config_s4o, &config_incl_s4o); |
2669 symbol->accept(generate_c_config); |
2665 symbol->accept(generate_c_config); |
2670 |
2666 |
2671 config_s4o.print("unsigned long long common_ticktime__ = "); |
2667 config_s4o.print("unsigned long long common_ticktime__ = "); |
2672 config_s4o.print_long_long_integer(common_ticktime); |
2668 config_s4o.print_long_long_integer(common_ticktime); |
|
2669 config_s4o.print(" * "); |
|
2670 config_s4o.print_long_long_integer(1000000 / MILLISECOND); |
2673 config_s4o.print("; /*ns*/\n"); |
2671 config_s4o.print("; /*ns*/\n"); |
2674 config_s4o.print("unsigned long greatest_tick_count__ = (unsigned long)"); |
2672 config_s4o.print("unsigned long greatest_tick_count__ = (unsigned long)"); |
2675 config_s4o.print_long_integer(calculate_common_ticktime.get_greatest_tick_count()); |
2673 config_s4o.print_long_integer(calculate_common_ticktime.get_greatest_tick_count()); |
2676 config_s4o.print("; /*tick*/\n"); |
2674 config_s4o.print("; /*tick*/\n"); |
2677 |
2675 |