Я использую библиотеку C и хочу вызвать функцию с Pointers
в качестве аргументов. Там написано, что мне нужно конвертировать Double
в UnsafeMutablePointer<Double>
.
Итак, как далеко я зашёл:
class ViewController: UIViewController {
var buffer1 = [Double]()
var buffersize = [Int32]()
var ar = UnsafeMutablePointer<Double>.allocate(capacity: 10)
var ar2 = UnsafeMutablePointer<Double>.allocate(capacity: 2)
override func viewDidLoad() {
super.viewDidLoad()
randomBuffer()
print(buffer1)
ar.deallocate()
ar2.deallocate()
let grade = ar.pointee
let isevent = ar2.pointee
print(grade, isevent)
let pointer = app_ios_ersatzfunktion(buffer1, buffersize, ar, ar2)
print(pointer)
}
func randomBuffer()
{
let randomDouble = Double.random(in: -1...2)
if buffer1.count<200{
buffer1.append(randomDouble)
}
else {
buffer1.removeFirst()
buffer1.append(randomDouble)
}
}
}
Мой код C был создан с помощью Matlab и выглядит следующим образом:
void app_ios_ersatzfunktion(const double buffer2_data[], const int buffer2_size
[2], double *grade, double *event_found)
{
double jerk;
*grade = 0.0;
*event_found = 0.0;
jerk = (buffer2_data[buffer2_size[1] - 1] - buffer2_data[buffer2_size[1] - 2])
/ 0.01;
if ((jerk >= 200.0) || (jerk <= -200.0)) {
*event_found = 1.0;
*grade = jerk / 50.0;
}
}