nidas v1.2.3
|
#include <nidas/util/SerialPort.h>
#include <nidas/util/SerialOptions.h>
#include <nidas/util/Thread.h>
#include <nidas/util/UTime.h>
#include <nidas/util/util.h>
#include <nidas/util/auto_ptr.h>
#include <vector>
#include <cstring>
#include <memory>
#include <iostream>
#include <iomanip>
#include <assert.h>
#include <limits.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <cstdlib>
#include <math.h>
#include <stdio.h>
#include <stdint.h>
Classes | |
class | Sender |
class | Receiver |
class | ModemLineSetter |
class | ModemLineMonitor |
Functions | |
static uint32_t | cksum (const unsigned char *input, size_t len) |
int | usage (const char *argv0) |
int | parseRunstring (int argc, char **argv) |
void | openPort () |
static void | sigAction (int sig, siginfo_t *siginfo, void *) |
static void | setupSignals () |
int | main (int argc, char **argv) |
static int | __attribute__ ((__unused__)) cksum_test(int |
if (! fp) | |
fclose (fp) | |
printf ("%u %08x %d\n", crc, crc, len) | |
Variables | |
static float | rate = -1.0 |
static bool | isSender = true |
static bool | ascii = false |
static int | dataSize = 0 |
static unsigned int | nPacketsOut = 999998 |
static string | defaultTermioOpts = "9600n81lnr" |
static string | termioOpts = defaultTermioOpts |
static string | device |
static bool | verbose = false |
static int | timeoutSecs = 0 |
static int | interrupted = 0 |
static unsigned int | periodMsec = 0 |
static bool | testModemLines = false |
static n_u::SerialPort | port |
static string | shortName |
const int | START_OF_DATA = 23 |
Format of test packet: | |
const int | LENGTH_OF_CRC = 8 |
const int | MIN_PACKET_LENGTH = START_OF_DATA + LENGTH_OF_CRC + 1 |
int | MAX_PACKET_LENGTH = 65535 |
int | MAX_DATA_LENGTH = MAX_PACKET_LENGTH - MIN_PACKET_LENGTH |
char | ETX = '\x04' |
unsigned int | EOF_NPACK = 999999 |
static uint32_t const | crctab [256] |
static int char **FILE * | fp = fopen("cksum.c","r") |
int | len = fread(buf,1,sizeof(buf),fp) |
uint32_t | crc = cksum(buf,len) |
return | |
|
static |
|
static |
References crc, crctab, and len.
Referenced by nidas::dynld::GPS_NMEA_Serial::appendChecksum(), nidas::dynld::raf::A2D_Serial::checkCkSum(), nidas::dynld::isff::WisardMote::checkCRC(), nidas::dynld::GPS_NMEA_Serial::findChecksum(), nidas::util::NMEAchecksumOK(), nidas::dynld::GPS_Novatel_Serial::novatelChecksumOK(), Receiver::scanBuffer(), Sender::send(), and ubx_cksum().
fclose | ( | fp | ) |
if | ( | ! | fp | ) |
int main | ( | int | argc, |
char ** | argv ) |
References ascii, dataSize, isSender, openPort(), parseRunstring(), setupSignals(), nidas::util::Thread::start(), testModemLines, and timeoutSecs.
void openPort | ( | ) |
References dataSize, device, isSender, MIN_PACKET_LENGTH, MSECS_PER_SEC, nidas::util::SerialOptions::parse(), periodMsec, port, rate, shortName, termioOpts, and testModemLines.
Referenced by main().
int parseRunstring | ( | int | argc, |
char ** | argv ) |
References ascii, dataSize, device, isSender, MSECS_PER_SEC, nPacketsOut, periodMsec, rate, termioOpts, testModemLines, timeoutSecs, usage(), and verbose.
Referenced by main().
|
static |
References sigAction().
Referenced by main().
|
static |
References interrupted.
Referenced by setupSignals().
int usage | ( | const char * | argv0 | ) |
References defaultTermioOpts.
Referenced by parseRunstring().
|
static |
Referenced by main(), and parseRunstring().
Referenced by nidas::dynld::isff::WisardMote::checkCRC(), cksum(), Receiver::scanBuffer(), and Sender::send().
|
static |
Referenced by cksum().
|
static |
Referenced by main(), openPort(), and parseRunstring().
|
static |
Referenced by usage().
|
static |
Referenced by openPort(), parseRunstring(), and Receiver::run().
unsigned int EOF_NPACK = 999999 |
Referenced by Sender::run(), and Receiver::scanBuffer().
char ETX = '\x04' |
Referenced by nidas::dynld::UDPSampleOutput::VariableListWorker::run(), Receiver::scanBuffer(), and Sender::send().
int char** FILE* fp = fopen("cksum.c","r") |
Referenced by nidas::core::DSMSensor::applyConversions(), nidas::dynld::isff::NCAR_TRH::convertVariable(), copy_variables_to_record(), nidas::dynld::ParoSci_202BG_P::createPressureSample(), div_10(), nidas::core::SampleAverager::flush(), nidas::util::Process::getVMemSize(), nidas::core::DerivedDataReader::parseIWGADTS(), PacketReader::parseRunstring(), nidas::dynld::IR104_Relays::process(), nidas::dynld::iss::WICORSensor::process(), nidas::dynld::DSC_Event::process(), nidas::dynld::DSC_FreqCounter::process(), nidas::dynld::DSC_PulseCounter::process(), nidas::dynld::ParoSci_202BG_T::process(), nidas::dynld::raf::DSMAnalogSensor::process(), nidas::dynld::A2DSensor::process(), nidas::dynld::raf::DSMAnalogSensor::readFilterFile(), TeeI2C::readNMEAFile(), nidas::core::SampleAverager::receive(), nidas::dynld::AsciiOutput::receive(), nidas::dynld::raf::CVIOutput::receive(), nidas::dynld::raf::DSMMesaSensor::selectfiletype(), nidas::dynld::raf::DSMMesaSensor::sendFPGACodeToDriver(), nidas::core::Polynomial::setCoefficients(), nidas::core::DSMSensor::trimUnparsed(), nidas::dynld::isff::WisardMote::unpack100thSec(), nidas::dynld::isff::WisardMote::unpack10thSec(), nidas::dynld::isff::WisardMote::unpackAccumSec(), nidas::dynld::isff::WisardMote::unpackCNR2(), nidas::dynld::isff::WisardMote::unpackGsoil(), nidas::dynld::isff::WisardMote::unpackInt16(), nidas::dynld::isff::WisardMote::unpackInt32(), nidas::dynld::isff::WisardMote::unpackNR01(), nidas::dynld::isff::WisardMote::unpackPicTime(), nidas::dynld::isff::WisardMote::unpackPicTimeFields(), nidas::dynld::isff::WisardMote::unpackPower(), nidas::dynld::isff::WisardMote::unpackQsoil(), nidas::dynld::isff::WisardMote::unpackRlw(), nidas::dynld::isff::WisardMote::unpackRlwKZ(), nidas::dynld::isff::WisardMote::unpackRnet(), nidas::dynld::isff::WisardMote::unpackRsw(), nidas::dynld::isff::WisardMote::unpackRsw2(), nidas::dynld::isff::WisardMote::unpackStatus(), nidas::dynld::isff::WisardMote::unpackTP01(), nidas::dynld::isff::WisardMote::unpackTRH(), nidas::dynld::isff::WisardMote::unpackTsoil(), nidas::dynld::isff::WisardMote::unpackUint16(), nidas::dynld::isff::WisardMote::unpackUint32(), and nidas::dynld::isff::WisardMote::unpackXbee().
|
static |
Referenced by Sender::run(), Receiver::run(), ModemLineSetter::run(), ModemLineMonitor::run(), and sigAction().
|
static |
Referenced by main(), openPort(), and parseRunstring().
int len = fread(buf,1,sizeof(buf),fp) |
Referenced by nidas::dynld::UDPSampleOutput::allocateBuffer(), nidas::dynld::GPS_NMEA_Serial::appendChecksum(), nidas::core::IOStream::backup(), nidas::dynld::Uio48Sensor::buildSampleScanner(), nidas::dynld::GPS_NMEA_Serial::calcChecksum(), nidas::dynld::GPS_NMEA_Serial::checksumOK(), cksum(), nidas::dynld::raf::SppSerial::computeCheckSum(), dmmat_ioctl_a2d(), dmmat_ioctl_d2a(), dmmat_ioctl_d2d(), nidas::dynld::raf::A2D_Serial::extractStatus(), nidas::dynld::raf::UDPArincSensor::extractStatus(), nidas::dynld::GPS_NMEA_Serial::findChecksum(), nidas::dynld::raf::UHSAS_Serial::findMarker(), Sender::flush(), nidas::core::CharacterSensor::fromDOMElement(), nidas::util::SocketImpl::getKeepAlive(), nidas::util::SocketImpl::getKeepAliveIdleSecs(), nidas::core::getSample(), nidas::core::SamplePool< SampleType >::getSample(), nidas::core::getSample(), nidas::core::getSample(), nidas::core::SamplePool< SampleType >::getSample(), nidas::util::SocketImpl::getTcpNoDelay(), nidas::core::DSMSensor::ioctl(), main(), main(), ncar_a2d_ioctl(), nidas::core::DriverSampleScanner::nextSample(), nidas::util::NMEAchecksumOK(), nidas::dynld::GPS_Novatel_Serial::novatelChecksumOK(), nidas::core::SampleInputHeader::parseMagic(), nidas::core::SampleInputHeader::parseTag(), pc104sg_ioctl(), nidas::dynld::isff::CSI_CRX_Binary::process(), nidas::dynld::isff::CU_Coldwire::process(), nidas::dynld::isff::CSI_IRGA_Sonic::process(), nidas::dynld::raf::LamsNetSensor::process(), nidas::dynld::raf::LamsSensor::process(), nidas::dynld::raf::Watlow::process(), nidas::core::SamplePool< SampleType >::putSample(), nidas::util::SerialPort::read(), nidas::dynld::raf::SyncRecordReader::read(), nidas::core::DatagramSocket::read(), nidas::core::DSMSensor::read(), nidas::core::FileSet::read(), nidas::core::IOStream::read(), nidas::core::ServerSocketIODevice::read(), nidas::core::Socket::read(), nidas::core::TCPSocketIODevice::read(), nidas::core::UDPSocketIODevice::read(), nidas::core::UnixIOChannel::read(), nidas::core::UnixIODevice::read(), nidas::core::DSMSensor::read(), nidas::core::ServerSocketIODevice::read(), nidas::core::TCPSocketIODevice::read(), nidas::core::UDPSocketIODevice::read(), nidas::core::UnixIODevice::read(), ublox::read_rdwr(), ublox::read_smbus(), nidas::core::IOStream::readBuf(), nidas::core::SampleScanner::readBuffer(), nidas::core::DatagramSampleScanner::readBuffer(), nidas::util::SerialPort::readLine(), TeeI2C::readNMEAFile(), nidas::util::SerialPort::readUntil(), nidas::core::IOStream::readUntil(), Receiver::reallocateBuffer(), nidas::core::IOStream::reallocateBuffer(), nidas::util::SocketImpl::recv(), nidas::util::Socket::recv(), nidas::util::DatagramSocket::recv(), nidas::util::SocketImpl::recvfrom(), nidas::util::DatagramSocket::recvfrom(), Receiver::run(), SyncDumper::run(), nidas::core::SampleChar::SampleChar(), nidas::util::SocketImpl::send(), nidas::util::DatagramSocket::send(), nidas::util::Socket::send(), nidas::util::SocketImpl::sendall(), nidas::util::Socket::sendall(), nidas::dynld::raf::SppSerial::sendInitPacketAndCheckAck(), Csat3Sim::sendMessage(), nidas::util::SocketImpl::sendto(), nidas::util::DatagramSocket::sendto(), nidas::util::SocketImpl::setKeepAlive(), nidas::util::SocketImpl::setKeepAliveIdleSecs(), nidas::core::SerialSensor::setMessageParameters(), nidas::core::MessageSampleScanner::setMessageParameters(), nidas::core::MessageStreamScanner::setMessageParameters(), nidas::core::CharacterSensor::setMessageParameters(), nidas::util::SocketImpl::setPktInfo(), nidas::util::SocketImpl::setTcpNoDelay(), nidas::core::SampleT< DataT >::setValues(), nidas::core::IOStream::skip(), RemoteSerial::socketReadLine(), string_token(), nidas::core::SampleInputHeader::toString(), nidas::util::UnixSocketAddress::UnixSocketAddress(), nidas::core::NidasAppArg::usage(), nidas::util::SerialPort::write(), nidas::core::DatagramSocket::write(), nidas::core::DSMSensor::write(), nidas::core::FileSet::write(), nidas::core::MultipleUDPSockets::write(), nidas::core::SampleOutputBase::write(), nidas::core::SerialPortIODevice::write(), nidas::core::ServerSocketIODevice::write(), nidas::core::Socket::write(), nidas::core::TCPSocketIODevice::write(), nidas::core::UDPSocketIODevice::write(), nidas::core::UnixIOChannel::write(), nidas::core::UnixIODevice::write(), nidas::core::IOStream::write(), nidas::dynld::SampleOutputStream::write(), TeeI2C::writeFilteredOutput(), and TeeI2C::writeOutput().
const int LENGTH_OF_CRC = 8 |
Referenced by Receiver::scanBuffer().
int MAX_DATA_LENGTH = MAX_PACKET_LENGTH - MIN_PACKET_LENGTH |
Referenced by Receiver::scanBuffer().
int MAX_PACKET_LENGTH = 65535 |
const int MIN_PACKET_LENGTH = START_OF_DATA + LENGTH_OF_CRC + 1 |
Referenced by openPort(), Receiver::scanBuffer(), and Sender::Sender().
|
static |
Referenced by parseRunstring(), and Sender::run().
|
static |
Referenced by openPort(), parseRunstring(), Sender::run(), Sender::Sender(), and nidas::util::sleepUntil().
|
static |
Referenced by nidas::util::SocketImpl::bind(), nidas::util::DatagramSocket::bind(), nidas::util::SocketImpl::bind(), nidas::util::SocketImpl::connect(), nidas::util::Socket::connect(), nidas::util::DatagramSocket::connect(), nidas::util::SocketImpl::connect(), nidas::util::Socket::connect(), nidas::util::DatagramSocket::connect(), nidas::util::DatagramSocket::DatagramSocket(), nidas::util::DatagramSocket::DatagramSocket(), emerald_ioctl(), emerald_open(), emm_get_digio_port_out(), emm_get_port_mode(), emm_get_port_mode_eeprom(), emm_read_digio_port(), emm_set_digio_port_out(), emm_set_port_mode(), emm_set_port_mode_eeprom(), emm_write_digio_port(), Sender::flush(), nidas::core::DatagramSocket::fromDOMElement(), nidas::core::DSMConfig::fromDOMElement(), nidas::core::DSMServer::fromDOMElement(), nidas::core::McSocket::fromDOMElement(), nidas::core::McSocketUDP::fromDOMElement(), nidas::core::MultipleUDPSockets::fromDOMElement(), nidas::core::Socket::fromDOMElement(), nidas::core::ServerSocket::fromDOMElement(), nidas::util::Inet4SocketAddress::Inet4SocketAddress(), nidas::util::Inet4SocketAddress::Inet4SocketAddress(), PConfig::loadRemoteXML(), PConfig::main(), SensorSimApp::main(), main(), nidas::dynld::raf::PSI9116_Sensor::open(), nidas::dynld::raf::UDPArincSensor::open(), openPort(), nidas::core::SocketIODevice::parseAddress(), nidas::core::NidasApp::parseInputs(), PConfig::parseRemoteSpecifier(), SensorExtract::parseRunstring(), SyncDumper::parseRunstring(), nidas::core::DSMEngine::parseRunstring(), parseRunstring(), Receiver::run(), ModemLineSetter::run(), ModemLineMonitor::run(), Receiver::scanBuffer(), nidas::util::ServerSocket::ServerSocket(), nidas::util::ServerSocket::ServerSocket(), nidas::core::NidasAppInputFilesArg::setDefaultInput(), nidas::core::DatagramSocket::setHostPort(), nidas::core::Socket::setRemoteHostPort(), nidas::util::Socket::Socket(), and nidas::util::Socket::Socket().
|
static |
Referenced by SampleCounter::collectMetadata(), SampleCounter::computeRate(), nidas::dynld::raf::SyncRecordSource::createHeader(), doCallbacklist(), doResyncCallbacks(), nidas::core::CharacterSensor::fromDOMElement(), nidas::core::SampleTag::fromDOMElement(), nidas::dynld::raf::DSMMesaSensor::fromDOMElement(), Garmin::getBaudRateIndex(), nidas::dynld::isff::CSAT3_Sonic::getRateCommand(), nidas::dynld::raf::SyncRecordSource::init(), irigClockEnumToRate(), SampleCounter::jsonStats(), DataPrep::matchVariables(), mesa_ioctl(), ncar_a2d_ioctl(), nidas::dynld::ModbusRTU::open(), openPort(), DataPrep::parseRunstring(), parseRunstring(), DataStats::printReport(), register_irig_callback(), DataPrep::run(), nidas::dynld::raf::SyncRecordReader::scanHeader(), ublox::set_rate(), nidas::util::Termios::setBaudRate(), setClock1InputRate_MM16AT(), setClock1InputRate_MM32AT(), setHeartBeatOutput(), setRate2Output(), PConfig::showVariables(), twod_set_sor_rate(), and nidas::dynld::A2DSensor::validate().
return |
|
static |
Referenced by openPort(), Receiver::report(), ModemLineSetter::run(), and ModemLineMonitor::run().
const int START_OF_DATA = 23 |
Format of test packet:
* NNNNNN MMMMMMMMM ccccc <data>HHHHHHHH\x04 * NNNNNN: packet number starting at 0, 6 ASCII digits, followed by space. * MMMMMMMM: number of milliseconds since program start: * 9 digits followed by a space. * ccccc: length of data portion, in bytes, 0 or larger. * 5 digits, followed by space. * <data>: data portion of packet, may be 0 bytes in length. * HHHHHHHH: CRC of packet contents, up to but not including CRC (duh), * 8 ASCII hex digits. * \x04: trailing ETX byte * Length of packet is then 7 + 10 + 6 + dataSize + 8 + 1 = 32 + dataSize *
Referenced by Receiver::scanBuffer(), and Sender::send().
|
static |
Referenced by openPort(), and parseRunstring().
|
static |
Referenced by main(), openPort(), and parseRunstring().
|
static |
|
static |
Referenced by parseRunstring(), Receiver::run(), and Sender::send().