Merge branch 'master' of git://github.com/yuhu-/ebusd

This commit is contained in:
john30
2014-11-22 10:08:42 +01:00
19 changed files with 2547 additions and 77 deletions
+1 -1
View File
@@ -60,7 +60,7 @@ void ConfigCommands::setType(const FileType type)
delete m_configfile;
switch (type) {
case CSV:
case ft_csv:
m_configfile = new ConfigFileCSV();
m_extension = "csv";
break;
+3 -1
View File
@@ -25,7 +25,9 @@
#include <vector>
/** available file endings / types. */
enum FileType { CSV };
enum FileType {
ft_csv
};
/**
* @brief base class for config files.
+26 -6
View File
@@ -17,6 +17,10 @@
* along with ebusd. If not, see http://www.gnu.org/licenses/.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "port.h"
#include <cstdlib>
#include <cstring>
@@ -24,7 +28,10 @@
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <netdb.h>
#ifdef HAVE_PPOLL
#include <poll.h>
#endif
bool Device::isOpen()
{
@@ -64,20 +71,33 @@ ssize_t Device::recvBytes(const long timeout, size_t maxCount)
return -1; // TODO RESULT_ERR_DEVICE
if (timeout > 0) {
int ret, nfds = 1;
struct pollfd fds[nfds];
int ret;
struct timespec tdiff;
// set select timeout
tdiff.tv_sec = 0;
tdiff.tv_nsec = timeout*1000;
#ifdef HAVE_PPOLL
int nfds = 1;
struct pollfd fds[nfds];
memset(fds, 0, sizeof(fds));
fds[0].fd = m_fd;
fds[0].events = POLLIN;
ret = ppoll(fds, nfds, &tdiff, NULL);
#else
#ifdef HAVE_PSELECT
fd_set readfds;
FD_ZERO(&readfds);
FD_SET(m_fd, &readfds);
ret = pselect(m_fd + 1, &readfds, NULL, NULL, &tdiff, NULL);
#endif
#endif
if (ret == -1) return -1; // TODO RESULT_ERR_DEVICE
if (ret == 0) return -2; // TODO RESULT_ERR_TIMEOUT
@@ -232,9 +252,9 @@ Port::Port(const std::string deviceName, const bool noDeviceCheck)
if (strchr(deviceName.c_str(), '/') == NULL &&
strchr(deviceName.c_str(), ':') != NULL)
setType(NETWORK);
setType(dt_network);
else
setType(SERIAL);
setType(dt_serial);
}
void Port::setType(const DeviceType type)
@@ -243,10 +263,10 @@ void Port::setType(const DeviceType type)
delete m_device;
switch (type) {
case SERIAL:
case dt_serial:
m_device = new DeviceSerial();
break;
case NETWORK:
case dt_network:
m_device = new DeviceNetwork();
break;
};
+4 -1
View File
@@ -26,7 +26,10 @@
#include <unistd.h>
/** available device types. */
enum DeviceType { SERIAL, NETWORK };
enum DeviceType {
dt_serial,
dt_network,
};
/** max bytes write to bus. */
#define MAX_WRITE_SIZE 1
+1 -1
View File
@@ -51,7 +51,7 @@ void readCSV(std::istream& is, Commands& commands){
int main()
{
Commands* commands = ConfigCommands("test", CSV).getCommands();
Commands* commands = ConfigCommands("test", ft_csv).getCommands();
std::cout << "Commands: " << commands->sizeCmdDB() << std::endl;
//~ std::string data("g ci password pin1");
+1 -1
View File
@@ -27,7 +27,7 @@
int main() {
std::string dir("test");
ConfigCommands config(dir, CSV);
ConfigCommands config(dir, ft_csv);
Commands* commands = config.getCommands();