Browse Source

added actuate funtction to dll

Dennymany 5 years ago
parent
commit
02eaac3898

+ 4 - 0
SketchAssistant/SketchAssistantWPF/LocalArmbandInterface.cs

@@ -22,6 +22,10 @@ namespace SketchAssistantWPF
      CallingConvention = CallingConvention.Cdecl)]
         public static extern void stopVibration(int motorNumber);
 
+        [DllImport(@"../Debug/StaticLibMotors.dll", EntryPoint = "?actuate@ArmbandInterface@@QAAXHNH@Z",
+     CallingConvention = CallingConvention.Cdecl)]
+        public static extern void actuate(int motorNumber, double intensity, int duration);
+
         //public void Vibrate()
 
     }

BIN
SketchAssistant/SketchAssistantWPF/StaticLibMotors.dll


+ 11 - 0
SketchAssistant/StaticLib1/ArmbandInterface.cpp

@@ -10,10 +10,12 @@ extern "C" {
 typedef void(__cdecl *InitFunctionType)(BodyActuator*, BodyActuator_Type, char*, int);
 typedef void(__cdecl *StopFunctionType)(BodyActuator*, uint8_t);
 typedef void(__cdecl *StartFunctionType)(BodyActuator*, uint8_t, float);
+typedef void(_cdecl *ActuateFunctionType)(BodyActuator*, uint8_t, double, uint64_t);
 
 static InitFunctionType initFunctionHandle;
 static StartFunctionType startFunctionHandle;
 static StopFunctionType stopFunctionHandle;
+static ActuateFunctionType actuateFunctionHandle;
 
 static BodyActuator* armband;
 //static char *port = 
@@ -42,6 +44,11 @@ extern "C" {
 				printf("ERROR: stop function could not be retrieved");
 				return 3;
 			}
+			actuateFunctionHandle = (ActuateFunctionType)GetProcAddress(lib, "BodyActuator_actuate");
+			if (actuateFunctionHandle == NULL) {
+				printf("ERROR: actuate function could not be retrieved");
+				return 4;
+			}
 			//strcpy(port, "COM5");
 			setupMotors();
 			//startVibrate(0, 1.0);
@@ -55,6 +62,10 @@ extern "C" {
 		DllExport void __cdecl ArmbandInterface::stopVibrate(int tactor) {
 			(stopFunctionHandle)(armband, (uint8_t)tactor);
 		}
+		
+		DllExport void __cdecl ArmbandInterface::actuate(int tactor, double intensity, int duration) {
+			(actuateFunctionHandle)(armband, (uint8_t)tactor, (double)intensity, (uint64_t)duration);
+		}
 	}
 
  void ArmbandInterface::setupMotors() {

+ 2 - 0
SketchAssistant/StaticLib1/ArmbandInterface.h

@@ -12,6 +12,7 @@ extern "C" {
 DllExport int setupArmband();
 DllExport void startVibrate(int tactor, float intensity);
 DllExport void stopVibrate(int tactor);
+DllExport void actuate(int tactor, double intensity, int duration);
 
 class ArmbandInterface
 {
@@ -27,5 +28,6 @@ class ArmbandInterface
 		__declspec(dllexport) int __cdecl  setupArmband();
 		__declspec(dllexport) void __cdecl startVibrate(int tactor, float intensity);
 		__declspec(dllexport) void __cdecl stopVibrate(int tactor);
+		__declspec(dllexport) void __cdecl actuate(int tactor, double intensity, int duration);
 		void setupMotors();
 };