plptools
Loading...
Searching...
No Matches
datalink.cc File Reference
#include "bufferarray.h"
#include "config.h"
#include <mutex>
#include <pthread.h>
#include <string>
#include <cstring>
#include <fstream>
#include <iomanip>
#include <iowatch.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/param.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/types.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <termios.h>
#include <signal.h>
#include <fcntl.h>
#include "link.h"
#include "mp_serial.h"
#include "ncp_log.h"
#include "datalink.h"
Include dependency graph for datalink.cc:

Go to the source code of this file.

Macros

#define BUFLEN   4096
 
#define BUFMASK   (BUFLEN-1)
 
#define hasSpace(dir)   (((dir##Write + 1) & BUFMASK) != dir##Read)
 
#define hasData(dir)   (dir##Write != dir##Read)
 
#define inca(idx, amount)
 
#define inc1(idx)   inca(idx, 1)
 
#define normalize(idx)   do { idx &= BUFMASK; } while (0)
 
#define BAUD_RATES_TABLE_SIZE   (sizeof(kBaudRatesTable) / sizeof(int))
 

Functions

static void usr1handler (int sig)
 Signal handler does nothing. More...
 
void log_data (unsigned short options, unsigned short category, std::string description, unsigned char *buffer, int length)
 
static void * data_pump_thread (void *arg)
 

Variables

static const int kBaudRatesTable []
 

Macro Definition Documentation

◆ BAUD_RATES_TABLE_SIZE

#define BAUD_RATES_TABLE_SIZE   (sizeof(kBaudRatesTable) / sizeof(int))

Definition at line 214 of file datalink.cc.

◆ BUFLEN

#define BUFLEN   4096

Definition at line 50 of file datalink.cc.

◆ BUFMASK

#define BUFMASK   (BUFLEN-1)

Definition at line 51 of file datalink.cc.

◆ hasData

#define hasData (   dir)    (dir##Write != dir##Read)

Definition at line 53 of file datalink.cc.

◆ hasSpace

#define hasSpace (   dir)    (((dir##Write + 1) & BUFMASK) != dir##Read)

Definition at line 52 of file datalink.cc.

◆ inc1

#define inc1 (   idx)    inca(idx, 1)

Definition at line 57 of file datalink.cc.

◆ inca

#define inca (   idx,
  amount 
)
Value:
do { \
idx = (idx + amount) & BUFMASK; \
} while (0)

Definition at line 54 of file datalink.cc.

◆ normalize

#define normalize (   idx)    do { idx &= BUFMASK; } while (0)

Definition at line 58 of file datalink.cc.

Function Documentation

◆ data_pump_thread()

static void * data_pump_thread ( void *  arg)
static

Definition at line 84 of file datalink.cc.

◆ log_data()

void log_data ( unsigned short  options,
unsigned short  category,
std::string  description,
unsigned char *  buffer,
int  length 
)

Definition at line 70 of file datalink.cc.

◆ usr1handler()

static void usr1handler ( int  sig)
static

Signal handler does nothing.

It just exists for having the select() below return an interrupted system call.

Definition at line 66 of file datalink.cc.

Variable Documentation

◆ kBaudRatesTable

const int kBaudRatesTable[]
static
Initial value:
= {
115200,
57600,
38400,
19200,
9600,
}

Definition at line 207 of file datalink.cc.