summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordianshi <arturs.artamonovs@protonmail.com>2022-12-31 13:09:00 +0000
committerdianshi <arturs.artamonovs@protonmail.com>2022-12-31 13:09:00 +0000
commitbe866bf22b370f5d525b91dee6719394d5f7baa9 (patch)
tree6f2e9370b11c56445e6ae0f84456638d8e6f5d76
parentb7383f21d156baf4981d1cabc0c7fb47fb4f2445 (diff)
downloadr820sdr-init-be866bf22b370f5d525b91dee6719394d5f7baa9.tar.gz
r820sdr-init-be866bf22b370f5d525b91dee6719394d5f7baa9.zip
wrapped all c calls
-rw-r--r--hardware/r820.swift139
1 files changed, 131 insertions, 8 deletions
diff --git a/hardware/r820.swift b/hardware/r820.swift
index 63921d7..366f784 100644
--- a/hardware/r820.swift
+++ b/hardware/r820.swift
@@ -5,6 +5,8 @@
// Created by Jacky Jack on 15/03/2022.
//
+//https://www.kodeco.com/7181017-unsafe-swift-using-pointers-and-interacting-with-c
+
import Foundation
public class R820API {
@@ -27,9 +29,9 @@ public class R820Tuner {
var dev: OpaquePointer? = nil
/**
- Function to initialise tunner
- - Parameters:
- -
+ Function to initialise tunner
+ - Parameters:
+ -
*/
func R820Tuner() {
print("Initialise tunner")
@@ -51,22 +53,143 @@ public class R820Tuner {
}
}
- func getCenterFrequency()->UInt32 {
+ func getDeviceCount()->UInt32 {
+ return rtlsdr_get_device_count();
+ }
+
+ /*
+ func getDeviceName(index: UInt32) -> String {
+ return rtlsdr_get_device_name(index)
+ }
+ */
+
+ /*
+ func getDeviceUsbString() {
+ return rtlsdr_get_device_usb_strings();
+ }*/
+ func getIndexBySerial(serial: String) -> Int32
+ {
+ return rtlsdr_get_index_by_serial(serial);//is this ok?
+ }
+
+ func setXtalFreq(rtlFreq: UInt32, tunnerFreq: UInt32) -> Int32 {
+ return rtlsdr_set_xtal_freq(dev, rtlFreq, tunnerFreq);
+ }
+
+ func getXtalFreq(rtlFreq: UnsafeMutablePointer<UInt32>?, tunnerFreq: UnsafeMutablePointer<UInt32>?)->Int32{
+ return rtlsdr_get_xtal_freq(dev, rtlFreq, tunnerFreq)
+ }
+
+ func getUsbStrings(manufact: UnsafeMutablePointer<CChar>?, product: UnsafeMutablePointer<CChar>?, serial: UnsafeMutablePointer<CChar>?) -> Int32{
+ return rtlsdr_get_usb_strings(dev, manufact, product, serial)
+ }
+
+ func writeEeprom(data: UnsafeMutablePointer<UInt8>?,offset: UInt8, len: UInt16) -> Int32 {
+ return rtlsdr_write_eeprom(dev, data, offset, len)
+ }
+
+ func readEeprom(data: UnsafeMutablePointer<UInt8>?,offset: UInt8, len: UInt16) -> Int32 {
+ return rtlsdr_read_eeprom(dev, data, offset, len)
+ }
+
+ func setCenterFreq(freq: UInt32) -> Int32{
+ return rtlsdr_set_center_freq(dev, freq);
+ }
+
+ func getCenterFreq()->UInt32 {
return rtlsdr_get_center_freq(dev)
}
- func setCenterFrequency(freq: UInt32) -> Int32 {
- return rtlsdr_set_center_freq(dev, freq)
+ func setFreqCorrection(ppm: Int32) -> Int32 {
+ return rtlsdr_set_freq_correction(dev, ppm)
}
- func getSampleRate() -> UInt32 {
- return rtlsdr_get_sample_rate(dev)
+ func getFreqCorrection() -> Int32 {
+ return rtlsdr_get_freq_correction(dev)
+ }
+
+ func getTunerType() -> rtlsdr_tuner {
+ return rtlsdr_get_tuner_type(dev)
+ }
+
+ func getTunerGains(gains: UnsafeMutablePointer<Int32>?) -> Int32 {
+ return rtlsdr_get_tuner_gains(dev, gains)
+ }
+
+ func setTunerGain(gain: Int32) -> Int32 {
+ return rtlsdr_set_tuner_gain(dev,gain);
+ }
+
+ func setTunnerBandwidth(bw: UInt32) -> Int32 {
+ return rtlsdr_set_tuner_bandwidth(dev, bw)
+ }
+
+ func setTunerIfGain(stage: Int32, gain: Int32) -> Int32 {
+ return rtlsdr_set_tuner_if_gain(dev,stage,gain)
+ }
+
+ func setTunerGainMode(manual: Int32) -> Int32 {
+ return rtlsdr_set_tuner_gain_mode(dev, manual)
}
func setSampleRate(samplerate: UInt32) -> Int32 {
return rtlsdr_set_sample_rate(dev, samplerate)
}
+ func getSampleRate() -> UInt32 {
+ return rtlsdr_get_sample_rate(dev)
+ }
+
+ func setTestmode(on: Int32) -> Int32 {
+ return rtlsdr_set_testmode(dev, on);
+ }
+
+ func setAgcMode(on: Int32) -> Int32 {
+ return rtlsdr_set_agc_mode(dev, on);
+ }
+
+ func setDirectSampling(on: Int32) -> Int32 {
+ return rtlsdr_set_direct_sampling(dev, on)
+ }
+
+ func getDirectSampling() -> Int32 {
+ return rtlsdr_get_direct_sampling(dev)
+ }
+
+ func setOffsetTuning(on: Int32) -> Int32 {
+ return rtlsdr_set_offset_tuning(dev, on)
+ }
+
+ func getOffsetTuning() -> Int32 {
+ return rtlsdr_get_offset_tuning(dev)
+ }
+
+ func resetBuffer() -> Int32 {
+ return rtlsdr_reset_buffer(dev)
+ }
+
+ func readSync(buf:UnsafeMutableRawPointer?,len: Int32,n_read:UnsafeMutablePointer<Int32>?) -> Int32 {
+ return rtlsdr_read_sync(dev, buf, len, n_read);
+ }
+
+ func waitAsync(cb: rtlsdr_read_async_cb_t?, ctx:UnsafeMutableRawPointer?) -> Int32{
+ return rtlsdr_wait_async(dev,cb, ctx);
+ }
+ func readAsync(cb: rtlsdr_read_async_cb_t,ctx:UnsafeMutableRawPointer?, buf_num: UInt32, buf_len: UInt32) -> Int32 {
+ return rtlsdr_read_async(dev, cb, ctx, buf_num, buf_len)
+ }
+
+ func cancelAsync() -> Int32 {
+ return rtlsdr_cancel_async(dev);
+ }
+
+ func setBiasTee(on: Int32) -> Int32 {
+ return rtlsdr_set_bias_tee(dev, on)
+ }
+
+ func setBiasTeeGpio(gpio: Int32, on: Int32) -> Int32 {
+ return rtlsdr_set_bias_tee_gpio(dev,gpio, on)
+ }
}