kopia lustrzana https://github.com/cariboulabs/cariboulite
bug fix in tsqueue, screenshots
rodzic
c57291a935
commit
f92b202abf
Plik binarny nie jest wyświetlany.
Po Szerokość: | Wysokość: | Rozmiar: 1.8 MiB |
Plik binarny nie jest wyświetlany.
Po Szerokość: | Wysokość: | Rozmiar: 951 KiB |
|
@ -78,10 +78,6 @@ io_utils/io_utils_sys_info.h
|
|||
ustimer/ustimer.h
|
||||
../src/cariboulite_config/ustimer/ustimer.h
|
||||
|
||||
../src/cariboulite_config/cariboulite_config_default.h
|
||||
cariboulite_config.h
|
||||
../src/cariboulite_config/cariboulite_config.h
|
||||
|
||||
../src/cariboulite_radios.h
|
||||
cariboulite_config/cariboulite_config.h
|
||||
../src/cariboulite_config/cariboulite_config.h
|
||||
|
@ -228,14 +224,6 @@ signal.h
|
|||
time.h
|
||||
-
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.cpp
|
||||
math.h
|
||||
-
|
||||
Cariboulite.hpp
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
|
||||
cariboulite_config/cariboulite_config_default.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/cariboulite_config/cariboulite_config_default.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
|
||||
SoapySDR/Device.hpp
|
||||
-
|
||||
|
@ -274,33 +262,3 @@ cariboulite_radios.h
|
|||
Cariboulite.hpp
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/CaribouliteSensors.cpp
|
||||
Cariboulite.hpp
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/CaribouliteSession.cpp
|
||||
Cariboulite.hpp
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
|
||||
cariboulite_config/cariboulite_config_default.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/cariboulite_config/cariboulite_config_default.h
|
||||
SoapySDR/Logger.hpp
|
||||
-
|
||||
mutex
|
||||
-
|
||||
cstddef
|
||||
-
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/CaribouliteStream.cpp
|
||||
Cariboulite.hpp
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
|
||||
cariboulite_config/cariboulite_config_default.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/cariboulite_config/cariboulite_config_default.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/SoapyCariboulite.cpp
|
||||
SoapySDR/Device.hpp
|
||||
-
|
||||
SoapySDR/Registry.hpp
|
||||
-
|
||||
Cariboulite.hpp
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/soapy_api/Cariboulite.hpp
|
||||
|
||||
|
|
|
@ -6,120 +6,6 @@
|
|||
|
||||
#IncludeRegexTransform:
|
||||
|
||||
../src/caribou_fpga/caribou_fpga.h
|
||||
stdio.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
io_utils/io_utils.h
|
||||
../src/caribou_fpga/io_utils/io_utils.h
|
||||
io_utils/io_utils_spi.h
|
||||
../src/caribou_fpga/io_utils/io_utils_spi.h
|
||||
|
||||
../src/io_utils/io_utils.h
|
||||
stdio.h
|
||||
-
|
||||
string.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
stdlib.h
|
||||
-
|
||||
pigpio/pigpio.h
|
||||
../src/io_utils/pigpio/pigpio.h
|
||||
|
||||
../src/io_utils/io_utils_spi.h
|
||||
stdio.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
pthread.h
|
||||
-
|
||||
io_utils.h
|
||||
../src/io_utils/io_utils.h
|
||||
|
||||
../src/io_utils/io_utils_sys_info.h
|
||||
stdio.h
|
||||
-
|
||||
string.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
stdlib.h
|
||||
-
|
||||
unistd.h
|
||||
-
|
||||
fcntl.h
|
||||
-
|
||||
signal.h
|
||||
-
|
||||
string.h
|
||||
-
|
||||
sys/ioctl.h
|
||||
-
|
||||
sys/mman.h
|
||||
-
|
||||
|
||||
../src/io_utils/pigpio/pigpio.h
|
||||
stddef.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
pthread.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
../src/io_utils/pigpio/pigpio.h
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
|
||||
../src/latticeice40/latticeice40.h
|
||||
stdint.h
|
||||
-
|
||||
linux/types.h
|
||||
-
|
||||
io_utils/io_utils.h
|
||||
../src/latticeice40/io_utils/io_utils.h
|
||||
io_utils/io_utils_spi.h
|
||||
../src/latticeice40/io_utils/io_utils_spi.h
|
||||
|
||||
../src/rffc507x/rffc507x.h
|
||||
stdio.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
io_utils/io_utils.h
|
||||
../src/rffc507x/io_utils/io_utils.h
|
||||
io_utils/io_utils_spi.h
|
||||
../src/rffc507x/io_utils/io_utils_spi.h
|
||||
|
||||
../src/ustimer/ustimer.h
|
||||
stdlib.h
|
||||
-
|
||||
unistd.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
signal.h
|
||||
-
|
||||
time.h
|
||||
-
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
|
||||
at86rf215_common.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_common.h
|
||||
|
@ -156,6 +42,16 @@ at86rf215_common.h
|
|||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215_regs.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.h
|
||||
stdio.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
io_utils/io_utils.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/io_utils/io_utils.h
|
||||
io_utils/io_utils_spi.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/io_utils/io_utils_spi.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_smi/caribou_smi.h
|
||||
pthread.h
|
||||
-
|
||||
|
@ -186,27 +82,13 @@ ustimer/ustimer.h
|
|||
caribou_smi/caribou_smi.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_smi/caribou_smi.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.c
|
||||
zf_log/zf_log.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_fpga_firmware.h
|
||||
stdio.h
|
||||
-
|
||||
stdlib.h
|
||||
stdint.h
|
||||
-
|
||||
unistd.h
|
||||
time.h
|
||||
-
|
||||
fcntl.h
|
||||
-
|
||||
string.h
|
||||
-
|
||||
linux/random.h
|
||||
-
|
||||
sys/ioctl.h
|
||||
-
|
||||
cariboulite_radios.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
|
||||
cariboulite_events.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
|
||||
cariboulite_config/cariboulite_config.h
|
||||
|
@ -214,5 +96,145 @@ cariboulite_config/cariboulite_config.h
|
|||
at86rf215/at86rf215.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.c
|
||||
zf_log/zf_log.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
|
||||
stdio.h
|
||||
-
|
||||
cariboulite_setup.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.h
|
||||
cariboulite_events.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_events.h
|
||||
cariboulite_fpga_firmware.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_fpga_firmware.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_setup.h
|
||||
cariboulite_radios.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_radios.h
|
||||
latticeice40/latticeice40.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/latticeice40/latticeice40.h
|
||||
caribou_fpga/caribou_fpga.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_fpga/caribou_fpga.h
|
||||
at86rf215/at86rf215.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/at86rf215/at86rf215.h
|
||||
rffc507x/rffc507x.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x.h
|
||||
caribou_smi/caribou_smi.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/caribou_smi/caribou_smi.h
|
||||
io_utils/io_utils.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils.h
|
||||
io_utils/io_utils_spi.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils_spi.h
|
||||
io_utils/io_utils_sys_info.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils_sys_info.h
|
||||
ustimer/ustimer.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/ustimer/ustimer.h
|
||||
cariboulite_config/cariboulite_config.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/cariboulite_config/cariboulite_config.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils.h
|
||||
stdio.h
|
||||
-
|
||||
string.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
stdlib.h
|
||||
-
|
||||
pigpio/pigpio.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/pigpio/pigpio.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils_spi.h
|
||||
stdio.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
pthread.h
|
||||
-
|
||||
io_utils.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/io_utils_sys_info.h
|
||||
stdio.h
|
||||
-
|
||||
string.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
stdlib.h
|
||||
-
|
||||
unistd.h
|
||||
-
|
||||
fcntl.h
|
||||
-
|
||||
signal.h
|
||||
-
|
||||
string.h
|
||||
-
|
||||
sys/ioctl.h
|
||||
-
|
||||
sys/mman.h
|
||||
-
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/pigpio/pigpio.h
|
||||
stddef.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
pthread.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/io_utils/pigpio/pigpio.h
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
pigpio.h
|
||||
-
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/latticeice40/latticeice40.h
|
||||
stdint.h
|
||||
-
|
||||
linux/types.h
|
||||
-
|
||||
io_utils/io_utils.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/latticeice40/io_utils/io_utils.h
|
||||
io_utils/io_utils_spi.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/latticeice40/io_utils/io_utils_spi.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/rffc507x.h
|
||||
stdio.h
|
||||
-
|
||||
stdint.h
|
||||
-
|
||||
io_utils/io_utils.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/io_utils/io_utils.h
|
||||
io_utils/io_utils_spi.h
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/rffc507x/io_utils/io_utils_spi.h
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/ustimer/ustimer.h
|
||||
stdlib.h
|
||||
-
|
||||
unistd.h
|
||||
-
|
||||
stdio.h
|
||||
-
|
||||
signal.h
|
||||
-
|
||||
time.h
|
||||
-
|
||||
|
||||
/home/pi/projects/cariboulite/software/libcariboulite/src/zf_log/zf_log.h
|
||||
|
||||
|
|
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
|
@ -323,6 +323,8 @@ int cariboulite_release_submodules(cariboulite_st* sys)
|
|||
//=================================================
|
||||
int cariboulite_init_driver(cariboulite_st *sys, void* signal_handler_cb, cariboulite_board_info_st *info)
|
||||
{
|
||||
zf_log_set_output_level(ZF_LOG_ERROR);
|
||||
|
||||
ZF_LOGI("driver initializing");
|
||||
if (info == NULL)
|
||||
{
|
||||
|
|
|
@ -85,9 +85,9 @@ int tsqueue_release(tsqueue_st* q)
|
|||
}
|
||||
|
||||
//=======================================================================
|
||||
int tsqueue_insert_push_item(tsqueue_st* q, tsqueue_item_st* item, int timeout_us)
|
||||
int tsqueue_insert_push_item(tsqueue_st* q, tsqueue_item_st* item, int timeout_us, int override)
|
||||
{
|
||||
return tsqueue_insert_push_buffer(q, item->data, item->length, item->metadata, timeout_us);
|
||||
return tsqueue_insert_push_buffer(q, item->data, item->length, item->metadata, timeout_us, override);
|
||||
}
|
||||
|
||||
|
||||
|
@ -145,14 +145,20 @@ int tsqueue_wait_on_sem(sem_t* sem, int timeout_us)
|
|||
}
|
||||
|
||||
//=======================================================================
|
||||
int tsqueue_insert_push_buffer(tsqueue_st* q, uint8_t* buffer, int length, uint32_t metadata, int timeout_us)
|
||||
int tsqueue_insert_push_buffer(tsqueue_st* q, uint8_t* buffer, int length, uint32_t metadata, int timeout_us, int override)
|
||||
{
|
||||
int error = 0;
|
||||
if (q == NULL) return TSQUEUE_NOT_INITIALIZED;
|
||||
|
||||
int res = tsqueue_wait_on_sem(&q->empty, timeout_us);
|
||||
if (res < 0) return res;
|
||||
|
||||
if (!override)
|
||||
{
|
||||
// wait until empty rises => someone poped an item thus some place was
|
||||
// freed for a new item. immediatelly after catching the event, decrease empty (notice it is full)
|
||||
// in the case of override - no waiting is needed
|
||||
int res = tsqueue_wait_on_sem(&q->empty, timeout_us);
|
||||
if (res < 0) return res;
|
||||
}
|
||||
|
||||
// acquire the mutex lock
|
||||
pthread_mutex_lock(&q->mutex);
|
||||
|
||||
|
@ -173,7 +179,26 @@ int tsqueue_insert_push_buffer(tsqueue_st* q, uint8_t* buffer, int length, uint3
|
|||
if (q->head >= q->max_num_items) q->head = 0;
|
||||
q->current_num_of_items ++;
|
||||
}
|
||||
else
|
||||
else if (override)
|
||||
{
|
||||
int res = tsqueue_wait_on_sem(&q->full, timeout_us);
|
||||
if (res < 0) return res;
|
||||
|
||||
int data_size = length;
|
||||
q->items[q->head].metadata = metadata;
|
||||
if (data_size > q->item_size_bytes)
|
||||
{
|
||||
printf("Incorrect item data size\n");
|
||||
data_size = q->item_size_bytes;
|
||||
}
|
||||
memcpy (q->items[q->head].data, buffer, data_size);
|
||||
q->items[q->head].length = data_size;
|
||||
q->head ++;
|
||||
if (q->head >= q->max_num_items) q->head = 0;
|
||||
q->tail ++;
|
||||
if (q->tail >= q->max_num_items) q->tail = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
error = TSQUEUE_FAILED_FULL;
|
||||
}
|
||||
|
|
|
@ -68,14 +68,14 @@ int tsqueue_release(tsqueue_st* q);
|
|||
* be changed by letting the function block until space is freed up in the queue. When there is not
|
||||
* sufficient space in the queue, the item is dropped and the "dropped" counter is increased.
|
||||
*/
|
||||
int tsqueue_insert_push_item(tsqueue_st* q, tsqueue_item_st* item, int timeout_us);
|
||||
int tsqueue_insert_push_item(tsqueue_st* q, tsqueue_item_st* item, int timeout_us, int override);
|
||||
|
||||
/*
|
||||
* Push a buffer to the queue
|
||||
* The same as before, but rather than an "item", a specific buffer, length and metadata are
|
||||
* cloned into the internal item local copy, and pushed to the queue
|
||||
*/
|
||||
int tsqueue_insert_push_buffer(tsqueue_st* q, uint8_t* buffer, int length, uint32_t metadata, int timeout_us);
|
||||
int tsqueue_insert_push_buffer(tsqueue_st* q, uint8_t* buffer, int length, uint32_t metadata, int timeout_us, int override);
|
||||
|
||||
/*
|
||||
* Pop an item from the queue with timeout
|
||||
|
|
|
@ -29,7 +29,7 @@ enum Cariboulite_Format
|
|||
};
|
||||
|
||||
#define BUFFER_SIZE_MS ( 10 )
|
||||
#define NUM_SAMPLEQUEUE_BUFS ( 10 )
|
||||
#define NUM_SAMPLEQUEUE_BUFS ( 30 )
|
||||
#define NUM_BYTES_PER_CPLX_ELEM ( 4 )
|
||||
#define GET_MTU_MS(ms) ( 4096*(ms) )
|
||||
#define GET_MTU_MS_BYTES(ms) ( GET_MTU_MS(ms) * NUM_BYTES_PER_CPLX_ELEM )
|
||||
|
|
|
@ -85,7 +85,8 @@ int SampleQueue::Write(uint8_t *buffer, size_t length, uint32_t meta, long timeo
|
|||
int res = tsqueue_insert_push_buffer(&queue,
|
||||
buffer + offset,
|
||||
current_length,
|
||||
meta, timeout_us);
|
||||
meta, timeout_us,
|
||||
true);
|
||||
switch (res)
|
||||
{
|
||||
case TSQUEUE_NOT_INITIALIZED:
|
||||
|
|
Ładowanie…
Reference in New Issue