| | |
| | | * Initialize fifo |
| | | * @param fifo |
| | | */ |
| | | void fifo_init(scpi_fifo_t * fifo, int16_t * data, int16_t size) { |
| | | void fifo_init(scpi_fifo_t * fifo, scpi_error_t * data, int16_t size) { |
| | | fifo->wr = 0; |
| | | fifo->rd = 0; |
| | | fifo->count = 0; |
| | |
| | | /** |
| | | * Add element to fifo. If fifo is full, return FALSE. |
| | | * @param fifo |
| | | * @param value |
| | | * @param err |
| | | * @param info |
| | | * @return |
| | | */ |
| | | scpi_bool_t fifo_add(scpi_fifo_t * fifo, int16_t value) { |
| | | scpi_bool_t fifo_add(scpi_fifo_t * fifo, int16_t err, char * info) { |
| | | /* FIFO full? */ |
| | | if (fifo_is_full(fifo)) { |
| | | return FALSE; |
| | | } |
| | | |
| | | fifo->data[fifo->wr] = value; |
| | | fifo->data[fifo->wr].error_code = err; |
| | | fifo->data[fifo->wr].device_dependent_info = info; |
| | | fifo->wr = (fifo->wr + 1) % (fifo->size); |
| | | fifo->count += 1; |
| | | return TRUE; |
| | |
| | | * @param value |
| | | * @return FALSE - fifo is empty |
| | | */ |
| | | scpi_bool_t fifo_remove(scpi_fifo_t * fifo, int16_t * value) { |
| | | scpi_bool_t fifo_remove(scpi_fifo_t * fifo, scpi_error_t * value) { |
| | | /* FIFO empty? */ |
| | | if (fifo_is_empty(fifo)) { |
| | | return FALSE; |
| | |
| | | * @param value |
| | | * @return FALSE - fifo is empty |
| | | */ |
| | | scpi_bool_t fifo_remove_last(scpi_fifo_t * fifo, int16_t * value) { |
| | | scpi_bool_t fifo_remove_last(scpi_fifo_t * fifo, scpi_error_t * value) { |
| | | /* FIFO empty? */ |
| | | if (fifo_is_empty(fifo)) { |
| | | return FALSE; |