66 #ifndef BUILD_SETTINGS_FAST_BUILD
192 #ifndef BUILD_SETTINGS_FAST_BUILD
210 #ifndef BUILD_SETTINGS_FAST_BUILD
470 #ifndef BUILD_SETTINGS_FAST_BUILD
693 #ifndef BUILD_SETTINGS_FAST_BUILD
965 #ifndef BUILD_SETTINGS_FAST_BUILD
1245 #ifndef BUILD_SETTINGS_FAST_BUILD
1388 #ifndef BUILD_SETTINGS_FAST_BUILD
1464 #ifndef BUILD_SETTINGS_FAST_BUILD
1571 #ifndef BUILD_SETTINGS_FAST_BUILD
1875 #ifndef BUILD_SETTINGS_FAST_BUILD
2079 #ifndef BUILD_SETTINGS_FAST_BUILD
2490 #ifndef BUILD_SETTINGS_FAST_BUILD
2663 #ifndef BUILD_SETTINGS_FAST_BUILD
2670 TF_copy_u8(&packet[40], (uint8_t)events[offset+0].group);
2672 TF_copy_u32(&packet[45], events[offset+0].time.total_cycle);
2673 TF_copy_u8(&packet[49], (uint8_t)events[offset+0].time.step);
2675 TF_copy_u8(&packet[54], (uint8_t)events[offset+1].group);
2677 TF_copy_u32(&packet[59], events[offset+1].time.total_cycle);
2678 TF_copy_u8(&packet[63], (uint8_t)events[offset+1].time.step);
2680 TF_copy_u8(&packet[68], (uint8_t)events[offset+2].group);
2682 TF_copy_u32(&packet[73], events[offset+2].time.total_cycle);
2683 TF_copy_u8(&packet[77], (uint8_t)events[offset+2].time.step);
2685 TF_copy_u8(&packet[82], (uint8_t)events[offset+3].group);
2687 TF_copy_u32(&packet[87], events[offset+3].time.total_cycle);
2688 TF_copy_u8(&packet[91], (uint8_t)events[offset+3].time.step);
2690 TF_copy_u8(&packet[96], (uint8_t)events[offset+4].group);
2692 TF_copy_u32(&packet[101], events[offset+4].time.total_cycle);
2693 TF_copy_u8(&packet[105], (uint8_t)events[offset+4].time.step);
2695 TF_copy_u8(&packet[110], (uint8_t)events[offset+5].group);
2696 TF_copy_u32(&packet[111], events[offset+5].local);
2697 TF_copy_u32(&packet[115], events[offset+5].time.total_cycle);
2698 TF_copy_u8(&packet[119], (uint8_t)events[offset+5].time.step);
2700 TF_copy_u8(&packet[124], (uint8_t)events[offset+6].group);
2701 TF_copy_u32(&packet[125], events[offset+6].local);
2702 TF_copy_u32(&packet[129], events[offset+6].time.total_cycle);
2703 TF_copy_u8(&packet[133], (uint8_t)events[offset+6].time.step);
2705 TF_copy_u8(&packet[138], (uint8_t)events[offset+7].group);
2706 TF_copy_u32(&packet[139], events[offset+7].local);
2707 TF_copy_u32(&packet[143], events[offset+7].time.total_cycle);
2708 TF_copy_u8(&packet[147], (uint8_t)events[offset+7].time.step);
2710 TF_copy_u8(&packet[152], (uint8_t)events[offset+8].group);
2711 TF_copy_u32(&packet[153], events[offset+8].local);
2712 TF_copy_u32(&packet[157], events[offset+8].time.total_cycle);
2713 TF_copy_u8(&packet[161], (uint8_t)events[offset+8].time.step);
2715 TF_copy_u8(&packet[166], (uint8_t)events[offset+9].group);
2716 TF_copy_u32(&packet[167], events[offset+9].local);
2717 TF_copy_u32(&packet[171], events[offset+9].time.total_cycle);
2718 TF_copy_u8(&packet[175], (uint8_t)events[offset+9].time.step);
2720 TF_copy_u8(&packet[180], (uint8_t)events[offset+10].group);
2721 TF_copy_u32(&packet[181], events[offset+10].local);
2722 TF_copy_u32(&packet[185], events[offset+10].time.total_cycle);
2723 TF_copy_u8(&packet[189], (uint8_t)events[offset+10].time.step);
2724 TF_copy_u32(&packet[190], events[offset+10].note);
2725 TF_copy_u8(&packet[194], (uint8_t)events[offset+11].group);
2726 TF_copy_u32(&packet[195], events[offset+11].local);
2727 TF_copy_u32(&packet[199], events[offset+11].time.total_cycle);
2728 TF_copy_u8(&packet[203], (uint8_t)events[offset+11].time.step);
2729 TF_copy_u32(&packet[204], events[offset+11].note);
2730 TF_copy_u8(&packet[208], (uint8_t)events[offset+12].group);
2731 TF_copy_u32(&packet[209], events[offset+12].local);
2732 TF_copy_u32(&packet[213], events[offset+12].time.total_cycle);
2733 TF_copy_u8(&packet[217], (uint8_t)events[offset+12].time.step);
2734 TF_copy_u32(&packet[218], events[offset+12].note);
2735 TF_copy_u8(&packet[222], (uint8_t)events[offset+13].group);
2736 TF_copy_u32(&packet[223], events[offset+13].local);
2737 TF_copy_u32(&packet[227], events[offset+13].time.total_cycle);
2738 TF_copy_u8(&packet[231], (uint8_t)events[offset+13].time.step);
2739 TF_copy_u32(&packet[232], events[offset+13].note);
2740 TF_copy_u8(&packet[236], (uint8_t)events[offset+14].group);
2741 TF_copy_u32(&packet[237], events[offset+14].local);
2742 TF_copy_u32(&packet[241], events[offset+14].time.total_cycle);
2743 TF_copy_u8(&packet[245], (uint8_t)events[offset+14].time.step);
2744 TF_copy_u32(&packet[246], events[offset+14].note);
2745 TF_copy_u8(&packet[250], (uint8_t)events[offset+15].group);
2746 TF_copy_u32(&packet[251], events[offset+15].local);
2747 TF_copy_u32(&packet[255], events[offset+15].time.total_cycle);
2748 TF_copy_u8(&packet[259], (uint8_t)events[offset+15].time.step);
2749 TF_copy_u32(&packet[260], events[offset+15].note);
2750 TF_copy_u8(&packet[264], (uint8_t)events[offset+16].group);
2751 TF_copy_u32(&packet[265], events[offset+16].local);
2752 TF_copy_u32(&packet[269], events[offset+16].time.total_cycle);
2753 TF_copy_u8(&packet[273], (uint8_t)events[offset+16].time.step);
2754 TF_copy_u32(&packet[274], events[offset+16].note);
2755 TF_copy_u8(&packet[278], (uint8_t)events[offset+17].group);
2756 TF_copy_u32(&packet[279], events[offset+17].local);
2757 TF_copy_u32(&packet[283], events[offset+17].time.total_cycle);
2758 TF_copy_u8(&packet[287], (uint8_t)events[offset+17].time.step);
2759 TF_copy_u32(&packet[288], events[offset+17].note);
2760 TF_copy_u8(&packet[292], (uint8_t)events[offset+18].group);
2761 TF_copy_u32(&packet[293], events[offset+18].local);
2762 TF_copy_u32(&packet[297], events[offset+18].time.total_cycle);
2763 TF_copy_u8(&packet[301], (uint8_t)events[offset+18].time.step);
2764 TF_copy_u32(&packet[302], events[offset+18].note);
2765 TF_copy_u8(&packet[306], (uint8_t)events[offset+19].group);
2766 TF_copy_u32(&packet[307], events[offset+19].local);
2767 TF_copy_u32(&packet[311], events[offset+19].time.total_cycle);
2768 TF_copy_u8(&packet[315], (uint8_t)events[offset+19].time.step);
2769 TF_copy_u32(&packet[316], events[offset+19].note);
2770 TF_copy_u8(&packet[320], (uint8_t)events[offset+20].group);
2771 TF_copy_u32(&packet[321], events[offset+20].local);
2772 TF_copy_u32(&packet[325], events[offset+20].time.total_cycle);
2773 TF_copy_u8(&packet[329], (uint8_t)events[offset+20].time.step);
2774 TF_copy_u32(&packet[330], events[offset+20].note);
2775 TF_copy_u8(&packet[334], (uint8_t)events[offset+21].group);
2776 TF_copy_u32(&packet[335], events[offset+21].local);
2777 TF_copy_u32(&packet[339], events[offset+21].time.total_cycle);
2778 TF_copy_u8(&packet[343], (uint8_t)events[offset+21].time.step);
2779 TF_copy_u32(&packet[344], events[offset+21].note);
2780 TF_copy_u8(&packet[348], (uint8_t)events[offset+22].group);
2781 TF_copy_u32(&packet[349], events[offset+22].local);
2782 TF_copy_u32(&packet[353], events[offset+22].time.total_cycle);
2783 TF_copy_u8(&packet[357], (uint8_t)events[offset+22].time.step);
2784 TF_copy_u32(&packet[358], events[offset+22].note);
2785 TF_copy_u8(&packet[362], (uint8_t)events[offset+23].group);
2786 TF_copy_u32(&packet[363], events[offset+23].local);
2787 TF_copy_u32(&packet[367], events[offset+23].time.total_cycle);
2788 TF_copy_u8(&packet[371], (uint8_t)events[offset+23].time.step);
2789 TF_copy_u32(&packet[372], events[offset+23].note);
2790 TF_copy_u8(&packet[376], (uint8_t)events[offset+24].group);
2791 TF_copy_u32(&packet[377], events[offset+24].local);
2792 TF_copy_u32(&packet[381], events[offset+24].time.total_cycle);
2793 TF_copy_u8(&packet[385], (uint8_t)events[offset+24].time.step);
2794 TF_copy_u32(&packet[386], events[offset+24].note);
2795 TF_copy_u8(&packet[390], (uint8_t)events[offset+25].group);
2796 TF_copy_u32(&packet[391], events[offset+25].local);
2797 TF_copy_u32(&packet[395], events[offset+25].time.total_cycle);
2798 TF_copy_u8(&packet[399], (uint8_t)events[offset+25].time.step);
2799 TF_copy_u32(&packet[400], events[offset+25].note);
2800 TF_copy_u8(&packet[404], (uint8_t)events[offset+26].group);
2801 TF_copy_u32(&packet[405], events[offset+26].local);
2802 TF_copy_u32(&packet[409], events[offset+26].time.total_cycle);
2803 TF_copy_u8(&packet[413], (uint8_t)events[offset+26].time.step);
2804 TF_copy_u32(&packet[414], events[offset+26].note);
2805 TF_copy_u8(&packet[418], (uint8_t)events[offset+27].group);
2806 TF_copy_u32(&packet[419], events[offset+27].local);
2807 TF_copy_u32(&packet[423], events[offset+27].time.total_cycle);
2808 TF_copy_u8(&packet[427], (uint8_t)events[offset+27].time.step);
2809 TF_copy_u32(&packet[428], events[offset+27].note);
2825 #ifndef BUILD_SETTINGS_FAST_BUILD
2831 TF_copy_u8(&packet[38], (uint8_t)logs[log_orders[offset+0]].event.group);
2832 TF_copy_u32(&packet[39], logs[log_orders[offset+0]].event.local);
2833 TF_copy_u32(&packet[43], logs[log_orders[offset+0]].event.time.total_cycle);
2834 TF_copy_u8(&packet[47], (uint8_t)logs[log_orders[offset+0]].event.time.step);
2835 TF_copy_u32(&packet[48], logs[log_orders[offset+0]].event.note);
2836 TF_copy_u16(&packet[52], logs[log_orders[offset+0]].count);
2837 TF_copy_u32(&packet[54], logs[log_orders[offset+0]].delta_record_time.total_cycle);
2838 TF_copy_u8(&packet[58], (uint8_t)logs[log_orders[offset+0]].delta_record_time.step);
2839 TF_copy_u8(&packet[59], (uint8_t)logs[log_orders[offset+1]].event.group);
2840 TF_copy_u32(&packet[60], logs[log_orders[offset+1]].event.local);
2841 TF_copy_u32(&packet[64], logs[log_orders[offset+1]].event.time.total_cycle);
2842 TF_copy_u8(&packet[68], (uint8_t)logs[log_orders[offset+1]].event.time.step);
2843 TF_copy_u32(&packet[69], logs[log_orders[offset+1]].event.note);
2844 TF_copy_u16(&packet[73], logs[log_orders[offset+1]].count);
2845 TF_copy_u32(&packet[75], logs[log_orders[offset+1]].delta_record_time.total_cycle);
2846 TF_copy_u8(&packet[79], (uint8_t)logs[log_orders[offset+1]].delta_record_time.step);
2847 TF_copy_u8(&packet[80], (uint8_t)logs[log_orders[offset+2]].event.group);
2848 TF_copy_u32(&packet[81], logs[log_orders[offset+2]].event.local);
2849 TF_copy_u32(&packet[85], logs[log_orders[offset+2]].event.time.total_cycle);
2850 TF_copy_u8(&packet[89], (uint8_t)logs[log_orders[offset+2]].event.time.step);
2851 TF_copy_u32(&packet[90], logs[log_orders[offset+2]].event.note);
2852 TF_copy_u16(&packet[94], logs[log_orders[offset+2]].count);
2853 TF_copy_u32(&packet[96], logs[log_orders[offset+2]].delta_record_time.total_cycle);
2854 TF_copy_u8(&packet[100], (uint8_t)logs[log_orders[offset+2]].delta_record_time.step);
2855 TF_copy_u8(&packet[101], (uint8_t)logs[log_orders[offset+3]].event.group);
2856 TF_copy_u32(&packet[102], logs[log_orders[offset+3]].event.local);
2857 TF_copy_u32(&packet[106], logs[log_orders[offset+3]].event.time.total_cycle);
2858 TF_copy_u8(&packet[110], (uint8_t)logs[log_orders[offset+3]].event.time.step);
2859 TF_copy_u32(&packet[111], logs[log_orders[offset+3]].event.note);
2860 TF_copy_u16(&packet[115], logs[log_orders[offset+3]].count);
2861 TF_copy_u32(&packet[117], logs[log_orders[offset+3]].delta_record_time.total_cycle);
2862 TF_copy_u8(&packet[121], (uint8_t)logs[log_orders[offset+3]].delta_record_time.step);
2863 TF_copy_u8(&packet[122], (uint8_t)logs[log_orders[offset+4]].event.group);
2864 TF_copy_u32(&packet[123], logs[log_orders[offset+4]].event.local);
2865 TF_copy_u32(&packet[127], logs[log_orders[offset+4]].event.time.total_cycle);
2866 TF_copy_u8(&packet[131], (uint8_t)logs[log_orders[offset+4]].event.time.step);
2867 TF_copy_u32(&packet[132], logs[log_orders[offset+4]].event.note);
2868 TF_copy_u16(&packet[136], logs[log_orders[offset+4]].count);
2869 TF_copy_u32(&packet[138], logs[log_orders[offset+4]].delta_record_time.total_cycle);
2870 TF_copy_u8(&packet[142], (uint8_t)logs[log_orders[offset+4]].delta_record_time.step);
2871 TF_copy_u8(&packet[143], (uint8_t)logs[log_orders[offset+5]].event.group);
2872 TF_copy_u32(&packet[144], logs[log_orders[offset+5]].event.local);
2873 TF_copy_u32(&packet[148], logs[log_orders[offset+5]].event.time.total_cycle);
2874 TF_copy_u8(&packet[152], (uint8_t)logs[log_orders[offset+5]].event.time.step);
2875 TF_copy_u32(&packet[153], logs[log_orders[offset+5]].event.note);
2876 TF_copy_u16(&packet[157], logs[log_orders[offset+5]].count);
2877 TF_copy_u32(&packet[159], logs[log_orders[offset+5]].delta_record_time.total_cycle);
2878 TF_copy_u8(&packet[163], (uint8_t)logs[log_orders[offset+5]].delta_record_time.step);
2879 TF_copy_u8(&packet[164], (uint8_t)logs[log_orders[offset+6]].event.group);
2880 TF_copy_u32(&packet[165], logs[log_orders[offset+6]].event.local);
2881 TF_copy_u32(&packet[169], logs[log_orders[offset+6]].event.time.total_cycle);
2882 TF_copy_u8(&packet[173], (uint8_t)logs[log_orders[offset+6]].event.time.step);
2883 TF_copy_u32(&packet[174], logs[log_orders[offset+6]].event.note);
2884 TF_copy_u16(&packet[178], logs[log_orders[offset+6]].count);
2885 TF_copy_u32(&packet[180], logs[log_orders[offset+6]].delta_record_time.total_cycle);
2886 TF_copy_u8(&packet[184], (uint8_t)logs[log_orders[offset+6]].delta_record_time.step);
2887 TF_copy_u8(&packet[185], (uint8_t)logs[log_orders[offset+7]].event.group);
2888 TF_copy_u32(&packet[186], logs[log_orders[offset+7]].event.local);
2889 TF_copy_u32(&packet[190], logs[log_orders[offset+7]].event.time.total_cycle);
2890 TF_copy_u8(&packet[194], (uint8_t)logs[log_orders[offset+7]].event.time.step);
2891 TF_copy_u32(&packet[195], logs[log_orders[offset+7]].event.note);
2892 TF_copy_u16(&packet[199], logs[log_orders[offset+7]].count);
2893 TF_copy_u32(&packet[201], logs[log_orders[offset+7]].delta_record_time.total_cycle);
2894 TF_copy_u8(&packet[205], (uint8_t)logs[log_orders[offset+7]].delta_record_time.step);
2895 TF_copy_u8(&packet[206], (uint8_t)logs[log_orders[offset+8]].event.group);
2896 TF_copy_u32(&packet[207], logs[log_orders[offset+8]].event.local);
2897 TF_copy_u32(&packet[211], logs[log_orders[offset+8]].event.time.total_cycle);
2898 TF_copy_u8(&packet[215], (uint8_t)logs[log_orders[offset+8]].event.time.step);
2899 TF_copy_u32(&packet[216], logs[log_orders[offset+8]].event.note);
2900 TF_copy_u16(&packet[220], logs[log_orders[offset+8]].count);
2901 TF_copy_u32(&packet[222], logs[log_orders[offset+8]].delta_record_time.total_cycle);
2902 TF_copy_u8(&packet[226], (uint8_t)logs[log_orders[offset+8]].delta_record_time.step);
2903 TF_copy_u8(&packet[227], (uint8_t)logs[log_orders[offset+9]].event.group);
2904 TF_copy_u32(&packet[228], logs[log_orders[offset+9]].event.local);
2905 TF_copy_u32(&packet[232], logs[log_orders[offset+9]].event.time.total_cycle);
2906 TF_copy_u8(&packet[236], (uint8_t)logs[log_orders[offset+9]].event.time.step);
2907 TF_copy_u32(&packet[237], logs[log_orders[offset+9]].event.note);
2908 TF_copy_u16(&packet[241], logs[log_orders[offset+9]].count);
2909 TF_copy_u32(&packet[243], logs[log_orders[offset+9]].delta_record_time.total_cycle);
2910 TF_copy_u8(&packet[247], (uint8_t)logs[log_orders[offset+9]].delta_record_time.step);
2911 TF_copy_u8(&packet[248], (uint8_t)logs[log_orders[offset+10]].event.group);
2912 TF_copy_u32(&packet[249], logs[log_orders[offset+10]].event.local);
2913 TF_copy_u32(&packet[253], logs[log_orders[offset+10]].event.time.total_cycle);
2914 TF_copy_u8(&packet[257], (uint8_t)logs[log_orders[offset+10]].event.time.step);
2915 TF_copy_u32(&packet[258], logs[log_orders[offset+10]].event.note);
2916 TF_copy_u16(&packet[262], logs[log_orders[offset+10]].count);
2917 TF_copy_u32(&packet[264], logs[log_orders[offset+10]].delta_record_time.total_cycle);
2918 TF_copy_u8(&packet[268], (uint8_t)logs[log_orders[offset+10]].delta_record_time.step);
2919 TF_copy_u8(&packet[269], (uint8_t)logs[log_orders[offset+11]].event.group);
2920 TF_copy_u32(&packet[270], logs[log_orders[offset+11]].event.local);
2921 TF_copy_u32(&packet[274], logs[log_orders[offset+11]].event.time.total_cycle);
2922 TF_copy_u8(&packet[278], (uint8_t)logs[log_orders[offset+11]].event.time.step);
2923 TF_copy_u32(&packet[279], logs[log_orders[offset+11]].event.note);
2924 TF_copy_u16(&packet[283], logs[log_orders[offset+11]].count);
2925 TF_copy_u32(&packet[285], logs[log_orders[offset+11]].delta_record_time.total_cycle);
2926 TF_copy_u8(&packet[289], (uint8_t)logs[log_orders[offset+11]].delta_record_time.step);
2927 TF_copy_u8(&packet[290], (uint8_t)logs[log_orders[offset+12]].event.group);
2928 TF_copy_u32(&packet[291], logs[log_orders[offset+12]].event.local);
2929 TF_copy_u32(&packet[295], logs[log_orders[offset+12]].event.time.total_cycle);
2930 TF_copy_u8(&packet[299], (uint8_t)logs[log_orders[offset+12]].event.time.step);
2931 TF_copy_u32(&packet[300], logs[log_orders[offset+12]].event.note);
2932 TF_copy_u16(&packet[304], logs[log_orders[offset+12]].count);
2933 TF_copy_u32(&packet[306], logs[log_orders[offset+12]].delta_record_time.total_cycle);
2934 TF_copy_u8(&packet[310], (uint8_t)logs[log_orders[offset+12]].delta_record_time.step);
2935 TF_copy_u8(&packet[311], (uint8_t)logs[log_orders[offset+13]].event.group);
2936 TF_copy_u32(&packet[312], logs[log_orders[offset+13]].event.local);
2937 TF_copy_u32(&packet[316], logs[log_orders[offset+13]].event.time.total_cycle);
2938 TF_copy_u8(&packet[320], (uint8_t)logs[log_orders[offset+13]].event.time.step);
2939 TF_copy_u32(&packet[321], logs[log_orders[offset+13]].event.note);
2940 TF_copy_u16(&packet[325], logs[log_orders[offset+13]].count);
2941 TF_copy_u32(&packet[327], logs[log_orders[offset+13]].delta_record_time.total_cycle);
2942 TF_copy_u8(&packet[331], (uint8_t)logs[log_orders[offset+13]].delta_record_time.step);
2943 TF_copy_u8(&packet[332], (uint8_t)logs[log_orders[offset+14]].event.group);
2944 TF_copy_u32(&packet[333], logs[log_orders[offset+14]].event.local);
2945 TF_copy_u32(&packet[337], logs[log_orders[offset+14]].event.time.total_cycle);
2946 TF_copy_u8(&packet[341], (uint8_t)logs[log_orders[offset+14]].event.time.step);
2947 TF_copy_u32(&packet[342], logs[log_orders[offset+14]].event.note);
2948 TF_copy_u16(&packet[346], logs[log_orders[offset+14]].count);
2949 TF_copy_u32(&packet[348], logs[log_orders[offset+14]].delta_record_time.total_cycle);
2950 TF_copy_u8(&packet[352], (uint8_t)logs[log_orders[offset+14]].delta_record_time.step);
2951 TF_copy_u8(&packet[353], (uint8_t)logs[log_orders[offset+15]].event.group);
2952 TF_copy_u32(&packet[354], logs[log_orders[offset+15]].event.local);
2953 TF_copy_u32(&packet[358], logs[log_orders[offset+15]].event.time.total_cycle);
2954 TF_copy_u8(&packet[362], (uint8_t)logs[log_orders[offset+15]].event.time.step);
2955 TF_copy_u32(&packet[363], logs[log_orders[offset+15]].event.note);
2956 TF_copy_u16(&packet[367], logs[log_orders[offset+15]].count);
2957 TF_copy_u32(&packet[369], logs[log_orders[offset+15]].delta_record_time.total_cycle);
2958 TF_copy_u8(&packet[373], (uint8_t)logs[log_orders[offset+15]].delta_record_time.step);
2959 TF_copy_u8(&packet[374], (uint8_t)logs[log_orders[offset+16]].event.group);
2960 TF_copy_u32(&packet[375], logs[log_orders[offset+16]].event.local);
2961 TF_copy_u32(&packet[379], logs[log_orders[offset+16]].event.time.total_cycle);
2962 TF_copy_u8(&packet[383], (uint8_t)logs[log_orders[offset+16]].event.time.step);
2963 TF_copy_u32(&packet[384], logs[log_orders[offset+16]].event.note);
2964 TF_copy_u16(&packet[388], logs[log_orders[offset+16]].count);
2965 TF_copy_u32(&packet[390], logs[log_orders[offset+16]].delta_record_time.total_cycle);
2966 TF_copy_u8(&packet[394], (uint8_t)logs[log_orders[offset+16]].delta_record_time.step);
2967 TF_copy_u8(&packet[395], (uint8_t)logs[log_orders[offset+17]].event.group);
2968 TF_copy_u32(&packet[396], logs[log_orders[offset+17]].event.local);
2969 TF_copy_u32(&packet[400], logs[log_orders[offset+17]].event.time.total_cycle);
2970 TF_copy_u8(&packet[404], (uint8_t)logs[log_orders[offset+17]].event.time.step);
2971 TF_copy_u32(&packet[405], logs[log_orders[offset+17]].event.note);
2972 TF_copy_u16(&packet[409], logs[log_orders[offset+17]].count);
2973 TF_copy_u32(&packet[411], logs[log_orders[offset+17]].delta_record_time.total_cycle);
2974 TF_copy_u8(&packet[415], (uint8_t)logs[log_orders[offset+17]].delta_record_time.step);
2985 #ifndef BUILD_SETTINGS_FAST_BUILD
3031 #ifndef BUILD_SETTINGS_FAST_BUILD
3034 TF_copy_u8(&packet[29], (uint8_t)rules[0 + offset].settings.event.group);
3035 TF_copy_u32(&packet[30], rules[0 + offset].settings.event.local);
3037 TF_copy_u16(&packet[35], rules[0 + offset].settings.condition.count_threshold);
3038 TF_copy_u32(&packet[37], rules[0 + offset].settings.condition.time_threshold_ms);
3039 TF_copy_u16(&packet[41], (uint16_t)rules[0 + offset].settings.deploy_bct_id);
3040 TF_copy_u16(&packet[43], rules[0 + offset].counter);
3041 TF_copy_u32(&packet[45], (uint32_t)rules[0 + offset].last_event_time.total_cycle);
3042 TF_copy_u8(&packet[49], (uint8_t)rules[1 + offset].settings.event.group);
3043 TF_copy_u32(&packet[50], rules[1 + offset].settings.event.local);
3045 TF_copy_u16(&packet[55], rules[1 + offset].settings.condition.count_threshold);
3046 TF_copy_u32(&packet[57], rules[1 + offset].settings.condition.time_threshold_ms);
3047 TF_copy_u16(&packet[61], (uint16_t)rules[1 + offset].settings.deploy_bct_id);
3048 TF_copy_u16(&packet[63], rules[1 + offset].counter);
3049 TF_copy_u32(&packet[65], (uint32_t)rules[1 + offset].last_event_time.total_cycle);
3050 TF_copy_u8(&packet[69], (uint8_t)rules[2 + offset].settings.event.group);
3051 TF_copy_u32(&packet[70], rules[2 + offset].settings.event.local);
3053 TF_copy_u16(&packet[75], rules[2 + offset].settings.condition.count_threshold);
3054 TF_copy_u32(&packet[77], rules[2 + offset].settings.condition.time_threshold_ms);
3055 TF_copy_u16(&packet[81], (uint16_t)rules[2 + offset].settings.deploy_bct_id);
3056 TF_copy_u16(&packet[83], rules[2 + offset].counter);
3057 TF_copy_u32(&packet[85], (uint32_t)rules[2 + offset].last_event_time.total_cycle);
3058 TF_copy_u8(&packet[89], (uint8_t)rules[3 + offset].settings.event.group);
3059 TF_copy_u32(&packet[90], rules[3 + offset].settings.event.local);
3061 TF_copy_u16(&packet[95], rules[3 + offset].settings.condition.count_threshold);
3062 TF_copy_u32(&packet[97], rules[3 + offset].settings.condition.time_threshold_ms);
3063 TF_copy_u16(&packet[101], (uint16_t)rules[3 + offset].settings.deploy_bct_id);
3064 TF_copy_u16(&packet[103], rules[3 + offset].counter);
3065 TF_copy_u32(&packet[105], (uint32_t)rules[3 + offset].last_event_time.total_cycle);
3066 TF_copy_u8(&packet[109], (uint8_t)rules[4 + offset].settings.event.group);
3067 TF_copy_u32(&packet[110], rules[4 + offset].settings.event.local);
3069 TF_copy_u16(&packet[115], rules[4 + offset].settings.condition.count_threshold);
3070 TF_copy_u32(&packet[117], rules[4 + offset].settings.condition.time_threshold_ms);
3071 TF_copy_u16(&packet[121], (uint16_t)rules[4 + offset].settings.deploy_bct_id);
3072 TF_copy_u16(&packet[123], rules[4 + offset].counter);
3073 TF_copy_u32(&packet[125], (uint32_t)rules[4 + offset].last_event_time.total_cycle);
3074 TF_copy_u8(&packet[129], (uint8_t)rules[5 + offset].settings.event.group);
3075 TF_copy_u32(&packet[130], rules[5 + offset].settings.event.local);
3077 TF_copy_u16(&packet[135], rules[5 + offset].settings.condition.count_threshold);
3078 TF_copy_u32(&packet[137], rules[5 + offset].settings.condition.time_threshold_ms);
3079 TF_copy_u16(&packet[141], (uint16_t)rules[5 + offset].settings.deploy_bct_id);
3080 TF_copy_u16(&packet[143], rules[5 + offset].counter);
3081 TF_copy_u32(&packet[145], (uint32_t)rules[5 + offset].last_event_time.total_cycle);
3082 TF_copy_u8(&packet[149], (uint8_t)rules[6 + offset].settings.event.group);
3083 TF_copy_u32(&packet[150], rules[6 + offset].settings.event.local);
3085 TF_copy_u16(&packet[155], rules[6 + offset].settings.condition.count_threshold);
3086 TF_copy_u32(&packet[157], rules[6 + offset].settings.condition.time_threshold_ms);
3087 TF_copy_u16(&packet[161], (uint16_t)rules[6 + offset].settings.deploy_bct_id);
3088 TF_copy_u16(&packet[163], rules[6 + offset].counter);
3089 TF_copy_u32(&packet[165], (uint32_t)rules[6 + offset].last_event_time.total_cycle);
3090 TF_copy_u8(&packet[169], (uint8_t)rules[7 + offset].settings.event.group);
3091 TF_copy_u32(&packet[170], rules[7 + offset].settings.event.local);
3093 TF_copy_u16(&packet[175], rules[7 + offset].settings.condition.count_threshold);
3094 TF_copy_u32(&packet[177], rules[7 + offset].settings.condition.time_threshold_ms);
3095 TF_copy_u16(&packet[181], (uint16_t)rules[7 + offset].settings.deploy_bct_id);
3096 TF_copy_u16(&packet[183], rules[7 + offset].counter);
3097 TF_copy_u32(&packet[185], (uint32_t)rules[7 + offset].last_event_time.total_cycle);
3098 TF_copy_u8(&packet[189], (uint8_t)rules[8 + offset].settings.event.group);
3099 TF_copy_u32(&packet[190], rules[8 + offset].settings.event.local);
3101 TF_copy_u16(&packet[195], rules[8 + offset].settings.condition.count_threshold);
3102 TF_copy_u32(&packet[197], rules[8 + offset].settings.condition.time_threshold_ms);
3103 TF_copy_u16(&packet[201], (uint16_t)rules[8 + offset].settings.deploy_bct_id);
3104 TF_copy_u16(&packet[203], rules[8 + offset].counter);
3105 TF_copy_u32(&packet[205], (uint32_t)rules[8 + offset].last_event_time.total_cycle);
3106 TF_copy_u8(&packet[209], (uint8_t)rules[9 + offset].settings.event.group);
3107 TF_copy_u32(&packet[210], rules[9 + offset].settings.event.local);
3109 TF_copy_u16(&packet[215], rules[9 + offset].settings.condition.count_threshold);
3110 TF_copy_u32(&packet[217], rules[9 + offset].settings.condition.time_threshold_ms);
3111 TF_copy_u16(&packet[221], (uint16_t)rules[9 + offset].settings.deploy_bct_id);
3112 TF_copy_u16(&packet[223], rules[9 + offset].counter);
3113 TF_copy_u32(&packet[225], (uint32_t)rules[9 + offset].last_event_time.total_cycle);
3114 TF_copy_u8(&packet[229], (uint8_t)rules[10 + offset].settings.event.group);
3115 TF_copy_u32(&packet[230], rules[10 + offset].settings.event.local);
3117 TF_copy_u16(&packet[235], rules[10 + offset].settings.condition.count_threshold);
3118 TF_copy_u32(&packet[237], rules[10 + offset].settings.condition.time_threshold_ms);
3119 TF_copy_u16(&packet[241], (uint16_t)rules[10 + offset].settings.deploy_bct_id);
3120 TF_copy_u16(&packet[243], rules[10 + offset].counter);
3121 TF_copy_u32(&packet[245], (uint32_t)rules[10 + offset].last_event_time.total_cycle);
3122 TF_copy_u8(&packet[249], (uint8_t)rules[11 + offset].settings.event.group);
3123 TF_copy_u32(&packet[250], rules[11 + offset].settings.event.local);
3125 TF_copy_u16(&packet[255], rules[11 + offset].settings.condition.count_threshold);
3126 TF_copy_u32(&packet[257], rules[11 + offset].settings.condition.time_threshold_ms);
3127 TF_copy_u16(&packet[261], (uint16_t)rules[11 + offset].settings.deploy_bct_id);
3128 TF_copy_u16(&packet[263], rules[11 + offset].counter);
3129 TF_copy_u32(&packet[265], (uint32_t)rules[11 + offset].last_event_time.total_cycle);
3130 TF_copy_u8(&packet[269], (uint8_t)rules[12 + offset].settings.event.group);
3131 TF_copy_u32(&packet[270], rules[12 + offset].settings.event.local);
3133 TF_copy_u16(&packet[275], rules[12 + offset].settings.condition.count_threshold);
3134 TF_copy_u32(&packet[277], rules[12 + offset].settings.condition.time_threshold_ms);
3135 TF_copy_u16(&packet[281], (uint16_t)rules[12 + offset].settings.deploy_bct_id);
3136 TF_copy_u16(&packet[283], rules[12 + offset].counter);
3137 TF_copy_u32(&packet[285], (uint32_t)rules[12 + offset].last_event_time.total_cycle);
3138 TF_copy_u8(&packet[289], (uint8_t)rules[13 + offset].settings.event.group);
3139 TF_copy_u32(&packet[290], rules[13 + offset].settings.event.local);
3141 TF_copy_u16(&packet[295], rules[13 + offset].settings.condition.count_threshold);
3142 TF_copy_u32(&packet[297], rules[13 + offset].settings.condition.time_threshold_ms);
3143 TF_copy_u16(&packet[301], (uint16_t)rules[13 + offset].settings.deploy_bct_id);
3144 TF_copy_u16(&packet[303], rules[13 + offset].counter);
3145 TF_copy_u32(&packet[305], (uint32_t)rules[13 + offset].last_event_time.total_cycle);
3146 TF_copy_u8(&packet[309], (uint8_t)rules[14 + offset].settings.event.group);
3147 TF_copy_u32(&packet[310], rules[14 + offset].settings.event.local);
3149 TF_copy_u16(&packet[315], rules[14 + offset].settings.condition.count_threshold);
3150 TF_copy_u32(&packet[317], rules[14 + offset].settings.condition.time_threshold_ms);
3151 TF_copy_u16(&packet[321], (uint16_t)rules[14 + offset].settings.deploy_bct_id);
3152 TF_copy_u16(&packet[323], rules[14 + offset].counter);
3153 TF_copy_u32(&packet[325], (uint32_t)rules[14 + offset].last_event_time.total_cycle);
3154 TF_copy_u8(&packet[329], (uint8_t)rules[15 + offset].settings.event.group);
3155 TF_copy_u32(&packet[330], rules[15 + offset].settings.event.local);
3157 TF_copy_u16(&packet[335], rules[15 + offset].settings.condition.count_threshold);
3158 TF_copy_u32(&packet[337], rules[15 + offset].settings.condition.time_threshold_ms);
3159 TF_copy_u16(&packet[341], (uint16_t)rules[15 + offset].settings.deploy_bct_id);
3160 TF_copy_u16(&packet[343], rules[15 + offset].counter);
3161 TF_copy_u32(&packet[345], (uint32_t)rules[15 + offset].last_event_time.total_cycle);
3162 TF_copy_u8(&packet[349], (uint8_t)rules[16 + offset].settings.event.group);
3163 TF_copy_u32(&packet[350], rules[16 + offset].settings.event.local);
3165 TF_copy_u16(&packet[355], rules[16 + offset].settings.condition.count_threshold);
3166 TF_copy_u32(&packet[357], rules[16 + offset].settings.condition.time_threshold_ms);
3167 TF_copy_u16(&packet[361], (uint16_t)rules[16 + offset].settings.deploy_bct_id);
3168 TF_copy_u16(&packet[363], rules[16 + offset].counter);
3169 TF_copy_u32(&packet[365], (uint32_t)rules[16 + offset].last_event_time.total_cycle);
3170 TF_copy_u8(&packet[369], (uint8_t)rules[17 + offset].settings.event.group);
3171 TF_copy_u32(&packet[370], rules[17 + offset].settings.event.local);
3173 TF_copy_u16(&packet[375], rules[17 + offset].settings.condition.count_threshold);
3174 TF_copy_u32(&packet[377], rules[17 + offset].settings.condition.time_threshold_ms);
3175 TF_copy_u16(&packet[381], (uint16_t)rules[17 + offset].settings.deploy_bct_id);
3176 TF_copy_u16(&packet[383], rules[17 + offset].counter);
3177 TF_copy_u32(&packet[385], (uint32_t)rules[17 + offset].last_event_time.total_cycle);
3178 TF_copy_u8(&packet[389], (uint8_t)rules[18 + offset].settings.event.group);
3179 TF_copy_u32(&packet[390], rules[18 + offset].settings.event.local);
3181 TF_copy_u16(&packet[395], rules[18 + offset].settings.condition.count_threshold);
3182 TF_copy_u32(&packet[397], rules[18 + offset].settings.condition.time_threshold_ms);
3183 TF_copy_u16(&packet[401], (uint16_t)rules[18 + offset].settings.deploy_bct_id);
3184 TF_copy_u16(&packet[403], rules[18 + offset].counter);
3185 TF_copy_u32(&packet[405], (uint32_t)rules[18 + offset].last_event_time.total_cycle);
3186 TF_copy_u8(&packet[409], (uint8_t)rules[19 + offset].settings.event.group);
3187 TF_copy_u32(&packet[410], rules[19 + offset].settings.event.local);
3189 TF_copy_u16(&packet[415], rules[19 + offset].settings.condition.count_threshold);
3190 TF_copy_u32(&packet[417], rules[19 + offset].settings.condition.time_threshold_ms);
3191 TF_copy_u16(&packet[421], (uint16_t)rules[19 + offset].settings.deploy_bct_id);
3192 TF_copy_u16(&packet[423], rules[19 + offset].counter);
3193 TF_copy_u32(&packet[425], (uint32_t)rules[19 + offset].last_event_time.total_cycle);
3206 #ifndef BUILD_SETTINGS_FAST_BUILD
3414 #ifndef BUILD_SETTINGS_FAST_BUILD
3506 #ifndef BUILD_SETTINGS_FAST_BUILD
3559 #ifndef BUILD_SETTINGS_FAST_BUILD
3701 #ifndef BUILD_SETTINGS_FAST_BUILD
3794 #ifndef BUILD_SETTINGS_FAST_BUILD
const AppManager *const app_manager
#define AM_TLM_PAGE_SIZE
AMのAppInfoテーブルの1テレメトリパケット(=1ページ)に格納されるAppInfo数(ページネーション用)
const BCE_Params * BCE_get_bc_exe_params(const bct_id_t block)
BCE_Params の const getter
const uint8_t * BCT_get_param_head(const bct_id_t block, const uint8_t cmd)
BCT 内の Cmd の param_head の getter
cycle_t BCT_get_ti(const bct_id_t block, const uint8_t cmd)
BCT 内の Cmd の TI の getter
const BlockCommandTable *const block_command_table
CMD_CODE BCT_get_id(const bct_id_t block, const uint8_t cmd)
BCT 内の Cmd の CMD_CODE の getter
uint8_t BCT_get_bc_length(const bct_id_t block)
BCT の length の getter
const uint32_t GIT_REV_USER_SHORT
const char GIT_REV_CORE[41]
< 設定ないしcommit hashを読み込む
const uint32_t GIT_REV_CORE_SHORT
const char GIT_REV_USER[41]
const CommandAnalyze *const command_analyze
#define CA_TLM_PAGE_SIZE
コマンドテーブルの1テレメトリパケット(=1ページ)に格納されるコマンド数(ページネーション用)
CMD_CODE CCP_get_id(const CommonCmdPacket *packet)
CMD ID を取得
const uint8_t * CCP_get_param_head(const CommonCmdPacket *packet)
先頭のパラメタのポインタを取得
cycle_t CCP_get_ti(const CommonCmdPacket *packet)
TI を取得
const DI_GS_TlmPacketHandler *const DI_GS_rp_tlm_packet_handler
const GS_Driver *const gs_driver
const DI_GS_TlmPacketHandler *const DI_GS_rt_tlm_packet_handler
const UART_TEST_Driver *const uart_test_driver
const DividedCmdUtility *const divided_cmd_utility
const EventHandler *const event_handler
const EH_Log * EH_get_the_nth_log_from_the_latest(uint16_t n)
EH_LogTable の最新からn番目の対応ログを取得
#define EH_LOG_TLM_PAGE_SIZE
EH対応のログテーブルの1テレメトリパケット(=1ページ)に格納されるログ数(ページネーション用)
#define EH_RULE_TLM_PAGE_SIZE
event_handler のルールテーブルの1テレメトリパケット(=1ページ)に格納されるルール数(ページネーション用)
const EL_Event * EL_get_the_nth_tlog_from_the_latest(EL_ERROR_LEVEL err_level, uint16_t n)
TLog のイベントテーブルの最新からn番目のイベントを取得
const EventLogger *const event_logger
#define EL_TLOG_TLM_PAGE_SIZE
TLogにて,テレメ1ページにおろせるlog数
#define EL_CLOG_TLM_PAGE_SIZE
CLogにて,テレメ1ページにおろせるlog数
EL_ERROR_LEVEL
event_logger の エラーレベル
const EventUtility *const event_utility
const CommandDispatcher *const gs_command_dispatcher
const GS_ValiateInfo *const gs_validate_info
const MemoryDump *const memory_dump
const ModeManager *const mode_manager
uint16_t MM_update_transition_table_for_tlm(void)
TLM 用情報の生成
PacketList PH_rt_cmd_list
PacketList PH_tl_cmd_list[TLCD_ID_MAX]
PacketList PH_rt_tlm_list
PacketList PH_gs_cmd_list
const PL_Node * PL_get_head(const PacketList *pl)
PacketList の active な先頭 Node を取得
uint16_t PL_count_active_nodes(const PacketList *pl)
PacketList で有効な(実行待ち) Node 数を返す
uint32_t PL_count_executed_nodes(const PacketList *pl)
PacketList で実行された Node 数を返す
int PL_is_empty(const PacketList *pl)
PacketList が空かどうか
const CommandDispatcher *const realtime_command_dispatcher
void(* entry_point)(void)
アプリ実行関数(エントリーポイント)
step_t init_duration
アプリ初期化処理時間
void(* initializer)(void)
アプリ初期化関数
uint16_t call_num
Cmd_BCE_TIMELIMIT_COMBINE_BLOCKが呼ばれるたびにインクリメント
uint8_t worst_cmd_pos
最悪ケースのcmd pos
uint16_t interval
interval[cycle] ごとに実行される (大抵1)
uint8_t next_cmd
次に実行される cmd
uint8_t last_timeover_cmd_pos
前回時間制限に引っかかったときのcmd pos
uint16_t counter
interval の計算のための counter[cycle]
uint16_t timeover_num
時間制限に引っかかったらインクリメント
uint8_t cmd
そのブロック内でどのコマンドを指すか
CCP_CmdRet(* cmd_func)(const CommonCmdPacket *)
コマンドとなる関数
CA_PackedParamSizeInfo param_size_infos[(CA_MAX_CMD_PARAM_NUM+1)/2]
パラメタサイズ情報
union CA_PackedParamSizeInfo::@19 packed_info
struct CA_PackedParamSizeInfo::@19::@20 bit
uint32_t err_code
各 Cmd ユニークなエラーコード.各 App で定義する enum などを入れることを想定.
CCP_EXEC_STS exec_sts
CCP_EXEC_STS.Cmd の統一的なエラーコード
uint32_t bitrate
継承先の機器のビットレート値 (bps)
uint8_t buffer_num
送信バッファの残り数. 最大 CCSDS_FIFO_SIZE
uint8_t tlm_page_no
テレメで使うページ数
CA_CmdInfo cmd_table[CA_MAX_CMDS]
コマンドテーブル
int stop_on_error
異常時実行中断フラグ
CDIS_ExecInfo prev_err
最後にエラーが出たコマンド実行情報
uint32_t error_counter
エラーカウンタ
CDIS_ExecInfo prev
前回のコマンド実行情報
ObcTime last_exec_time
最終実行時刻
CCP_EXEC_STS last_exec_sts
最終実行結果
uint16_t exec_counter
実行カウンタ.何度目の実行か?
uint32_t vcdu_counter
VCDU counter
TcpToMPdu tc_packet_to_m_pdu
PL から取り出した tc_packet を M_PDU に変換する
DS_RecStatus rec_status_
IF受信状況
uint32_t rx_count_
なにかしらのデータの受信回数
struct DS_Config::@3 info
取得値(メトリクス)
int ret_from_if_rx
IF_RX の返り値
struct DS_StreamConfig::@6 info
取得値(メトリクス)
DS_StreamRecBuffer * rx_buffer_
DS_StreamRecStatus rec_status_
フレーム受信状況
struct DS_StreamConfig::@5 settings
設定値
uint32_t rx_frame_fix_count_
フレーム受信確定回数
uint16_t confirmed_frame_len
受信フレームとして受理された pos_of_frame_head_candidate からの長さ(フレーム確定後,これがフレーム長になる)
uint8_t is_frame_fixed
このバッファ上でフレームが確定してるか?
DS_STREAM_REC_STATUS_CODE status_code
status
uint16_t fixed_frame_len
フレーム確定したときのフレーム長さ
DCU_ExecStatus exec_logs[DCU_LOG_MAX]
実行ログ.[exec_log_order[0]] が最も新しい.古いものは捨てられていく.
uint8_t exec_log_order[DCU_LOG_MAX]
実行ログのソートキー. exec_logs を最新順に並べ替えるために使う.
DS_StreamConfig stream_config[DS_STREAM_MAX]
DS_Config config
DriverSuper の設定
uint32_t counter_total
前回 EH_execute 実行時の EL でのイベント記録数
uint32_t counters[EL_ERROR_LEVEL_MAX]
エラーレベルごとの記録数
uint8_t max_multi_level_num
uint16_t max_check_event_num
EH_RuleSettings settings
登録する EH_RuleSettings
EH_REGISTER_ACK register_ack
EH_register_rule の返り値
EH_RULE_ID rule_id
登録先 EH_RULE_ID
EL_Event に対して対応する EH_Rule
EH_RuleSettings settings
設定値
ObcTime last_event_time
最後に発生した EL_Event の時刻
uint16_t counter
EH 対応までのカウンタ
struct EH_RuleSettings::@8 event
EH に対応する EL_Event
EL_GROUP group
引っ掛ける EL_Event.group
uint32_t time_threshold_ms
uint8_t should_match_err_level
EL_Event の一致に,エラーレベル一致を含めるか?
uint8_t is_active
対応が有効か? 対応後,自動的に無効になる
struct EH_RuleSettings::@9 condition
EH 対応条件
EH_RESPONSE_CONDITION_TYPE type
EH 対応の条件種類
bct_id_t deploy_bct_id
EH 対応に展開する BCT id
uint32_t local
引っ掛ける EL_Event.local
EL_GROUP group
EH_Rule.event.group
uint8_t duplicate_id
同じ {group. local} の rule がある場合の,重複ID
uint32_t local
EH_Rule.event.local
EH_RULE_ID rule_id
EventHandler.rules の idx
uint16_t registered_rule_num
登録済み rule 数
EH_Rule rules[EH_RULE_MAX]
idx は EH_RULE_ID
struct EH_TlmInfo::@11 rule_sorted_index
struct EH_TlmInfo::@10 rule
struct EH_TlmInfo::@12 log
EH_RULE_ID target_rule_id
累積ログ (CLog) の1要素 note group, local が同じイベントを同一とみなす
uint16_t * log_orders
logs を時系列順に並び替える sort_key(サイズ可変のためポインタ)
uint16_t log_capacity
イベントテーブルのキャパシティ(サイズ)
EL_CLogElement * logs
累積カウンタを保持するイベントテーブル.[log_order[0]] が最新.(サイズ可変のためポインタ)
EL_GROUP group
イベントを特定する group id
EL_ERROR_LEVEL err_level
エラーレベル
uint32_t record_counters[EL_ERROR_LEVEL_MAX]
エラーレベルごとの記録数
uint32_t record_counter_total
イベント記録数
uint16_t log_wp
イベントテーブルの write pointer.次回書き込み場所
uint8_t is_enable_overwrite
TLogの上書きを許可するか?(デフォルトでは許可)
uint8_t is_table_overflow
上書きが無効の場合,溢れて追記できなかったか?
uint16_t log_capacity
イベントテーブルのキャパシティ(サイズ)
EL_Event * events
記録するイベントテーブル(サイズ可変のためポインタ)
struct EL_TlmInfo::@13 tlog
struct EL_TlmInfo::@14 clog
uint8_t page_no
tlm で下ろすログページ
EL_ERROR_LEVEL err_level
tlm で下ろす情報のエラーレベル
EH_ExecSettings exec_settings
実行時設定
EH_ElEventCounter el_event_counter
EH_ElEventCounter
EH_RegisterFromCmd reg_from_cmd
コマンド経由で EH_Rule を登録するときに使う内部状態変数
EH_RuleTable rule_table
EH_Rule のテーブル
EH_LogTable log_table
EH 対応ログテーブル
EH_RuleSortedIndex sorted_idxes[EH_RULE_MAX]
rules の二分探索用 idx
EH_TlmInfo tlm_info
tlmのための情報
EL_EventStatistics statistics
統計情報
EL_TlmInfo tlm_info
tlmのための情報
uint8_t is_logging_enable[EL_GROUP_MAX/8+1]
有効かフラグ.メモリ削減のため, bit 単位で保存
EL_TimeSeriesLog tlogs[EL_ERROR_LEVEL_MAX]
EL_CumulativeLog clogs[EL_ERROR_LEVEL_MAX]
uint8_t is_enabled_eh_execution
EH の実行が有効か?
struct GS_Driver::@72 driver_ccsds
CCSDS_Config ccsds_config
const GS_Info * latest_info
GS_Info info[GS_PORT_TYPE_NUM]
CCSDS 用と UART 用 2 つ
uint8_t is_tlm_on
UART に TLM を流すかどうか, CCSDS では許容でも UART に TLM を送りすぎると詰まってしまうため
GS_PORT_TYPE tlm_tx_port_type
struct GS_Driver::@73 driver_uart
VCDU_VCID vcid
送信した TLM のタイプ
cycle_t last_rec_time
最後に受信した時刻
struct GS_Info::@69::@71 tctf
uint32_t vcdu_counter
VCDU counter
CCP_DEST_TYPE last_dest_type
最後に受信したパケットの dest type
PH_ACK cmd_ack
受信した CMD の実行結果
int ret_from_if_rx
UART or CCSDS からの返り値
cycle_t send_cycle
最後に送信したときの時刻
DS_ERR_CODE rec_status
DriverSuper からの受信結果
uint8_t positive_window_width
bct_id_t bc_index
モード遷移に該当する bc id
MM_TransitionEdge transition_table_for_tlm[MD_MODEID_MODE_MAX *MD_MODEID_MODE_MAX]
テレメ用のテーブル
MD_MODEID current_id
現在のモードID
bct_id_t mode_list[MD_MODEID_MODE_MAX]
各モードIDに対応するブロックコマンドIDを保存する
MD_MODEID previous_id
ひとつ前のモードID
cycle_t total_cycle
TI のこと. OBC が起動してから(正確には,構造体が初期化されてから)の経過時間
step_t step
内部 step. TimeLine での処理時間分割に使われる
TF_TLM_FUNC_ACK(* tlm_func)(uint8_t *, uint16_t *, uint16_t)
tlm packet の中身を生成する関数
TLM_MGR_CmdElem cmds[TLM_MGR_MAX_CMD_NUM_PER_BC]
TLM_MGR_BC_ROLE bc_role
その BC の役割
TLM_MGR_CMD_TYPE cmd_type
BC に登録された(テレメ生成などの)コマンドのタイプ (未登録は TLM_MGR_CMD_TYPE_UNREGISTERED (0))
uint8_t dr_partition
登録された tlm 生成コマンドの dr_partition (未登録は 0)
APID apid
登録された tlm 生成コマンドの APID (未登録は 0)
TLM_CODE tlm_id
登録された tlm 生成コマンドの生成 tlm id (未登録は 0)
TLM_MGR_CmdBlock cmd_blocks[TLM_MGR_USE_BC_NUM]
BC の各 Block ごとの情報
uint8_t cmd_table_idxes_size
cmd_table_idxes の配列数
uint8_t cmd_table_idxes[TLM_MGR_USE_BC_NUM]
TLM_MGR_CmdTable.cmd_blocks のどの idx を使うか.static 確保のため,最大数 TLM_MGR_USE_BC_NUM の配列を確保
uint8_t registered_cmd_num
bct_id_t task_list_id
タスクリストに展開するブロックコマンドのID
CommandDispatcher tskd
タスクリストへのポインタと、その他実行情報を保存する構造体
TF_TlmInfo tlm_table[TF_MAX_TLMS]
テレメトリテーブル
uint8_t tlm_page_no
テレメで使うページ数
TLM_MGR_CmdTable cmd_table
現在 BC に登録された(テレメ生成などの)コマンド
uint8_t is_inited
初期化されているか?
TLM_MGR_RegisterInfo low_freq
TLM_MGR_BC_ROLE_LOW_FREQ_TLM; User テレメ (1/10 Hz)
TLM_MGR_RegisterInfo high_freq
TLM_MGR_BC_ROLE_HIGH_FREQ_TLM; User テレメ (1 Hz)
bct_id_t deploy_bc_id
master BC を deploy する BC の ID
bct_id_t master_bc_id
TLM_MGR_USE_BC_NUM 個の tlm bc を順次実行していく master BC の ID
struct TelemetryManager::@0 register_info
struct TimeManager::@15 unixtime_info_
CommandDispatcher dispatcher[TLCD_ID_MAX]
struct TimelineCommandDispatcher::@1 tlm_info_
const CommonCmdPacket * tl_list[PH_TLC_GS_LIST_MAX]
PARITY_SETTINGS parity_settings
パリティ設定
UART_DATA_LENGTH data_length
データ長
uint32_t baudrate
継承先の機器のボーレート値
uint8_t ch
継承先の機器がつながっているポート番号
UART_STOP_BIT stop_bit
ストップビット
struct UART_TEST_Driver::@74 driver
DriverSuper super
DriverSuper class
const TaskDsipatcher *const task_dispatcher
static TF_TLM_FUNC_ACK Tlm_TF_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EL_CLOG_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_UART_TEST_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_LOG_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_GS_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_AM_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_TLM_MGR2_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EL_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_TL_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_MEM_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_APP_TIME_(uint8_t *packet, uint16_t *len, uint16_t max_len)
void TF_load_tlm_table(TF_TlmInfo tlm_table[TF_MAX_TLMS])
Tlm Tableのロード
static TF_TLM_FUNC_ACK Tlm_GIT_REV_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_CA_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_INDEX_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_TLM_MGR1_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_BL_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_MOBC_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_MM_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EL_TLOG_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_DCU_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_RULE_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_EH_(uint8_t *packet, uint16_t *len, uint16_t max_len)
static TF_TLM_FUNC_ACK Tlm_HK_(uint8_t *packet, uint16_t *len, uint16_t max_len)
void TF_copy_u8(uint8_t *ptr, uint8_t data)
void TF_copy_u32(uint8_t *ptr, uint32_t data)
void TF_copy_double(uint8_t *ptr, double data)
void TF_copy_u16(uint8_t *ptr, uint16_t data)
void TF_copy_i8(uint8_t *ptr, int8_t data)
const TelemetryFrame *const telemetry_frame
void TF_copy_i32(uint8_t *ptr, int32_t data)
#define TF_MAX_TLMS
テレメテーブルサイズ.すなわち登録できる最大テレメ数
#define TF_TLM_PAGE_SIZE
テレメテーブルの1テレメトリパケット(=1ページ)に格納されるテレメ数
TF_TLM_FUNC_ACK
tlm_func の返り値につかう
@ TF_TLM_FUNC_ACK_TOO_SHORT_LEN
CommonTlmPacket が,生成されるテレメに比べて小さすぎる(定義されたテレメが大きすぎる)
@ TF_TLM_FUNC_ACK_SUCCESS
成功
const TelemetryManager *const telemetry_manager
double TMGR_get_utl_unixtime_epoch(void)
utl_unixtime_epoch を取得する
double TMGR_get_unixtime_at_ti0(void)
unixtime_at_ti0 を取得する
const TimeManager *const time_manager
ObcTime TMGR_get_master_clock(void)
現在の master_clock_ を取得する
TLCD_ID TLCD_update_tl_list_for_tlm(TLCD_ID id)
テレメの内容を自動更新する.
const TimelineCommandDispatcher *const timeline_command_dispatcher
const WDT_Config *const wdt_config