##// END OF EJS Templates
All modes partially implemented...
paul@pc-solar1.lab-lpp.local -
r22:c4e2ba2dd2be default
parent child
Show More
@@ -1,6 +1,6
1 1 #############################################################################
2 # Makefile for building: bin/fsw$(SW_VERSION)
3 # Generated by qmake (2.01a) (Qt 4.8.4) on: Fri Jun 14 07:50:58 2013
2 # Makefile for building: bin/fsw-gsa
3 # Generated by qmake (2.01a) (Qt 4.8.4) on: Tue Jun 18 14:00:55 2013
4 4 # Project: fsw-qt.pro
5 5 # Template: app
6 6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
@@ -10,7 +10,7
10 10
11 11 CC = sparc-rtems-gcc
12 12 CXX = sparc-rtems-g++
13 DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=4 -DPRINT_MESSAGES_ON_CONSOLE
13 DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=5 -DPRINT_MESSAGES_ON_CONSOLE -DGSA
14 14 CFLAGS = -pipe -O3 -Wall $(DEFINES)
15 15 CXXFLAGS = -pipe -O3 -Wall $(DEFINES)
16 16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header
@@ -78,9 +78,9 DIST = /usr/lib64/qt4/mkspecs/c
78 78 /usr/lib64/qt4/mkspecs/features/lex.prf \
79 79 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
80 80 fsw-qt.pro
81 QMAKE_TARGET = fsw$(SW_VERSION)
81 QMAKE_TARGET = fsw-gsa
82 82 DESTDIR = bin/
83 TARGET = bin/fsw$(SW_VERSION)
83 TARGET = bin/fsw-gsa
84 84
85 85 first: all
86 86 ####### Implicit rules
@@ -159,8 +159,8 qmake: FORCE
159 159 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
160 160
161 161 dist:
162 @$(CHK_DIR_EXISTS) obj/fsw$(SW_VERSION)1.0.0 || $(MKDIR) obj/fsw$(SW_VERSION)1.0.0
163 $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/fsw$(SW_VERSION)1.0.0/ && (cd `dirname obj/fsw$(SW_VERSION)1.0.0` && $(TAR) fsw$(SW_VERSION)1.0.0.tar fsw$(SW_VERSION)1.0.0 && $(COMPRESS) fsw$(SW_VERSION)1.0.0.tar) && $(MOVE) `dirname obj/fsw$(SW_VERSION)1.0.0`/fsw$(SW_VERSION)1.0.0.tar.gz . && $(DEL_FILE) -r obj/fsw$(SW_VERSION)1.0.0
162 @$(CHK_DIR_EXISTS) obj/fsw-gsa1.0.0 || $(MKDIR) obj/fsw-gsa1.0.0
163 $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/fsw-gsa1.0.0/ && (cd `dirname obj/fsw-gsa1.0.0` && $(TAR) fsw-gsa1.0.0.tar fsw-gsa1.0.0 && $(COMPRESS) fsw-gsa1.0.0.tar) && $(MOVE) `dirname obj/fsw-gsa1.0.0`/fsw-gsa1.0.0.tar.gz . && $(DEL_FILE) -r obj/fsw-gsa1.0.0
164 164
165 165
166 166 clean:compiler_clean
1 NO CONTENT: modified file, binary diff hidden
1 NO CONTENT: modified file, binary diff hidden
@@ -1,13 +1,13
1 1 TEMPLATE = app
2 2 # CONFIG += console v8 sim
3 3 # CONFIG options = verbose *** cpu_usage_report *** gsa
4 CONFIG += console verbose
4 CONFIG += console verbose gsa
5 5 CONFIG -= qt
6 6
7 7 include(./sparc.pri)
8 8
9 9 # flight software version
10 SW_VERSION=-0-5
10 SWVERSION=-0-5
11 11 DEFINES += SW_VERSION_N1=0
12 12 DEFINES += SW_VERSION_N2=0
13 13 DEFINES += SW_VERSION_N3=0
@@ -21,10 +21,10 contains( CONFIG, cpu_usage_report ) {
21 21 DEFINES += PRINT_TASK_STATISTICS
22 22 }
23 23
24 TARGET = fsw$(SW_VERSION)
24 TARGET = fsw
25 25 contains( CONFIG, gsa ) {
26 26 DEFINES += GSA
27 TARGET = fsw-gsa$(SW_VERSION)
27 TARGET = fsw-gsa
28 28 }
29 29
30 30 INCLUDEPATH += \
@@ -1,6 +1,6
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by Qt Creator 2.4.1, 2013-06-17T15:56:28. -->
3 <!-- Written by Qt Creator 2.4.1, 2013-06-18T14:38:28. -->
4 4 <qtcreator>
5 5 <data>
6 6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -58,7 +58,9 int send_tm_lfr_tc_exe_success(ccsdsTele
58 58 //
59 59 int stop_current_mode();
60 60 int enter_normal_mode();
61 int enter_burst_mode();
61 62 int enter_sbm1_mode();
63 int enter_sbm2_mode();
62 64 int action_load_comm(ccsdsTelecommandPacket_t *TC);
63 65 int action_load_norm(ccsdsTelecommandPacket_t *TC);
64 66 int action_enter(ccsdsTelecommandPacket_t *TC);
@@ -67,9 +69,6 int action_updt_time(ccsdsTelecommandPac
67 69 void update_last_TC_exe(ccsdsTelecommandPacket_t *TC);
68 70 void update_last_TC_rej(ccsdsTelecommandPacket_t *TC);
69 71 void close_action(ccsdsTelecommandPacket_t *TC, int result);
70 //
71 rtems_status_code restart_if_needed(rtems_id id);
72 rtems_status_code suspend_if_needed(rtems_id id);
73 72
74 73 #endif // TC_HANDLER_H_INCLUDED
75 74
@@ -20,11 +20,11 extern volatile int wf_snap_f0[ ];
20 20 extern volatile int wf_snap_f1[ ];
21 21 extern volatile int wf_snap_f1_bis[ ];
22 22 extern volatile int wf_snap_f2[ ];
23 extern volatile int wf_snap_f2_bis[ ];
23 24 extern volatile int wf_cont_f3[ ];
24 25 extern waveform_picker_regs_t *waveform_picker_regs;
25 26
26 27 rtems_isr waveforms_isr( rtems_vector_number vector );
27 rtems_isr waveforms_isr_alternative( rtems_vector_number vector );
28 28 rtems_isr waveforms_simulator_isr( rtems_vector_number vector );
29 29 rtems_task wfrm_task(rtems_task_argument argument);
30 30
@@ -22,6 +22,7 volatile int wf_snap_f0[ NB_SAMPLES_PER_
22 22 volatile int wf_snap_f1[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET];
23 23 volatile int wf_snap_f1_bis[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET];
24 24 volatile int wf_snap_f2[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET];
25 volatile int wf_snap_f2_bis[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET];
25 26 volatile int wf_cont_f3[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET];
26 27
27 28 // SPECTRAL MATRICES GLOBAL VARIABLES
@@ -71,9 +71,10 rtems_task Init( rtems_task_argument ign
71 71 init_housekeeping_parameters();
72 72 create_message_queue();
73 73
74 create_names();
75 create_all_tasks();
76 start_all_tasks();
74 create_names(); // create all names
75 create_all_tasks(); // create all tasks
76 start_all_tasks(); // start all tasks
77 stop_current_mode(); // go in STANDBY mode
77 78
78 79 grspw_timecode_callback = &timecode_irq_handler;
79 80
@@ -497,7 +497,7 rtems_task actn_task( rtems_task_argumen
497 497 {
498 498 status = rtems_message_queue_receive(misc_id[0], (char*) &TC, &size,
499 499 RTEMS_WAIT, RTEMS_NO_TIMEOUT);
500 if (status!=RTEMS_SUCCESSFUL) PRINTF1("in task ACTN *** error receiving a message, code %d \n", status)
500 if (status!=RTEMS_SUCCESSFUL) PRINTF1("ERR *** in task ACTN *** error receiving a message, code %d \n", status)
501 501 else
502 502 {
503 503 subtype = TC.dataFieldHeader[2];
@@ -538,6 +538,14 rtems_task actn_task( rtems_task_argumen
538 538 break;
539 539 //
540 540 case TC_SUBTYPE_ENTER:
541 if ( (housekeeping_packet.lfr_status_word[0] & 0xf0) != LFR_MODE_STANDBY)
542 {
543 status = stop_current_mode();
544 }
545 if (status != RTEMS_SUCCESSFUL)
546 {
547 PRINTF("ERR *** in task ACTN *** TC_SUBTYPE_ENTER *** stop_current_mode\n")
548 }
541 549 result = action_enter( &TC );
542 550 close_action( &TC, result );
543 551 break;
@@ -630,7 +638,7 int action_default(ccsdsTelecommandPacke
630 638
631 639 int action_enter(ccsdsTelecommandPacket_t *TC)
632 640 {
633 rtems_status_code status;
641 rtems_status_code status = RTEMS_SUCCESSFUL;
634 642 unsigned char lfr_mode = TC->dataAndCRC[1];
635 643 printf("enter mode %d\n", lfr_mode);
636 644 switch(lfr_mode)
@@ -638,18 +646,12 int action_enter(ccsdsTelecommandPacket_
638 646 //********
639 647 // STANDBY
640 648 case(LFR_MODE_STANDBY):
641 status = stop_current_mode();
642 if (status != RTEMS_SUCCESSFUL)
643 {
644 PRINTF("in action_enter *** error going back to STANDBY mode\n")
645 }
646 649 housekeeping_packet.lfr_status_word[0] = (unsigned char) ((LFR_MODE_STANDBY << 4) + 0x0d);
647 650 break;
648 651
649 652 //******
650 653 // NORMAL
651 654 case(LFR_MODE_NORMAL):
652 status = stop_current_mode();
653 655 status = enter_normal_mode();
654 656 if (status == RTEMS_SUCCESSFUL)
655 657 {
@@ -660,7 +662,7 int action_enter(ccsdsTelecommandPacket_
660 662 //******
661 663 // BURST
662 664 case(LFR_MODE_BURST):
663 status = stop_current_mode();
665 status = enter_burst_mode();
664 666 if (status == RTEMS_SUCCESSFUL)
665 667 {
666 668 housekeeping_packet.lfr_status_word[0] = (unsigned char) ((LFR_MODE_BURST << 4) + 0x0d);
@@ -670,7 +672,6 int action_enter(ccsdsTelecommandPacket_
670 672 //*****
671 673 // SBM1
672 674 case(LFR_MODE_SBM1):
673 status = stop_current_mode();
674 675 status = enter_sbm1_mode();
675 676 if (status == RTEMS_SUCCESSFUL)
676 677 {
@@ -681,7 +682,7 int action_enter(ccsdsTelecommandPacket_
681 682 //*****
682 683 // SBM2
683 684 case(LFR_MODE_SBM2):
684 status = stop_current_mode();
685 status = enter_sbm2_mode();
685 686 if (status == RTEMS_SUCCESSFUL)
686 687 {
687 688 housekeeping_packet.lfr_status_word[0] = (unsigned char) ((LFR_MODE_SBM2 << 4) + 0x0d);
@@ -691,11 +692,7 int action_enter(ccsdsTelecommandPacket_
691 692 //********
692 693 // DEFAULT
693 694 default:
694 status = stop_current_mode();
695 if (status == RTEMS_SUCCESSFUL)
696 {
697 housekeeping_packet.lfr_status_word[0] = (unsigned char) ((LFR_MODE_STANDBY << 4) + 0x0d);
698 }
695 housekeeping_packet.lfr_status_word[0] = (unsigned char) ((LFR_MODE_STANDBY << 4) + 0x0d);
699 696 break;
700 697 }
701 698 return status;
@@ -704,6 +701,7 int action_enter(ccsdsTelecommandPacket_
704 701 int stop_current_mode()
705 702 {
706 703 rtems_status_code status;
704
707 705 // mask all IRQ lines related to signal processing
708 706 LEON_Mask_interrupt( IRQ_WF ); // mask waveform interrupt (coming from the timer VHDL IP)
709 707 LEON_Mask_interrupt( IRQ_SM ); // mask spectral matrices interrupt (coming from the timer VHDL IP)
@@ -715,14 +713,20 int stop_current_mode()
715 713 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER ); // clear waveform picker interrupt
716 714
717 715 // suspend several tasks
718 status = suspend_if_needed( Task_id[TASKID_AVF0] );
716
717 status = rtems_task_suspend( Task_id[TASKID_AVF0] );
719 718 if (status == RTEMS_SUCCESSFUL) {
720 status = suspend_if_needed( Task_id[TASKID_BPF0] );
719 status = rtems_task_suspend( Task_id[TASKID_BPF0] );
721 720 if (status == RTEMS_SUCCESSFUL) {
722 status = suspend_if_needed( Task_id[TASKID_WFRM] );
721 status = rtems_task_suspend( Task_id[TASKID_WFRM] );
723 722 }
724 723 }
725 724
725 if (status != RTEMS_SUCCESSFUL)
726 {
727 PRINTF("ERR *** in stop_current_mode *** suspending tasks\n")
728 }
729
726 730 // initialize the registers
727 731 waveform_picker_regs->burst_enable = 0x00; // initialize
728 732
@@ -733,11 +737,11 int enter_normal_mode()
733 737 {
734 738 rtems_status_code status;
735 739
736 status = restart_if_needed( Task_id[TASKID_AVF0] );
740 status = rtems_task_restart( Task_id[TASKID_AVF0], 0 );
737 741 if (status == RTEMS_SUCCESSFUL) {
738 status = restart_if_needed( Task_id[TASKID_BPF0] );
742 status = rtems_task_restart( Task_id[TASKID_BPF0], 0 );
739 743 if (status == RTEMS_SUCCESSFUL) {
740 status = restart_if_needed( Task_id[TASKID_WFRM] );
744 status = rtems_task_restart( Task_id[TASKID_WFRM], 0 );
741 745 }
742 746 }
743 747
@@ -755,14 +759,15 int enter_normal_mode()
755 759 return status;
756 760 }
757 761
758 int enter_sbm1_mode()
762 int enter_burst_mode()
759 763 {
760 764 rtems_status_code status;
761 status = restart_if_needed( Task_id[TASKID_AVF0] );
765
766 status = rtems_task_restart( Task_id[TASKID_AVF0], 0 );
762 767 if (status == RTEMS_SUCCESSFUL) {
763 status = restart_if_needed( Task_id[TASKID_BPF0] );
768 status = rtems_task_restart( Task_id[TASKID_BPF0], 0 );
764 769 if (status == RTEMS_SUCCESSFUL) {
765 status = restart_if_needed( Task_id[TASKID_WFRM] );
770 status = rtems_task_restart( Task_id[TASKID_WFRM], 0 );
766 771 }
767 772 }
768 773
@@ -770,11 +775,65 int enter_sbm1_mode()
770 775 #else
771 776 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
772 777 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
778 waveform_picker_regs->addr_data_f2 = (int) wf_snap_f2;
779 waveform_picker_regs->burst_enable = 0x40; // [0100 0000] burst f2, f1, f0 enable f3 f2 f1 f0
780 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x04;
781 waveform_picker_regs->status = 0x00;
782 #endif
783
784 LEON_Unmask_interrupt( IRQ_SM );
785 return status;
786 }
787
788 int enter_sbm1_mode()
789 {
790 rtems_status_code status;
791
792 status = rtems_task_restart( Task_id[TASKID_AVF0], 0 );
793 if (status == RTEMS_SUCCESSFUL) {
794 status = rtems_task_restart( Task_id[TASKID_BPF0], 0 );
795 if (status == RTEMS_SUCCESSFUL) {
796 status = rtems_task_restart( Task_id[TASKID_WFRM], 0 );
797 }
798 }
799
800 #ifdef GSA
801 #else
802 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
803 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
804 waveform_picker_regs->addr_data_f1 = (int) wf_snap_f1;
773 805 waveform_picker_regs->burst_enable = 0x20; // [0010 0000] burst f2, f1, f0 enable f3 f2 f1 f0
774 806 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x02;
775 807 waveform_picker_regs->status = 0x00;
776 808 #endif
777 //LEON_Unmask_interrupt( IRQ_SM );
809
810 LEON_Unmask_interrupt( IRQ_SM );
811 return status;
812 }
813
814 int enter_sbm2_mode()
815 {
816 rtems_status_code status;
817
818 status = rtems_task_restart( Task_id[TASKID_AVF0], 0 );
819 if (status == RTEMS_SUCCESSFUL) {
820 status = rtems_task_restart( Task_id[TASKID_BPF0], 0 );
821 if (status == RTEMS_SUCCESSFUL) {
822 status = rtems_task_restart( Task_id[TASKID_WFRM], 0 );
823 }
824 }
825
826 #ifdef GSA
827 #else
828 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
829 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
830 waveform_picker_regs->addr_data_f2 = (int) wf_snap_f2;
831 waveform_picker_regs->burst_enable = 0x40; // [0100 0000] burst f2, f1, f0 enable f3 f2 f1 f0
832 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x04;
833 waveform_picker_regs->status = 0x00;
834 #endif
835
836 LEON_Unmask_interrupt( IRQ_SM );
778 837 return status;
779 838 }
780 839
@@ -835,38 +894,6 int send_tm_lfr_tc_exe_success(ccsdsTele
835 894 return 0;
836 895 }
837 896
838 rtems_status_code restart_if_needed(rtems_id id)
839 {
840 rtems_status_code status;
841
842 status = rtems_task_is_suspended( id );
843
844 if (status==RTEMS_SUCCESSFUL) {
845 status = rtems_task_restart( id, 0 );
846 if (status!=RTEMS_SUCCESSFUL) {
847 PRINTF1("in restart_if_needed *** Error restarting with id %d\n", (int) id)
848 }
849 }
850
851 return status;
852 }
853
854 rtems_status_code suspend_if_needed(rtems_id id)
855 {
856 rtems_status_code status;
857
858 status = rtems_task_is_suspended( id );
859
860 if (status!=RTEMS_SUCCESSFUL) {
861 status = rtems_task_suspend( id );
862 if (status!=RTEMS_SUCCESSFUL) {
863 PRINTF1("in suspend_if_needed *** Error suspending task with id %d\n", (int) id)
864 }
865 }
866
867 return status;
868 }
869
870 897 void update_last_TC_exe(ccsdsTelecommandPacket_t *TC)
871 898 {
872 899 housekeeping_packet.hk_lfr_last_exe_tc_id[0] = TC->packetID[0];
@@ -1,34 +1,5
1 1 #include <wf_handler.h>
2 2
3 rtems_isr waveforms_isr_alternative( rtems_vector_number vector )
4 {
5 if (waveform_picker_regs->burst_enable == 0x22) {
6 if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
7 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1_bis);
8 }
9 else {
10 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1);
11 }
12 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_2 ) != RTEMS_SUCCESSFUL) {
13 //rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
14 }
15 }
16 waveform_picker_regs->status = 0x00;
17 /*else if ( (waveform_picker_regs->burst_enable & 0x7) == 0x0 ){// if no channel is enable
18 if (rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ) != RTEMS_SUCCESSFUL) {
19 printf("In timecode_irq_handler *** Error sending event to DUMB\n");
20 }
21 }
22 else {
23 if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full
24 waveform_picker_regs->burst_enable = 0x00;
25 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) {
26 printf("In waveforms_isr *** Error sending event to WFRM\n");
27 }
28 }
29 }*/
30 }
31
32 3 rtems_isr waveforms_isr( rtems_vector_number vector )
33 4 {
34 5 unsigned char lfrMode;
@@ -95,6 +66,23 rtems_isr waveforms_isr( rtems_vector_nu
95 66 //*****
96 67 // SBM2
97 68 case(LFR_MODE_SBM2):
69 #ifdef GSA
70 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
71 #else
72 if (waveform_picker_regs->burst_enable == 0x44) {
73 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
74 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis);
75 }
76 else {
77 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
78 }
79 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
80 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
81 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
82 }
83 }
84 waveform_picker_regs->status = 0x00;
85 #endif
98 86 break;
99 87
100 88 //********
@@ -106,8 +94,43 rtems_isr waveforms_isr( rtems_vector_nu
106 94
107 95 rtems_isr waveforms_simulator_isr( rtems_vector_number vector )
108 96 {
109 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) {
110 printf("In waveforms_isr *** Error sending event to WFRM\n");
97 unsigned char lfrMode;
98 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
99
100 switch(lfrMode)
101 {
102 //********
103 // STANDBY
104 case(LFR_MODE_STANDBY):
105 break;
106
107 //******
108 // NORMAL
109 case(LFR_MODE_NORMAL):
110 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
111 PRINTF("ERR *** in waveforms_isr *** error sending event to WFRM\n");
112 }
113 break;
114
115 //******
116 // BURST
117 case(LFR_MODE_BURST):
118 break;
119
120 //*****
121 // SBM1
122 case(LFR_MODE_SBM1):
123 break;
124
125 //*****
126 // SBM2
127 case(LFR_MODE_SBM2):
128 break;
129
130 //********
131 // DEFAULT
132 default:
133 break;
111 134 }
112 135 }
113 136
@@ -197,6 +220,21 rtems_task wfrm_task(rtems_task_argument
197 220 send_waveform( &header, wf_snap_f1, SID_NORM_SWF_F1, &spw_ioctl_send);
198 221 }
199 222 break;
223
224 //*****
225 // SBM2
226 case(RTEMS_EVENT_MODE_SBM2):
227 // F2
228 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
229 send_waveform( &header, wf_snap_f2_bis, SID_NORM_SWF_F2, &spw_ioctl_send);
230 }
231 else {
232 send_waveform( &header, wf_snap_f2, SID_NORM_SWF_F2, &spw_ioctl_send);
233 }
234 break;
235
236 //********
237 // DEFAULT
200 238 default:
201 239 break;
202 240 }
General Comments 0
You need to be logged in to leave comments. Login now