Changeset 4111
- Timestamp:
- 06/04/07 10:38:48 (6 years ago)
- Location:
- experimental/components/DepacketizerSimpleBPSK/src
- Files:
-
- 4 modified
-
DepacketizerDSP.cpp (modified) (1 diff)
-
DepacketizerDSP.h (modified) (1 diff)
-
DepacketizerSimpleBPSK.cpp (modified) (3 diffs)
-
DepacketizerSimpleBPSK.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
experimental/components/DepacketizerSimpleBPSK/src/DepacketizerDSP.cpp
r4110 r4111 40 40 41 41 // 42 controlSequence = new char[NUM_CONTROL_CODES];42 controlSequence = new int[NUM_CONTROL_CODES]; 43 43 44 44 } -
experimental/components/DepacketizerSimpleBPSK/src/DepacketizerDSP.h
r4110 r4111 57 57 58 58 /// 59 char* controlSequence;59 int * controlSequence; 60 60 61 61 /// Circular input buffer -
experimental/components/DepacketizerSimpleBPSK/src/DepacketizerSimpleBPSK.cpp
r4108 r4111 42 42 dataOut_1 = new standardInterfaces_i::realChar_u("controlOut"); 43 43 44 foundSyncCode = false; 45 extractedControlBlock = false; 46 extractedDataBlock = false; 44 pnSyncCodeThreshold = PN_SYNC_CODE_LENGTH - 13; 45 operationalMode = EXTRACT_PN_SYNC_CODE; 47 46 48 47 //Create the thread for the writer's processing function … … 133 132 PortTypes::CharSequence data_block_out; 134 133 PortTypes::CharSequence control_block_out; 134 135 PortTypes::CharSequence *bits_in(NULL); 136 135 137 unsigned int N; // CORBA input block length 136 138 unsigned int i; // counter 137 139 138 140 while( true ) { 139 /* 140 foundSyncCode = false; 141 extractedControlBlock = false; 142 extractedDataBlock = false; 143 invertBits = false; 144 */ 145 146 switch ( operationalMode ) { 147 case EXTRACT_PN_SYNC_CODE: 148 // 149 break; 150 case EXTRACT_CONTROL_CODES: 151 // 152 break; 153 case EXTRACT_DATA_BLOCK: 154 // 155 break; 156 } 157 158 PortTypes::CharSequence *bits_in(NULL); 141 142 // Read input from provides port 159 143 dataIn_0->getData(bits_in); 160 144 N = bits_in->length(); 161 145 DEBUG(0, DepacketizerSimpleBPSK, "got " << N << " samples") 146 162 147 #ifdef LOGGING 163 148 for (i=0; i<N; i++) { … … 169 154 170 155 171 DEBUG(0, DepacketizerSimpleBPSK, "pushing " << data_block_out.length() << " data samples") 172 dataOut_0->pushPacket( data_block_out ); 173 174 DEBUG(0, DepacketizerSimpleBPSK, "pushing " << control_block_out.length() << " control samples") 175 dataOut_1->pushPacket( control_block_out ); 156 for (i=0; i<N; i++) { 157 158 switch ( operationalMode ) { 159 case EXTRACT_PN_SYNC_CODE: 160 // 161 inputBuffer.Push( (*bits_in)[i] ); 162 rxy = CorrelateSequence( pnSyncCode, PN_SYNC_CODE_LENGTH ); 163 if ( abs(rxy) > pnSyncCodeThreshold ) { 164 invertBits = ( rxy < 0 ) ? true : false; 165 DEBUG(0, DepacketizerSimpleBPSK, "SYNC CODE FOUND, inversion: " << invertBits) 166 operationalMode = EXTRACT_CONTROL_CODES; 167 } 168 break; 169 case EXTRACT_CONTROL_CODES: 170 // 171 if ( numControlCodesExtracted == NUM_CONTROL_CODES ) { 172 DEBUG(0, DepacketizerSimpleBPSK, "CONTROL CODES EXTRACTED"); 173 DecodeControlSequence(); 174 control_block_out[0] = (char) controlOutput; 175 176 // Set mode to extract data block 177 numBitsExtracted = 0; 178 operationalMode = EXTRACT_DATA_BLOCK; 179 } else { 180 if ( numBitsExtracted == PN_CONTROL_CODE_LENGTH ) { 181 rxy = CorrelateSequence( pnControlCode, PN_CONTROL_CODE_LENGTH ); 182 controlSequence[numControlCodesExtracted] = rxy; 183 numControlCodesExtracted++; 184 numBitsExtracted++; 185 } else { 186 inputBuffer.Push( (*bits_in)[i] ); 187 numBitsExtracted++; 188 } 189 break; 190 } 191 case EXTRACT_DATA_BLOCK: 192 // 193 if ( numBitsExtracted < DATA_BLOCK_LENGTH ) { 194 data_block_out[numBitsExtracted++] = (*bits_in)[i]; 195 } else { 196 DEBUG(0, DepacketizerSimpleBPSK, "DATA BLOCK EXTRACTED!"); 197 198 DEBUG(0, DepacketizerSimpleBPSK, "pushing " << data_block_out.length() << " data samples") 199 dataOut_0->pushPacket( data_block_out ); 200 201 DEBUG(0, DepacketizerSimpleBPSK, "pushing control sample") 202 dataOut_1->pushPacket( control_block_out ); 203 204 // Reset counter variables 205 numControlCodesExtracted = 0; 206 numBitsExtracted = 0; 207 operationalMode = EXTRACT_PN_SYNC_CODE; 208 } 209 break; 210 } 211 } 212 176 213 177 214 } -
experimental/components/DepacketizerSimpleBPSK/src/DepacketizerSimpleBPSK.h
r4108 r4111 77 77 // ----- algorithm methods ----- 78 78 79 bool foundSyncCode;80 bool extractedControlBlock;81 bool extractedDataBlock;82 bool invertBits; ///< negative correlation indicator79 unsigned int numControlCodesExtracted; 80 unsigned int numBitsExtracted; 81 int pnSyncCodeThreshold; ///< 82 bool invertBits; ///< negative correlation indicator 83 83 84 84 /// Operational mode … … 92 92 }; 93 93 #endif 94