Sendiq accept u8 iq input

v2beta
F5OEO 2018-08-06 09:57:26 +00:00
rodzic da8b283697
commit 3712d3044a
3 zmienionych plików z 66 dodań i 26 usunięć

Wyświetl plik

@ -28,7 +28,7 @@ LDFLAGS_Pissb = librpitx/src/librpitx.a -lm -lrt -lpthread -lsndfile -lliquid
../pichirp : chirp/chirp.cpp
$(CC) $(CFLAGS) -o ../pichirp chirp/chirp.cpp $(LDFLAGS)
../sendiq : sendiq.cpp
../sendiq : sendiq.cpp librpitx/src/librpitx.a
$(CC) $(CFLAGS) -o ../sendiq sendiq.cpp $(LDFLAGS)
../tune : tune.cpp
@ -53,7 +53,7 @@ LDFLAGS_Pidcf77 = librpitx/src/librpitx.a -lm -lrt -lpthread
$(CC) $(CFLAGS_Piam) -o ../pidcf77 ../dcf77/pidcf77.c $(LDFLAGS_Piam)
clean:
rm -f ../rpitx ../pissb ../pisstv ../pifsq ../pifm ../piam ../pidcf77 ../pichirp ../tune RpiTx.o mailbox.o RpiGpio.o RpiDma.o
rm -f ../rpitx ../pissb ../pisstv ../pifsq ../pifm ../piam ../pidcf77 ../pichirp ../tune ../freedv RpiTx.o mailbox.o RpiGpio.o RpiDma.o
install: all
install -m 0755 ../pisstv /usr/bin

Wyświetl plik

@ -339,7 +339,7 @@ uint8_t crc8(char * text)
{
uint8_t crc='\0';
uint8_t ch;
int i;
size_t i;
for(i = 0; i < strlen(text); i++)
{
ch = text[i];

Wyświetl plik

@ -37,7 +37,7 @@ terminate(int num)
fprintf(stderr,"Caught signal - Terminating\n");
}
int main(int argc, char* argv[])
{
int a;
@ -47,9 +47,11 @@ int main(int argc, char* argv[])
bool loop_mode_flag=false;
char* FileName=NULL;
int Harmonic=1;
enum {typeiq_i16,typeiq_u8};
int InputType=typeiq_i16;
while(1)
{
a = getopt(argc, argv, "i:f:s:h:l");
a = getopt(argc, argv, "i:f:s:h:lt:");
if(a == -1)
{
@ -75,6 +77,9 @@ int main(int argc, char* argv[])
case 'l': // loop mode
loop_mode_flag = true;
break;
case 't': // inout type
if(strcmp(optarg,"u8")==0) InputType=typeiq_u8;
break;
case -1:
break;
case '?':
@ -115,36 +120,71 @@ int main(int argc, char* argv[])
exit(0);
}
#define IQBURST 1280
#define IQBURST 1000
int SR=48000;
int FifoSize=512;
int FifoSize=IQBURST*4;
iqdmasync iqtest(SetFrequency,SampleRate,14,FifoSize);
iqtest.SetPLLMasterLoop(3,4,0);
short IQBuffer[IQBURST*2];
iqtest.print_clock_tree();
//iqtest.SetPLLMasterLoop(5,6,0);
std::complex<float> CIQBuffer[IQBURST];
while(running)
{
int nbread=fread(IQBuffer,sizeof(short),IQBURST*2,iqfile);
if(nbread>0)
{
for(int i=0;i<nbread/2;i++)
{
CIQBuffer[i]=std::complex<float>(IQBuffer[i*2]/32768.0,IQBuffer[i*2+1]/32768.0);
}
iqtest.SetIQSamples(CIQBuffer,nbread/2,Harmonic);
}
else
{
printf("End of file\n");
if(loop_mode_flag)
fseek ( iqfile , 0 , SEEK_SET );
else
running=false;
switch(InputType)
{
case typeiq_i16:
{
static short IQBuffer[IQBURST*2];
int nbread=fread(IQBuffer,sizeof(short),IQBURST*2,iqfile);
if(nbread==IQBURST*2)
{
for(int i=0;i<nbread/2;i++)
{
CIQBuffer[i]=std::complex<float>(IQBuffer[i*2]*10/32768.0,IQBuffer[i*2+1]*10/32768.0);
}
}
else
{
printf("End of file\n");
if(loop_mode_flag)
fseek ( iqfile , 0 , SEEK_SET );
else
running=false;
}
}
break;
case typeiq_u8:
{
static unsigned char IQBuffer[IQBURST*2];
int nbread=fread(IQBuffer,sizeof(unsigned char),IQBURST*2,iqfile);
if(nbread==IQBURST*2)
{
for(int i=0;i<nbread/2;i++)
{
CIQBuffer[i]=std::complex<float>((IQBuffer[i*2]-127.5)/128.0,(IQBuffer[i*2+1]-127.5)/128.0);
//printf("%f %f\n",(IQBuffer[i*2]-127.5)/128.0,(IQBuffer[i*2+1]-127.5)/128.0);
}
}
else
{
printf("End of file\n");
if(loop_mode_flag)
fseek ( iqfile , 0 , SEEK_SET );
else
running=false;
}
}
break;
}
iqtest.SetIQSamples(CIQBuffer,IQBURST,Harmonic);
}
iqtest.stop();