summaryrefslogtreecommitdiffstats
path: root/kstars/kstars/indi/apogee/ApnSerial_NET.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kstars/kstars/indi/apogee/ApnSerial_NET.cpp')
-rw-r--r--kstars/kstars/indi/apogee/ApnSerial_NET.cpp214
1 files changed, 214 insertions, 0 deletions
diff --git a/kstars/kstars/indi/apogee/ApnSerial_NET.cpp b/kstars/kstars/indi/apogee/ApnSerial_NET.cpp
new file mode 100644
index 00000000..ded34f47
--- /dev/null
+++ b/kstars/kstars/indi/apogee/ApnSerial_NET.cpp
@@ -0,0 +1,214 @@
+// ApnSerial_NET.cpp: implementation of the CApnSerial_NET class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "apogee.h"
+#include "ApnSerial_NET.h"
+
+#include "ApogeeNet.h"
+#include "ApogeeNetErr.h"
+
+
+#ifdef _DEBUG
+#undef THIS_FILE
+static char THIS_FILE[]=__FILE__;
+#define new DEBUG_NEW
+#endif
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CApnSerial_NET::CApnSerial_NET()
+{
+ m_SerialId = -1;
+}
+
+CApnSerial_NET::~CApnSerial_NET()
+{
+
+}
+
+bool CApnSerial_NET::InitPort( unsigned long CamIdA,
+ unsigned short CamIdB,
+ unsigned short SerialId )
+{
+ char Hostname[25];
+ BYTE ipAddr[4];
+
+
+ ipAddr[0] = (BYTE)(CamIdA & 0xFF);
+ ipAddr[1] = (BYTE)((CamIdA >> 8) & 0xFF);
+ ipAddr[2] = (BYTE)((CamIdA >> 16) & 0xFF);
+ ipAddr[3] = (BYTE)((CamIdA >> 24) & 0xFF);
+
+ sprintf( Hostname, "%u.%u.%u.%u", ipAddr[3], ipAddr[2], ipAddr[1], ipAddr[0] );
+
+ if ( m_SerialId != -1 )
+ {
+ return false;
+ }
+
+ if ( (SerialId != 0) && (SerialId != 1) )
+ {
+ return false;
+ }
+
+ if ( ApnNetStartSockets() != APNET_SUCCESS )
+ return false;
+
+ if ( ApnNetSerialPortOpen( Hostname, CamIdB, SerialId ) != APNET_SUCCESS )
+ return false;
+
+ m_SerialId = SerialId;
+
+ return true;
+}
+
+bool CApnSerial_NET::ClosePort()
+{
+ if ( m_SerialId == -1 )
+ return false;
+
+ // just close the port and not care whether it was successful. if it was,
+ // great. if not, we'll still set m_SerialId to -1 so that another call
+ // can at least be tried to connect to the port.
+ ApnNetSerialPortClose( m_SerialId );
+
+ ApnNetStopSockets();
+
+ m_SerialId = -1;
+
+ return true;
+}
+
+bool CApnSerial_NET::GetBaudRate( unsigned long *BaudRate )
+{
+ *BaudRate = -1;
+
+ if ( m_SerialId == -1 )
+ return false;
+
+ /*
+ unsigned long BaudRateRead;
+
+
+ if ( m_SerialId == -1 )
+ return false;
+
+ if ( ApnNetSerialReadBaudRate(m_SerialId, &BaudRateRead) != APNET_SUCCESS )
+ return false;
+
+ *BaudRate = BaudRateRead;
+ */
+
+ return true;
+}
+
+bool CApnSerial_NET::SetBaudRate( unsigned long BaudRate )
+{
+ if ( m_SerialId == -1 )
+ return false;
+
+ /*
+ if ( ApnNetSerialWriteBaudRate(m_SerialId, BaudRate) != APNET_SUCCESS )
+ return false;
+ */
+
+ return true;
+}
+
+bool CApnSerial_NET::GetFlowControl( Apn_SerialFlowControl *FlowControl )
+{
+ *FlowControl = Apn_SerialFlowControl_Unknown;
+
+ if ( m_SerialId == -1 )
+ return false;
+
+ /*
+ bool FlowControlRead;
+
+ if ( m_SerialId == -1 )
+ return false;
+
+ if ( ApnNetSerialReadFlowControl(m_SerialId, &FlowControlRead) != APNET_SUCCESS )
+ return false;
+ */
+
+ return true;
+}
+
+bool CApnSerial_NET::SetFlowControl( Apn_SerialFlowControl FlowControl )
+{
+ if ( m_SerialId == -1 )
+ return false;
+
+ /*
+ if ( ApnNetSerialWriteFlowControl(m_SerialId, FlowControl) != APNET_SUCCESS )
+ return false;
+ */
+
+ return true;
+}
+
+bool CApnSerial_NET::GetParity( Apn_SerialParity *Parity )
+{
+ *Parity = Apn_SerialParity_Unknown;
+
+ if ( m_SerialId == -1 )
+ return false;
+
+ /*
+ ApnNetParity ParityRead;
+
+ if ( m_SerialId == -1 )
+ return false;
+
+ if ( ApnNetSerialReadParity(m_SerialId, &ParityRead) != APNET_SUCCESS )
+ return false;
+
+ *Parity = (Apn_SerialParity)ParityRead;
+ */
+
+ return true;
+}
+
+bool CApnSerial_NET::SetParity( Apn_SerialParity Parity )
+{
+ if ( m_SerialId == -1 )
+ return false;
+
+ /*
+ if ( ApnNetSerialWriteParity(m_SerialId, (ApnNetParity)Parity) != APNET_SUCCESS )
+ return false;
+ */
+
+ return true;
+}
+
+bool CApnSerial_NET::Read( char *ReadBuffer, unsigned short *ReadCount )
+{
+ if ( m_SerialId == -1 )
+ return false;
+
+ if ( ApnNetSerialRead(m_SerialId, ReadBuffer, ReadCount) != APNET_SUCCESS )
+ {
+ *ReadCount = 0;
+ return false;
+ }
+
+ return true;
+}
+
+bool CApnSerial_NET::Write( char *WriteBuffer, unsigned short WriteCount )
+{
+ if ( m_SerialId == -1 )
+ return false;
+
+ if ( ApnNetSerialWrite(m_SerialId, WriteBuffer, WriteCount) != APNET_SUCCESS )
+ return false;
+
+ return true;
+}
+