#include "xp_project.h" #include "x_serial_bus.h" #include "xp_controller.h" #pragma DATA_SECTION(project,".fast_vars"); //#pragma DATA_SECTION(project,".slow_vars"); T_project project = PROJECT_DEFAULTS; void project_enable_all_interrupts(void) { KickDog(); EDIS; EnableInterrupts(); ERTM;// Enable Global realtime interrupt DBGM KickDog(); } void project_disable_all_interrupts(void) { // KickDog(); DINT; // DRTM; // DisableInterrupts(); } ////////////////////////////////////////////////////////////////////// // Îáíîâëåíèå ñóììàðíîãî ñòàòóñà ãîòîâíîñòè è îøèáîê ïî âñåì ïëàòàì ////////////////////////////////////////////////////////////////////// #define get_status_err_plates(p) ((p.local_status & ( local_status_Error)) != 0) void project_update_all_err_status_plates(void) { #if(C_cds_tk_number>=1) project.all_status_plates.tk0 = project.cds_tk[0].status; project.all_err_plates.errors_tk.bit.tk0 = get_status_err_plates(project.cds_tk[0]);// ((project.cds_tk[0].status & ( component_Error | component_ErrorSBus)) != 0) ;// (project.cds_tk[0].status == component_Error); #endif #if(C_cds_tk_number>=2) project.all_status_plates.tk1 = project.cds_tk[1].status; project.all_err_plates.errors_tk.bit.tk1 = get_status_err_plates(project.cds_tk[1]);// == component_Error); #endif #if(C_cds_tk_number>=3) project.all_status_plates.tk2 = project.cds_tk[2].status; project.all_err_plates.errors_tk.bit.tk2 = get_status_err_plates(project.cds_tk[2]);// == component_Error); #endif #if(C_cds_tk_number>=4) project.all_status_plates.tk3 = project.cds_tk[3].status; project.all_err_plates.errors_tk.bit.tk3 = get_status_err_plates(project.cds_tk[3]);// == component_Error); #endif #if(C_cds_tk_number>=5) project.all_status_plates.tk4 = project.cds_tk[3].status; project.all_err_plates.errors_tk.bit.tk4 = get_status_err_plates(project.cds_tk[4]);// == component_Error); #endif #if(C_cds_tk_number>=6) project.all_status_plates.tk5 = project.cds_tk[3].status; project.all_err_plates.errors_tk.bit.tk5 = get_status_err_plates(project.cds_tk[5]);// == component_Error); #endif #if(C_cds_tk_number>=7) project.all_status_plates.tk6 = project.cds_tk[3].status; project.all_err_plates.errors_tk.bit.tk6 = get_status_err_plates(project.cds_tk[6]);// == component_Error); #endif #if(C_cds_tk_number>=8) project.all_status_plates.tk7 = project.cds_tk[3].status; project.all_err_plates.errors_tk.bit.tk7 = get_status_err_plates(project.cds_tk[7]);// == component_Error); #endif #if(C_cds_out_number>=1) project.all_status_plates.out0 = project.cds_out[0].status; project.all_err_plates.errors.bit.out0 = get_status_err_plates(project.cds_out[0]);// == component_Error); #endif #if(C_cds_out_number>=2) project.all_status_plates.out1 = project.cds_out[1].status; project.all_err_plates.errors.bit.out1 = get_status_err_plates(project.cds_out[1]);// == component_Error); #endif #if(C_cds_out_number>=3) project.all_status_plates.out2 = project.cds_out[2].status; project.all_err_plates.errors.bit.out2 = get_status_err_plates(project.cds_out[2]);// == component_Error); #endif #if(C_cds_in_number>=1) project.all_status_plates.in0 = project.cds_in[0].status; project.all_err_plates.errors.bit.in0 = get_status_err_plates(project.cds_in[0]);// == component_Error); #endif #if(C_cds_in_number>=2) project.all_status_plates.in1 = project.cds_in[1].status; project.all_err_plates.errors.bit.in1 = get_status_err_plates(project.cds_in[1]);// == component_Error); #endif #if(C_cds_in_number>=3) project.all_status_plates.in2 = project.cds_in[2].status; project.all_err_plates.errors.bit.in2 = get_status_err_plates(project.cds_in[2]);// == component_Error); #endif #if(C_adc_number>=1) project.all_status_plates.adc0 = project.adc[0].status; project.all_err_plates.errors.bit.adc0 = get_status_err_plates(project.adc[0]);// == component_Error); #endif #if(C_adc_number>=2) project.all_status_plates.adc1 = project.adc[1].status; project.all_err_plates.errors.bit.adc1 = get_status_err_plates(project.adc[1]);// == component_Error); #endif #if(C_adc_number>=3) project.all_status_plates.adc2 = project.adc[2].status; project.all_err_plates.errors.bit.adc2 = get_status_err_plates(project.adc[2]);// == component_Error); #endif #if(C_hwp_number>=1) project.all_status_plates.hwp0 = project.hwp[0].status; project.all_err_plates.errors.bit.hwp0 = get_status_err_plates(project.hwp[0]);// == component_Error); #endif #if(C_hwp_number>=2) project.all_status_plates.hwp1 = project.hwp[1].status; project.all_err_plates.errors.bit.hwp1 = get_status_err_plates(project.hwp[1]);// == component_Error); #endif #if(C_hwp_number>=3) project.all_status_plates.hwp2 = project.hwp[2].status; project.all_err_plates.errors.bit.hwp2 = get_status_err_plates(project.hwp[2]);// == component_Error); #endif #if(C_cds_rs_number>=1) project.all_status_plates.rs0 = project.cds_rs[0].status; project.all_err_plates.errors.bit.rs0 = get_status_err_plates(project.cds_rs[0]);// == component_Error); #endif } void project_all_test_hwp(void) { if (project.controller.status != component_Ready) return; project.write_all_hwp(); #if(C_hwp_number>=1) project.hwp[0].internal_test(&project.hwp[0]); #endif #if(C_hwp_number>=2) project.hwp[1].internal_test(&project.hwp[1]); #endif #if(C_hwp_number>=3) project.hwp[2].internal_test(&project.hwp[2]); #endif } //////////////////////////////////////////////////////////////// // ãðóçèì íàñòðîéêè â ïåðèôåð. ïëàòû è HWP //////////////////////////////////////////////////////////////// void project_load_cfg_to_plates(void) { if (project.controller.status != component_Ready) return; project.write_all_hwp(); project.write_all_sbus(); } ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// void project_clear(void) { // UInt16 i; // for(i=0;i=1) project.adc[0].plane_address = C_adc0_address; #endif #if(C_adc_number>=2) project.adc[1].plane_address = C_adc1_address; #endif #if(C_adc_number>=3) project.adc[2].plane_address = C_adc2_address; #endif #if(C_cds_in_number>=1) project.cds_in[0].plane_address = C_cds_in0_address; #endif #if(C_cds_in_number>=2) project.cds_in[1].plane_address = C_cds_in1_address; #endif #if(C_cds_in_number>=3) project.cds_in[2].plane_address = C_cds_in2_address; #endif #if(C_cds_out_number>=1) project.cds_out[0].plane_address = C_cds_out0_address; #endif #if(C_cds_out_number>=2) project.cds_out[1].plane_address = C_cds_out1_address; #endif #if(C_cds_out_number>=3) project.cds_out[2].plane_address = C_cds_out2_address; #endif #if(C_cds_tk_number>=1) #if(C_cds_tk0_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk0_address â xp_plane_adr.h" #endif project.cds_tk[0].plane_address = C_cds_tk0_address; #endif #if(C_cds_tk_number>=2) #if(C_cds_tk1_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk1_address â xp_plane_adr.h" #endif project.cds_tk[1].plane_address = C_cds_tk1_address; #endif #if(C_cds_tk_number>=3) #if(C_cds_tk2_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk2_address â xp_plane_adr.h" #endif project.cds_tk[2].plane_address = C_cds_tk2_address; #endif #if(C_cds_tk_number>=4) #if(C_cds_tk3_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk3_address â xp_plane_adr.h" #endif project.cds_tk[3].plane_address = C_cds_tk3_address; #endif #if(C_cds_tk_number>=5) #if(C_cds_tk4_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk4_address â xp_plane_adr.h" #endif project.cds_tk[4].plane_address = C_cds_tk4_address; #endif #if(C_cds_tk_number>=6) #if(C_cds_tk5_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk5_address â xp_plane_adr.h" #endif project.cds_tk[5].plane_address = C_cds_tk5_address; #endif #if(C_cds_tk_number>=7) #if(C_cds_tk6_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk6_address â xp_plane_adr.h" #endif project.cds_tk[6].plane_address = C_cds_tk6_address; #endif #if(C_cds_tk_number>=8) #if(C_cds_tk7_address<1) #error "íåïðàâèëüíî îïðåäåëåíî C_cds_tk7_address â xp_plane_adr.h" #endif project.cds_tk[7].plane_address = C_cds_tk7_address; #endif #if(C_cds_rs_number>=1) project.cds_rs[0].plane_address = C_cds_rs0_address; #endif #if(C_hwp_number>=1) project.hwp[0].plane_address = C_hwp0_address; project.hwp[0].init(&project.hwp[0]); #endif #if(C_hwp_number>=2) project.hwp[1].plane_address = C_hwp1_address; project.hwp[1].init(&project.hwp[1]); #endif #if(C_hwp_number>=3) project.hwp[2].plane_address = C_hwp2_address; project.hwp[2].init(&project.hwp[2]); #endif if (project.controller.status == component_Ready) project.controller.build = i_ReadMemory(ADR_CONTROLLER_BUILD); else project.controller.build = 0xffff; project.inited = 1; // åñòü èíèöèàëèçàöèß äàííûõ! } /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// // èíèöèàëèçàöèß ñòðóêòóð äëß ïåðèôåð. ïëàò /////////////////////////////////////////////////////////// void project_run_init_all_plates(void) { if (project.controller.status == component_Ready) { #if(C_adc_number>=1) if (project.adc[0].status & (component_Started | component_Ready | component_Error )) project.adc[0].init(&project.adc[0]); #endif #if(C_adc_number>=2) if (project.adc[1].status & (component_Started | component_Ready | component_Error )) project.adc[1].init(&project.adc[1]); #endif #if(C_adc_number>=3) if (project.adc[2].status & (component_Started | component_Ready | component_Error )) project.adc[2].init(&project.adc[2]); #endif #if(C_cds_tk_number>=1) if (project.cds_tk[0].status & (component_Started | component_Ready | component_Error )) project.cds_tk[0].init(&project.cds_tk[0]); #endif #if(C_cds_tk_number>=2) if (project.cds_tk[1].status & (component_Started | component_Ready | component_Error )) project.cds_tk[1].init(&project.cds_tk[1]); #endif #if(C_cds_tk_number>=3) if (project.cds_tk[2].status & (component_Started | component_Ready | component_Error )) project.cds_tk[2].init(&project.cds_tk[2]); #endif #if(C_cds_tk_number>=4) if (project.cds_tk[3].status & (component_Started | component_Ready | component_Error )) project.cds_tk[3].init(&project.cds_tk[3]); #endif #if(C_cds_tk_number>=5) if (project.cds_tk[4].status & (component_Started | component_Ready | component_Error )) project.cds_tk[4].init(&project.cds_tk[4]); #endif #if(C_cds_tk_number>=6) if (project.cds_tk[5].status & (component_Started | component_Ready | component_Error )) project.cds_tk[5].init(&project.cds_tk[5]); #endif #if(C_cds_tk_number>=7) if (project.cds_tk[6].status & (component_Started | component_Ready | component_Error )) project.cds_tk[6].init(&project.cds_tk[6]); #endif #if(C_cds_tk_number>=8) if (project.cds_tk[7].status & (component_Started | component_Ready | component_Error )) project.cds_tk[7].init(&project.cds_tk[7]); #endif #if(C_cds_in_number>=1) if (project.cds_in[0].status & (component_Started | component_Ready | component_Error )) project.cds_in[0].init(&project.cds_in[0]); #endif #if(C_cds_in_number>=2) if (project.cds_in[1].status & (component_Started | component_Ready | component_Error )) project.cds_in[1].init(&project.cds_in[1]); #endif #if(C_cds_in_number>=3) if (project.cds_in[2].status & (component_Started | component_Ready | component_Error )) project.cds_in[2].init(&project.cds_in[2]); #endif #if(C_cds_out_number>=1) if (project.cds_out[0].status & (component_Started | component_Ready | component_Error )) project.cds_out[0].init(&project.cds_out[0]); #endif #if(C_cds_out_number>=2) if (project.cds_out[1].status & (component_Started | component_Ready | component_Error )) project.cds_out[1].init(&project.cds_out[1]); #endif #if(C_cds_out_number>=3) if (project.cds_out[2].status & (component_Started | component_Ready | component_Error )) project.cds_out[2].init(&project.cds_out[2]); #endif #if(C_cds_rs_number>=1) if (project.cds_rs[0].status & (component_Started | component_Ready | component_Error )) project.cds_rs[0].init(&project.cds_rs[0]); #endif project_all_test_hwp(); // //#if(C_hwp_number>=1) // if (project.hwp[0].status & (component_Started | component_Ready | component_Error )) // project.hwp[0].init(&project.hwp[0]); //#endif //#if(C_hwp_number>=2) // if (project.hwp[1].status & (component_Started | component_Ready | component_Error )) // project.hwp[1].init(&project.hwp[1]); //#endif //#if(C_hwp_number>=3) // if (project.hwp[2].status & (component_Started | component_Ready | component_Error )) // project.hwp[2].init(&project.hwp[2]); //#endif } } /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// #define set_local_status(p) p.local_status = p.read.sbus.lock_status_error.all ? local_status_Error : local_status_Ok #define set_local_status_hwp(p) p.local_status = (p.read.comp_s.minus.all || p.read.comp_s.plus.all) ? local_status_Error : local_status_Ok /////////////////////////////////////////////////////////// void project_read_all_sbus(void) { if (project.controller.status == component_Ready) { #if(C_adc_number>=1) if (project.adc[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus)) { project.adc[0].read_sbus(&project.adc[0]); set_local_status(project.adc[0]); } #endif #if(C_adc_number>=2) if (project.adc[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.adc[1].read_sbus(&project.adc[1]); set_local_status(project.adc[1]); } #endif #if(C_adc_number>=3) if (project.adc[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.adc[2].read_sbus(&project.adc[2]); set_local_status(project.adc[2]); } #endif #if(C_cds_tk_number>=1) if (project.cds_tk[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[0].read_sbus(&project.cds_tk[0]); set_local_status(project.cds_tk[0]); } #endif #if(C_cds_tk_number>=2) if (project.cds_tk[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[1].read_sbus(&project.cds_tk[1]); set_local_status(project.cds_tk[1]); } #endif #if(C_cds_tk_number>=3) if (project.cds_tk[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[2].read_sbus(&project.cds_tk[2]); set_local_status(project.cds_tk[2]); } #endif #if(C_cds_tk_number>=4) if (project.cds_tk[3].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[3].read_sbus(&project.cds_tk[3]); set_local_status(project.cds_tk[3]); } #endif #if(C_cds_tk_number>=5) if (project.cds_tk[4].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[4].read_sbus(&project.cds_tk[4]); set_local_status(project.cds_tk[4]); } #endif #if(C_cds_tk_number>=6) if (project.cds_tk[5].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[5].read_sbus(&project.cds_tk[5]); set_local_status(project.cds_tk[5]); } #endif #if(C_cds_tk_number>=7) if (project.cds_tk[6].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[6].read_sbus(&project.cds_tk[6]); set_local_status(project.cds_tk[6]); } #endif #if(C_cds_tk_number>=8) if (project.cds_tk[7].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_tk[7].read_sbus(&project.cds_tk[7]); set_local_status(project.cds_tk[7]); } #endif #if(C_cds_in_number>=1) if (project.cds_in[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_in[0].read_sbus(&project.cds_in[0]); set_local_status(project.cds_in[0]); } #endif #if(C_cds_in_number>=2) if (project.cds_in[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_in[1].read_sbus(&project.cds_in[1]); set_local_status(project.cds_in[1]); } #endif #if(C_cds_in_number>=3) if (project.cds_in[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_in[2].read_sbus(&project.cds_in[2]); set_local_status(project.cds_in[2]); } #endif #if(C_cds_rs_number>=1) if (project.cds_rs[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_rs[0].read_sbus(&project.cds_rs[0]); // set_local_status(project.cds_rs[0]); } #endif #if(C_cds_out_number>=1) if (project.cds_out[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_out[0].read_sbus(&project.cds_out[0]); set_local_status(project.cds_out[0]); } #endif #if(C_cds_out_number>=2) if (project.cds_out[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_out[1].read_sbus(&project.cds_out[1]); set_local_status(project.cds_out[1]); } #endif #if(C_cds_out_number>=3) if (project.cds_out[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { project.cds_out[2].read_sbus(&project.cds_out[2]); set_local_status(project.cds_out[2]); } #endif #if(C_hwp_number>=1) if (project.hwp[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { // project.cds_out[0].read_sbus(&project.cds_out[0]); set_local_status_hwp(project.hwp[0]); } #endif #if(C_hwp_number>=2) if (project.hwp[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { // project.cds_out[0].read_sbus(&project.cds_out[0]); set_local_status_hwp(project.hwp[1]); } #endif #if(C_hwp_number>=3) if (project.hwp[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) { // project.cds_out[0].read_sbus(&project.cds_out[0]); set_local_status_hwp(project.hwp[2]); } #endif project_update_all_err_status_plates(); } } void project_read_all_pbus(void) { if (project.controller.status == component_Ready) { x_parallel_bus_project.read_status(&x_parallel_bus_project); #if(C_adc_number>=1) project.adc[0].read_pbus(&project.adc[0]); #endif #if(C_adc_number>=2) project.adc[1].read_pbus(&project.adc[1]); #endif #if(C_adc_number>=3) project.adc[2].read_pbus(&project.adc[2]); #endif #if(C_cds_tk_number>=1) project.cds_tk[0].read_pbus(&project.cds_tk[0]); #endif #if(C_cds_tk_number>=2) project.cds_tk[1].read_pbus(&project.cds_tk[1]); #endif #if(C_cds_tk_number>=3) project.cds_tk[2].read_pbus(&project.cds_tk[2]); #endif #if(C_cds_tk_number>=4) project.cds_tk[3].read_pbus(&project.cds_tk[3]); #endif #if(C_cds_tk_number>=5) project.cds_tk[4].read_pbus(&project.cds_tk[4]); #endif #if(C_cds_tk_number>=6) project.cds_tk[5].read_pbus(&project.cds_tk[5]); #endif #if(C_cds_tk_number>=7) project.cds_tk[6].read_pbus(&project.cds_tk[6]); #endif #if(C_cds_tk_number>=8) project.cds_tk[7].read_pbus(&project.cds_tk[7]); #endif #if(C_cds_in_number>=1) project.cds_in[0].read_pbus(&project.cds_in[0]); #endif #if(C_cds_in_number>=2) project.cds_in[1].read_pbus(&project.cds_in[1]); #endif #if(C_cds_in_number>=3) project.cds_in[2].read_pbus(&project.cds_in[2]); #endif #if(C_cds_rs_number>=1) project.cds_rs[0].read_pbus(&project.cds_rs[0]); #endif #if(C_cds_out_number>=1) project.cds_out[0].read_pbus(&project.cds_out[0]); #endif #if(C_cds_out_number>=2) project.cds_out[1].read_pbus(&project.cds_out[1]); #endif #if(C_cds_out_number>=3) project.cds_out[2].read_pbus(&project.cds_out[2]); #endif } } ///////////////////////////////////////////////////// // çàïèñûâàåì íàñòðîéêè â ïëàòû ïî ñåðèàëü. êàíàëó ///////////////////////////////////////////////////// void project_write_all_sbus(void) { if (project.controller.status == component_Ready) { #if(C_adc_number>=1) if (project.adc[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.adc[0].write_sbus(&project.adc[0]); #endif #if(C_adc_number>=2) if (project.adc[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.adc[1].write_sbus(&project.adc[1]); #endif #if(C_adc_number>=3) if (project.adc[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.adc[2].write_sbus(&project.adc[2]); #endif #if(C_cds_tk_number>=1) if (project.cds_tk[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[0].write_sbus(&project.cds_tk[0]); #endif #if(C_cds_tk_number>=2) if (project.cds_tk[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[1].write_sbus(&project.cds_tk[1]); #endif #if(C_cds_tk_number>=3) if (project.cds_tk[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[2].write_sbus(&project.cds_tk[2]); #endif #if(C_cds_tk_number>=4) if (project.cds_tk[3].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[3].write_sbus(&project.cds_tk[3]); #endif #if(C_cds_tk_number>=5) if (project.cds_tk[4].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[4].write_sbus(&project.cds_tk[4]); #endif #if(C_cds_tk_number>=6) if (project.cds_tk[5].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[5].write_sbus(&project.cds_tk[5]); #endif #if(C_cds_tk_number>=7) if (project.cds_tk[6].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[6].write_sbus(&project.cds_tk[6]); #endif #if(C_cds_tk_number>=8) if (project.cds_tk[7].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_tk[7].write_sbus(&project.cds_tk[7]); #endif #if(C_cds_in_number>=1) if (project.cds_in[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_in[0].write_sbus(&project.cds_in[0]); #endif #if(C_cds_in_number>=2) if (project.cds_in[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_in[1].write_sbus(&project.cds_in[1]); #endif #if(C_cds_in_number>=3) if (project.cds_in[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_in[2].write_sbus(&project.cds_in[2]); #endif #if(C_cds_rs_number>=1) if (project.cds_rs[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_rs[0].write_sbus(&project.cds_rs[0]); #endif #if(C_cds_out_number>=1) if (project.cds_out[0].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_out[0].write_sbus(&project.cds_out[0]); #endif #if(C_cds_out_number>=2) if (project.cds_out[1].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_out[1].write_sbus(&project.cds_out[1]); #endif #if(C_cds_out_number>=3) if (project.cds_out[2].status & (component_Started | component_Ready | component_Error | component_ErrorSBus )) project.cds_out[2].write_sbus(&project.cds_out[2]); #endif project_update_all_err_status_plates(); } } ///////////////////////////////////////////////////// // çàïèñûâàåì íàñòðîéêè â HWP ïëàòû ïî hwp êàíàëó ///////////////////////////////////////////////////// void project_write_all_hwp(void) { if (project.controller.status == component_Ready) { #if(C_hwp_number>=1) project.hwp[0].write_all(&project.hwp[0]); #endif #if(C_hwp_number>=2) project.hwp[1].write_all(&project.hwp[1]); #endif #if(C_hwp_number>=3) project.hwp[2].write_all(&project.hwp[2]); #endif } } ///////////////////////////////////////////////////// // ÷òåíèå èç HWP ïëàòû ïî hwp êàíàëó ///////////////////////////////////////////////////// void project_read_all_hwp(void) { if (project.controller.status == component_Ready) { #if(C_hwp_number>=1) project.hwp[0].read_all(&project.hwp[0]); #endif #if(C_hwp_number>=2) project.hwp[1].read_all(&project.hwp[1]); #endif #if(C_hwp_number>=3) project.hwp[2].read_all(&project.hwp[2]); #endif } } ///////////////////////////////////////////////////// // ÷òåíèå èç HWP ïëàòû ïî hwp êàíàëó ///////////////////////////////////////////////////// void project_autospeed_all_hwp(void) { if (project.controller.status == component_Ready) { #if(C_hwp_number>=1) project.hwp[0].autospeed_detect(&project.hwp[0]); #endif #if(C_hwp_number>=2) project.hwp[1].autospeed_detect(&project.hwp[1]); #endif #if(C_hwp_number>=3) project.hwp[2].autospeed_detect(&project.hwp[2]); #endif } } #define PAUSE_WAIT_SBUS 10000 #define MAX_COUNT_ERR_READ_SBUS 1100 //2000 çàïàñ ïî âðåìåíè 2õ îòíîñèòåëüíî íîðìàëüíîãî ïåðèîäà çàãðóçêè âñåé êîðçèíû #define MAX_COUNT_ERR_READ_SBUS_2 600 //2000 çàïàñ ïî âðåìåíè 2õ îòíîñèòåëüíî íîðìàëüíîãî ïåðèîäà çàãðóçêè âñåé êîðçèíû #define MAX_COUNT_OR_READ_SBUS 20//200 ////////////////////////////////////////////////////////////// // îæèäàíèå çàãðóçêè è ñòàðòà ïåðåôèð. ïëàò. // åñëè flag_reset == 1 òî íå äàåì îøèáêó ïðè îæèäàíèè ïëàò // enable_find_all_plates = 1 ðàçðåøàåì ïîèñê îòêëþ÷åííûõ ïëàò ïî USE_???? ////////////////////////////////////////////////////////////// unsigned int project_wait_load_all_cds(int flag_reset) { unsigned long counterErr = 0; unsigned int counterOk = 0, err; unsigned int i,count_find_plat; unsigned int old_status_max_read_error = 0; unsigned int prev_count_one_find_plat = 0, count_one_find_plat = 0; unsigned int max_count_err_read_sbus = MAX_COUNT_ERR_READ_SBUS; // unsigned int erReg, rd; /* for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i= max_count_err_read_sbus) { if (flag_reset == 0) xerror(xserial_bus_er_ID(2), (void *)0); err = 1; break; } // test ok read - stable? if (counterOk >= MAX_COUNT_OR_READ_SBUS) { err = 0; // all ok! break; } if (count_find_plat == 0) // nothing find! { err = 0; // all ok! break; } } // clear statistics on serial bus x_serial_bus_project.clear_stat(&x_serial_bus_project); /////////////////////////////////////// //ADC #if(C_adc_number>=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i=1) for (i=0;i