#include <stdio.h>
#include <fcntl.h>
-#include "../serialport.h"
-#include "../baudrate.h"
+#include "../serialport/serialport.h"
+#include "../serialport/baudrate.h"
#include "../timeutils.h"
#if defined(__APPLE__)
#endif
#endif
using namespace std;
-using namespace CEC;
+using namespace PLATFORM;
CSerialPort::CSerialPort()
{
Close();
}
-int8_t CSerialPort::Write(CCECAdapterMessage *data)
+int64_t CSerialPort::Write(uint8_t* data, uint32_t len)
{
fd_set port;
- CLockObject lock(&m_mutex);
+ CLockObject lock(m_mutex);
if (m_fd == -1)
{
m_error = "port closed";
return -1;
}
- int32_t byteswritten = 0;
-
- struct timeval timeout, *tv;
- if (data->transmit_timeout <= 0)
- {
+ int64_t byteswritten = 0;
+ struct timeval *tv;
+//TODO
+// struct timeval timeout, *tv;
+// if (data->transmit_timeout <= 0)
+// {
tv = NULL;
- }
- else
- {
- timeout.tv_sec = (long int)data->transmit_timeout / (long int)1000.;
- timeout.tv_usec = (long int)data->transmit_timeout % (long int)1000.;
- tv = &timeout;
- }
-
- while (byteswritten < (int32_t) data->size())
+// }
+// else
+// {
+// timeout.tv_sec = (long int)data->transmit_timeout / (long int)1000.;
+// timeout.tv_usec = (long int)data->transmit_timeout % (long int)1000.;
+// tv = &timeout;
+// }
+
+ while (byteswritten < len)
{
FD_ZERO(&port);
FD_SET(m_fd, &port);
return -1;
}
- returnv = write(m_fd, data->packet.data + byteswritten, data->size() - byteswritten);
+ returnv = write(m_fd, data + byteswritten, len - byteswritten);
if (returnv == -1)
{
m_error = strerror(errno);
{
printf("%s write:", m_name.c_str());
for (int i = 0; i < byteswritten; i++)
- printf(" %02x", data->at(i));
+ printf(" %02x", data[i]);
printf("\n");
}
int64_t now(0), target(0);
int32_t bytesread = 0;
- CLockObject lock(&m_mutex);
+ CLockObject lock(m_mutex);
if (m_fd == -1)
{
m_error = "port closed";
{
m_name = name;
m_error = strerror(errno);
- CLockObject lock(&m_mutex);
+ CLockObject lock(m_mutex);
if (databits < 5 || databits > 8)
{
void CSerialPort::Close()
{
- CLockObject lock(&m_mutex);
+ CLockObject lock(m_mutex);
if (m_fd != -1)
{
close(m_fd);
bool CSerialPort::IsOpen()
{
- CLockObject lock(&m_mutex);
+ CLockObject lock(m_mutex);
return m_fd != -1;
}