make the code simpler
This commit is contained in:
parent
eb297bc731
commit
15f8b43c31
|
|
@ -15,10 +15,6 @@
|
||||||
#include "control_pipe.h"
|
#include "control_pipe.h"
|
||||||
|
|
||||||
#define CTL_BUFFER_SIZE 70
|
#define CTL_BUFFER_SIZE 70
|
||||||
#define GPIO_PAD_0_27 (0x2C/4)
|
|
||||||
#define GPIO_PAD_28_45 (0x30/4)
|
|
||||||
|
|
||||||
static volatile uint32_t *pad_reg;
|
|
||||||
|
|
||||||
int fd;
|
int fd;
|
||||||
FILE *f_ctl;
|
FILE *f_ctl;
|
||||||
|
|
@ -26,9 +22,8 @@ FILE *f_ctl;
|
||||||
/*
|
/*
|
||||||
* Opens a file (pipe) to be used to control the RDS coder, in non-blocking mode.
|
* Opens a file (pipe) to be used to control the RDS coder, in non-blocking mode.
|
||||||
*/
|
*/
|
||||||
int open_control_pipe(char *filename, volatile uint32_t *padreg)
|
int open_control_pipe(char *filename)
|
||||||
{
|
{
|
||||||
pad_reg = padreg;
|
|
||||||
fd = open(filename, O_RDWR | O_NONBLOCK);
|
fd = open(filename, O_RDWR | O_NONBLOCK);
|
||||||
if(fd == -1) return -1;
|
if(fd == -1) return -1;
|
||||||
|
|
||||||
|
|
@ -129,8 +124,7 @@ ResultAndArg poll_control_pipe() {
|
||||||
resarg.res = CONTROL_PIPE_PTY_SET;
|
resarg.res = CONTROL_PIPE_PTY_SET;
|
||||||
} else if(fifo[0] == 'P' && fifo[1] == 'W' && fifo[2] == 'R') {
|
} else if(fifo[0] == 'P' && fifo[1] == 'W' && fifo[2] == 'R') {
|
||||||
int power_level = atoi(arg);
|
int power_level = atoi(arg);
|
||||||
pad_reg[GPIO_PAD_0_27] = 0x5a000018 + power_level;
|
resarg.arg = (char)power_level;
|
||||||
pad_reg[GPIO_PAD_28_45] = 0x5a000018 + power_level;
|
|
||||||
printf("POWER set to: \"%s\"\n", arg);
|
printf("POWER set to: \"%s\"\n", arg);
|
||||||
resarg.res = CONTROL_PIPE_PWR_SET;
|
resarg.res = CONTROL_PIPE_PWR_SET;
|
||||||
} else if(fifo[0] == 'R' && fifo[1] == 'T' && fifo[2] == 'B') {
|
} else if(fifo[0] == 'R' && fifo[1] == 'T' && fifo[2] == 'B') {
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,6 @@ typedef struct {
|
||||||
char *arg;
|
char *arg;
|
||||||
} ResultAndArg;
|
} ResultAndArg;
|
||||||
|
|
||||||
extern int open_control_pipe(char *filename, volatile uint32_t *padreg);
|
extern int open_control_pipe(char *filename);
|
||||||
extern int close_control_pipe();
|
extern int close_control_pipe();
|
||||||
extern ResultAndArg poll_control_pipe();
|
extern ResultAndArg poll_control_pipe();
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ int tx(uint32_t carrier_freq, char *audio_file, uint16_t pi, char *ps, char *rt,
|
||||||
pad_reg = (volatile uint32_t *)map_peripheral(PAD_VIRT_BASE, PAD_LEN);
|
pad_reg = (volatile uint32_t *)map_peripheral(PAD_VIRT_BASE, PAD_LEN);
|
||||||
pad_reg[GPIO_PAD_0_27] = 0x5a000018 + power;
|
pad_reg[GPIO_PAD_0_27] = 0x5a000018 + power;
|
||||||
pad_reg[GPIO_PAD_28_45] = 0x5a000018 + power;
|
pad_reg[GPIO_PAD_28_45] = 0x5a000018 + power;
|
||||||
|
|
||||||
// Data structures for baseband data
|
// Data structures for baseband data
|
||||||
float data[DATA_SIZE];
|
float data[DATA_SIZE];
|
||||||
float devfreq[DATA_SIZE];
|
float devfreq[DATA_SIZE];
|
||||||
|
|
@ -189,6 +189,9 @@ int tx(uint32_t carrier_freq, char *audio_file, uint16_t pi, char *ps, char *rt,
|
||||||
varying_ps = 0;
|
varying_ps = 0;
|
||||||
} else if(pollResult.res == CONTROL_PIPE_RDS_SET) {
|
} else if(pollResult.res == CONTROL_PIPE_RDS_SET) {
|
||||||
drds = (int)pollResult.arg;
|
drds = (int)pollResult.arg;
|
||||||
|
} else if(pollResult.res == CONTROL_PIPE_PWR_SET) {
|
||||||
|
pad_reg[GPIO_PAD_0_27] = 0x5a000018 + (int)pollResult.arg;
|
||||||
|
pad_reg[GPIO_PAD_28_45] = 0x5a000018 + (int)pollResult.arg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue