ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / Examples / common / com_client.c
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Examples/common/com_client.c b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Examples/common/com_client.c
new file mode 100644 (file)
index 0000000..0f4bd7e
--- /dev/null
@@ -0,0 +1,74 @@
+#include "common.h"
+
+#include <Com/com.h>
+#include <Api/error.h>
+
+#include "com_client.h"
+
+static com_config_t     config;
+static com_socket_t     clt;
+static com_connection_t connection;
+static Read             read;
+static Write            write;
+
+C_RESULT init_com_client(void)
+{
+  config.connection       = COM_BLUETOOTH;
+  config.localAdapterName = DEVICENAME;
+  config.localIpAddress   = CLIENTHOST;
+  config.localIpSubmask   = SUBMASK;
+
+  if(FAILED(com_init(&config)))
+    return C_FAIL;
+
+  return C_OK;
+}
+
+C_RESULT run_com_client(COM_PROTOCOL protocol)
+{
+  com_strToAddress(BTADDR_SERVER,&connection.address);
+
+  com_passKey(PIN_CODE);
+  if(FAILED(com_connect(&connection,1)))
+    return C_FAIL;
+
+  clt.socket    = COM_CLIENT;
+  clt.protocol  = protocol;
+
+  if(protocol == COM_RFCOMM)
+  {
+    clt.scn = BTADDR_SCN;
+  }
+  else if(protocol == COM_BNEP)
+  {
+    clt.port        = BTADDR_PORT;
+    clt.serverHost  = SERVERHOST;
+  }
+  else
+    return C_FAIL;
+
+  if(FAILED(com_open(&clt,&read,&write)))
+    return C_FAIL;
+
+  return C_OK;
+}
+
+C_RESULT shutdown_com_client(void)
+{
+  com_close(&clt);
+
+  com_disconnect();
+  com_shutdown();
+
+  return C_OK;
+}
+
+C_RESULT read_client(int8_t* buffer, int32_t* size)
+{
+  return read(&clt,buffer,size);
+}
+
+C_RESULT write_client(const int8_t* buffer, int32_t* size)
+{
+  return write(&clt,buffer,size);
+}