Changeset 4104
- Timestamp:
- 06/03/07 16:16:31 (6 years ago)
- Location:
- experimental/components/PacketizerSimpleBPSK
- Files:
-
- 2 added
- 6 modified
-
Makefile.am (modified) (1 diff)
-
configure.ac (modified) (1 diff)
-
src/PNCodes.cpp (modified) (1 diff)
-
src/PNCodes.h (modified) (1 diff)
-
src/PacketizerDSP.cpp (added)
-
src/PacketizerDSP.h (added)
-
src/PacketizerSimpleBPSK.cpp (modified) (4 diffs)
-
src/PacketizerSimpleBPSK.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
experimental/components/PacketizerSimpleBPSK/Makefile.am
r4101 r4104 6 6 src/PacketizerSimpleBPSK.cpp \ 7 7 src/PacketizerSimpleBPSK.h \ 8 src/PacketizerDSP.h \ 9 src/PacketizerDSP.cpp \ 8 10 src/PNCodes.h \ 9 11 src/PNCodes.cpp \ -
experimental/components/PacketizerSimpleBPSK/configure.ac
r3440 r4104 19 19 AC_CHECK_HEADERS([omniORB4/CORBA.h], [], [AC_MSG_ERROR([cannot find omniORB4 header files])]) 20 20 21 AC_CHECK_LIB([sigproc], [main], [], [AC_MSG_ERROR([cannot find sigproc library])]) 22 AC_CHECK_HEADERS([sigproc/SigProc.h], [], [AC_MSG_ERROR([cannot find sigproc library header files])]) 23 21 24 AC_CHECK_LIB([standardInterfaces], [main], [], [AC_MSG_ERROR([cannot find standardInterfaces])]) 22 25 AC_CHECK_HEADERS([standardinterfaces/complexShort.h], [], [AC_MSG_ERROR([cannot find standardInterfaces header files])]) -
experimental/components/PacketizerSimpleBPSK/src/PNCodes.cpp
r4101 r4104 30 30 0, 0, 0}; 31 31 32 // P/N packet control code 33 char pnControlCode[7] = {1, 1, 1, 0, 1, 0, 0}; 34 35 // P/N inverse packet control code 36 char pnControlCodeInv[7] = {0, 0, 0, 1, 0, 1, 1}; 37 38 -
experimental/components/PacketizerSimpleBPSK/src/PNCodes.h
r4101 r4104 28 28 extern char pnPacketSyncCode[63]; 29 29 30 // P/N packet control code 31 extern char pnControlCode[7]; 32 33 // P/N inverse packet control code 34 extern char pnControlCodeInv[7]; 35 -
experimental/components/PacketizerSimpleBPSK/src/PacketizerSimpleBPSK.cpp
r4100 r4104 36 36 dataOut_0 = new standardInterfaces_i::realChar_u("bitsOut"); 37 37 38 // set initial variable values39 preamble = NULL;40 preambleLength = 35;41 pnSyncCode = NULL;42 pnSyncCodeLength = 31;43 controlBlock = NULL;44 controlBlockLength = 15;45 // dataBlock = NULL;46 dataBlockLength = 400;47 pnEOMCode = NULL;48 pnEOMCodeLength = 31;49 50 ConfigurePreamble();51 //ConfigurePNSyncCode( 0x75ac21a8 );52 ConfigurePNSyncCode( 0x05763e69 ); // m-sequence53 ConfigureControlData( 0 );54 //ConfigurePNEOMCode( 0x71357ac1 );55 ConfigurePNEOMCode( 0x3e690576 );56 57 38 //Create the thread for the writer's processing function 58 39 processing_thread = new omni_thread(Run, (void *) this); … … 68 49 delete dataIn_1; 69 50 delete dataOut_0; 70 71 if ( preamble != NULL )72 delete [] preamble;73 74 if ( pnSyncCode != NULL )75 delete [] pnSyncCode;76 77 if ( controlBlock != NULL )78 delete [] controlBlock;79 80 if ( pnEOMCode != NULL )81 delete [] pnEOMCode;82 51 } 83 52 … … 142 111 143 112 DEBUG(3, PacketizerSimpleBPSK, "props length : " << props.length()) 144 #if 0145 unsigned int j;146 147 for (unsigned int i = 0; i <props.length(); i++)148 {149 DEBUG(3, PacketizerSimpleBPSK, "Property id : " << props[i].id)150 151 // sync_code152 if (strcmp(props[i].id, "DCE:58fa6fbf-0daa-4ed4-9d33-7f343a92c184") == 0)153 {154 CORBA::ULong simple_temp;155 props[i].value >>= simple_temp;156 simple_0_value = simple_temp;157 if ( pnSyncCode != NULL )158 delete [] pnSyncCode;159 pnSyncCode = new char[pnSyncCodeLength];160 std::cout << "--- SYNC code: ";161 for (j=0; j<pnSyncCodeLength; j++)162 {163 pnSyncCode[j] = (simple_0_value & 0x0001 == 0) ? BIT0 : BIT1;164 simple_0_value >>= 1;165 std::cout << pnSyncCode[j] << " ";166 }167 std::cout << std::endl;168 }169 170 // packetLength171 if (strcmp(props[i].id, "DCE:e99ff5ab-d06a-4c99-965a-73901478176e") == 0)172 {173 CORBA::ULong simple_temp;174 props[i].value >>= simple_temp;175 // simple_1_value = simple_temp;176 dataBlockLength = simple_temp;177 }178 179 // eom_code180 if (strcmp(props[i].id, "DCE:67fa3260-533a-4184-be7c-c1868b3f70dd") == 0)181 {182 CORBA::ULong simple_temp;183 props[i].value >>= simple_temp;184 simple_2_value = simple_temp;185 if ( pnEOMCode != NULL )186 delete [] pnEOMCode;187 pnEOMCode = new char[pnEOMCodeLength];188 std::cout << "--- EOM code: ";189 for (j=0; j<pnEOMCodeLength; j++)190 {191 pnEOMCode[j] = (simple_2_value & 0x0001 == 0) ? BIT0 : BIT1;192 simple_2_value >>= 1;193 std::cout << pnEOMCode[j] << " ";194 }195 std::cout << std::endl;196 }197 198 }199 #endif200 113 } 201 114 202 void PacketizerSimpleBPSK_i::ConfigurePreamble()203 {204 if ( preamble != NULL )205 delete [] preamble;206 207 unsigned int i;208 preamble = new char[preambleLength];209 for (i=0; i<preambleLength; i++)210 preamble[i] = ( i%2==0 ) ? BIT0 : BIT1;211 212 }213 214 void PacketizerSimpleBPSK_i::ConfigurePNSyncCode( unsigned int _code )215 {216 if ( pnSyncCode != NULL )217 delete [] pnSyncCode;218 219 signed int i;220 pnSyncCode = new char[pnSyncCodeLength];221 for (i=pnSyncCodeLength-1; i>=0; i--)222 {223 pnSyncCode[i] = ( (_code & 0x0001) == 0 ) ? BIT0 : BIT1;224 _code >>= 1;225 }226 227 std::cout << "PacketizerSimpleBPSK: (sync code) ";228 for (i=0; (unsigned int) i<pnSyncCodeLength; i++)229 std::cout << (int) pnSyncCode[i];230 std::cout << std::endl;231 232 }233 234 void PacketizerSimpleBPSK_i::ConfigureControlData( unsigned int _data )235 {236 if ( controlBlock != NULL )237 delete [] controlBlock;238 239 signed int i;240 controlBlock = new char[controlBlockLength];241 for (i=controlBlockLength-1; i>=0; i--)242 {243 controlBlock[i] = ( (_data & 0x0001) == 0 ) ? BIT0 : BIT1;244 _data >>= 1;245 }246 247 }248 249 void PacketizerSimpleBPSK_i::ConfigurePNEOMCode( unsigned int _code )250 {251 if ( pnEOMCode != NULL )252 delete [] pnEOMCode;253 254 signed int i;255 pnEOMCode = new char[pnEOMCodeLength];256 for (i=pnEOMCodeLength-1; i>=0; i--)257 {258 pnEOMCode[i] = ( (_code & 0x0001) == 0 ) ? BIT0 : BIT1;259 _code >>= 1;260 }261 262 std::cout << "PacketizerSimpleBPSK: (eom code) ";263 for (i=0; (unsigned int) i<pnEOMCodeLength; i++)264 std::cout << (int) pnEOMCode[i];265 std::cout << std::endl;266 267 }268 115 269 116 void PacketizerSimpleBPSK_i::RunLoop() … … 288 135 289 136 //dataBlockLength = data_bits_in->length(); 290 bits_out.length( preambleLength + 291 pnSyncCodeLength + 292 controlBlockLength + 293 dataBlockLength + 294 pnEOMCodeLength ); 295 N=0; 296 DEBUG(7, PacketizerSimpleBPSK, "preparing to copy data...") 297 298 DEBUG(7, PacketizerSimpleBPSK, "copying preamble") 299 // copy preamble sync pattern 300 for (i=0; i<preambleLength; i++) 301 bits_out[i] = preamble[i]; 302 N += preambleLength; 137 bits_out.length( 512 ); 303 138 304 139 DEBUG(7, PacketizerSimpleBPSK, "copying P/N sync code") 305 140 // copy P/N sync code 306 for (i=0; i< pnSyncCodeLength; i++)141 for (i=0; i<63; i++) 307 142 bits_out[N+i] = pnSyncCode[i]; 308 N += pnSyncCodeLength;143 N += 63; 309 144 310 145 DEBUG(7, PacketizerSimpleBPSK, "copying control data") 311 unsigned int ctrl; 312 ctrl = k | (k<<5) | (k<<10); 313 ConfigureControlData( ctrl ); 314 // copy control data 315 for (i=0; i<controlBlockLength; i++) 316 bits_out[N+i] = (*control_bits_in)[i];//controlBlock[i]; 317 N += controlBlockLength; 146 N += 49; 318 147 319 148 DEBUG(7, PacketizerSimpleBPSK, "copying data block") 320 // copy data block 321 for (i=0; i<dataBlockLength; i++) 149 for (i=0; i<400; i++) 322 150 bits_out[N+i] = (*data_bits_in)[i]; 323 N += dataBlockLength; 324 325 DEBUG(7, PacketizerSimpleBPSK, "copying P/N EOM code") 326 // copy P/N eom code 327 for (i=0; i<pnEOMCodeLength; i++) 328 bits_out[N+i] = pnEOMCode[i]; 329 N += pnEOMCodeLength; 151 N += 400; 330 152 331 153 DEBUG(5, PacketizerSimpleBPSK, "pushing data " << N << " samples...") -
experimental/components/PacketizerSimpleBPSK/src/PacketizerSimpleBPSK.h
r4100 r4104 35 35 #include "standardinterfaces/realChar_p.h" 36 36 37 #include "PacketizerDSP.h" 37 38 38 class PacketizerSimpleBPSK_i : public virtual Resource_impl 39 class PacketizerSimpleBPSK_i : public virtual Resource_impl, public PacketizerDSP 39 40 { 40 41 public: … … 96 97 standardInterfaces_i::realChar_u *dataOut_0; // output packet 97 98 98 // algorithm methods 99 void ConfigurePreamble(); 100 void ConfigurePNSyncCode( unsigned int _code ); 101 void ConfigureControlData( unsigned int _data ); 102 void ConfigurePNEOMCode( unsigned int _code ); 103 104 // algorithm variables 105 char * preamble; 106 unsigned int preambleLength; 107 char * pnSyncCode; 108 unsigned int pnSyncCodeLength; 109 char * controlBlock; 110 unsigned int controlBlockLength; 111 // char * dataBlock; 112 unsigned int dataBlockLength; 113 char * pnEOMCode; 114 unsigned int pnEOMCodeLength; 99 /// Operational mode 100 enum { 101 ASSEMBLE_PN_PACKET_SYNC_CODE, 102 ASSEMBLE_CONTROL_CODES, 103 ASSEMBLE_PACKET 104 } operationalMode; 115 105 116 106 };