mirror of
https://github.com/wjwwood/serial.git
synced 2026-01-22 11:44:53 +08:00
Sorted out the stdint stuff by including a header from the v8 project.
This commit is contained in:
parent
ead96705dd
commit
565ba66271
@ -43,7 +43,7 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <stdint.h>
|
#include <serial/v8stdint.h>
|
||||||
|
|
||||||
#define THROW(exceptionClass, message) throw exceptionClass(__FILE__, \
|
#define THROW(exceptionClass, message) throw exceptionClass(__FILE__, \
|
||||||
__LINE__, (message) )
|
__LINE__, (message) )
|
||||||
@ -89,47 +89,48 @@ typedef enum {
|
|||||||
/*!
|
/*!
|
||||||
* Structure for setting the timeout of the serial port, times are
|
* Structure for setting the timeout of the serial port, times are
|
||||||
* in milliseconds.
|
* in milliseconds.
|
||||||
|
*
|
||||||
|
* In order to disable the interbyte timeout, set it to Timeout::max().
|
||||||
*/
|
*/
|
||||||
struct Timeout {
|
struct Timeout {
|
||||||
/*!
|
static uint32_t max() {return std::numeric_limits<uint32_t>::max();}
|
||||||
* Convenience function to generate Timeout structs using a
|
/*!
|
||||||
* single absolute timeout.
|
* Convenience function to generate Timeout structs using a
|
||||||
*
|
* single absolute timeout.
|
||||||
* \param timeout A long that defines the time in milliseconds until a
|
*
|
||||||
* timeout occurs after a call to read or write is made.
|
* \param timeout A long that defines the time in milliseconds until a
|
||||||
*
|
* timeout occurs after a call to read or write is made.
|
||||||
* \return Timeout struct that represents this simple timeout provided.
|
*
|
||||||
*/
|
* \return Timeout struct that represents this simple timeout provided.
|
||||||
static Timeout simpleTimeout(long timeout) {
|
*/
|
||||||
return Timeout(0, timeout, 0, timeout, 0);
|
static Timeout simpleTimeout(uint32_t timeout) {
|
||||||
}
|
return Timeout(max(), timeout, 0, timeout, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/*! Number of milliseconds between bytes received to timeout on. */
|
/*! Number of milliseconds between bytes received to timeout on. */
|
||||||
uint32_t inter_byte_timeout;
|
uint32_t inter_byte_timeout;
|
||||||
/*! A constant number of milliseconds to wait after calling read. */
|
/*! A constant number of milliseconds to wait after calling read. */
|
||||||
uint32_t read_timeout_constant;
|
uint32_t read_timeout_constant;
|
||||||
/*! A multiplier against the number of requested bytes to wait after
|
/*! A multiplier against the number of requested bytes to wait after
|
||||||
* calling read.
|
* calling read.
|
||||||
*/
|
*/
|
||||||
uint32_t read_timeout_multiplier;
|
uint32_t read_timeout_multiplier;
|
||||||
/*! A constant number of milliseconds to wait after calling write. */
|
/*! A constant number of milliseconds to wait after calling write. */
|
||||||
uint32_t write_timeout_constant;
|
uint32_t write_timeout_constant;
|
||||||
/*! A multiplier against the number of requested bytes to wait after
|
/*! A multiplier against the number of requested bytes to wait after
|
||||||
* calling write.
|
* calling write.
|
||||||
*/
|
*/
|
||||||
uint32_t write_timeout_multiplier;
|
uint32_t write_timeout_multiplier;
|
||||||
|
|
||||||
typedef std::numeric_limits<uint32_t>::max() max;
|
Timeout (uint32_t inter_byte_timeout_=0, uint32_t read_timeout_constant_=0,
|
||||||
|
uint32_t read_timeout_multiplier_=0, uint32_t write_timeout_constant_=0,
|
||||||
Timeout (unsigned int32_t inter_byte_timeout_=0, unsigned int32_t read_timeout_constant_=0,
|
uint32_t write_timeout_multiplier_=0)
|
||||||
uint32_t read_timeout_multiplier_=0, uint32_t write_timeout_constant_=0,
|
: inter_byte_timeout(inter_byte_timeout_),
|
||||||
uint32_t write_timeout_multiplier_=0)
|
read_timeout_constant(read_timeout_constant_),
|
||||||
: inter_byte_timeout(inter_byte_timeout_),
|
read_timeout_multiplier(read_timeout_multiplier_),
|
||||||
read_timeout_constant(read_timeout_constant_),
|
write_timeout_constant(write_timeout_constant_),
|
||||||
read_timeout_multiplier(read_timeout_multiplier_),
|
write_timeout_multiplier(write_timeout_multiplier_)
|
||||||
write_timeout_constant(write_timeout_constant_),
|
{}
|
||||||
write_timeout_multiplier(write_timeout_multiplier_)
|
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -145,7 +146,7 @@ public:
|
|||||||
* which would be something like 'COM1' on Windows and '/dev/ttyS0'
|
* which would be something like 'COM1' on Windows and '/dev/ttyS0'
|
||||||
* on Linux.
|
* on Linux.
|
||||||
*
|
*
|
||||||
* \param baudrate An integer that represents the baudrate
|
* \param baudrate An unsigned 32-bit integer that represents the baudrate
|
||||||
*
|
*
|
||||||
* \param timeout A serial::Timeout struct that defines the timeout
|
* \param timeout A serial::Timeout struct that defines the timeout
|
||||||
* conditions for the serial port. \see serial::Timeout
|
* conditions for the serial port. \see serial::Timeout
|
||||||
@ -402,13 +403,13 @@ public:
|
|||||||
|
|
||||||
/*! Sets the timeout for reads and writes. */
|
/*! Sets the timeout for reads and writes. */
|
||||||
void
|
void
|
||||||
setTimeout (int32_t inter_byte_timeout, int32_t read_timeout_constant,
|
setTimeout (uint32_t inter_byte_timeout, uint32_t read_timeout_constant,
|
||||||
int32_t read_timeout_multiplier, int32_t write_timeout_constant,
|
uint32_t read_timeout_multiplier, uint32_t write_timeout_constant,
|
||||||
int32_t write_timeout_multiplier)
|
uint32_t write_timeout_multiplier)
|
||||||
{
|
{
|
||||||
Timeout timeout(inter_byte_timeout, read_timeout_constant,
|
Timeout timeout(inter_byte_timeout, read_timeout_constant,
|
||||||
read_timeout_multiplier, write_timeout_constant,
|
read_timeout_multiplier, write_timeout_constant,
|
||||||
write_timeout_multiplier);
|
write_timeout_multiplier);
|
||||||
return setTimeout(timeout);
|
return setTimeout(timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
57
include/serial/v8stdint.h
Normal file
57
include/serial/v8stdint.h
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
// This header is from the v8 google project:
|
||||||
|
// http://code.google.com/p/v8/source/browse/trunk/include/v8stdint.h
|
||||||
|
|
||||||
|
// Copyright 2012 the V8 project authors. All rights reserved.
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following
|
||||||
|
// disclaimer in the documentation and/or other materials provided
|
||||||
|
// with the distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived
|
||||||
|
// from this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
// Load definitions of standard types.
|
||||||
|
|
||||||
|
#ifndef V8STDINT_H_
|
||||||
|
#define V8STDINT_H_
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||||
|
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef short int16_t; // NOLINT
|
||||||
|
typedef unsigned short uint16_t; // NOLINT
|
||||||
|
typedef int int32_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
typedef __int64 int64_t;
|
||||||
|
typedef unsigned __int64 uint64_t;
|
||||||
|
// intptr_t and friends are defined in crtdefs.h through stdio.h.
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // V8STDINT_H_
|
||||||
@ -122,6 +122,7 @@ macro(build_serial)
|
|||||||
)
|
)
|
||||||
|
|
||||||
INSTALL(FILES include/serial/serial.h
|
INSTALL(FILES include/serial/serial.h
|
||||||
|
include/serial/v8stdint.h
|
||||||
DESTINATION include/serial)
|
DESTINATION include/serial)
|
||||||
|
|
||||||
IF(NOT CMAKE_FIND_INSTALL_PATH)
|
IF(NOT CMAKE_FIND_INSTALL_PATH)
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
[
|
[
|
||||||
"-I/usr/include",
|
"-I/usr/include",
|
||||||
"-I/usr/local/include",
|
"-I/usr/local/include",
|
||||||
"-I/usr/lib/clang/3.1/include/",
|
// "-I/usr/lib/clang/3.1/include/",
|
||||||
"-I${folder:${project_path:serial.sublime-project}}/include"
|
"-I${folder:${project_path:serial.sublime-project}}/include"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user