hackrf,hackrf one支持hdsdr吗
来源:整理 编辑:智能门户 2023-09-07 17:14:37
本文目录一览
1,hackrf one支持hdsdr吗

2,hackrf one可以做什么
http://bbs.a9vg.com/read.php?tid=555426
3,有咩新网络游戏
http://bbs.dingdangzhu.com/hack.php?H_name=adv&u=12777
去看看吧~~应该对你有帮助的!~htgrf
4,如何评价开源软件无线电平台HackRF
HackRF首个全开源的SDR外设平台,10MHz - 6GHz,完全支持GNURadio。HackRF功能演示,包括FM广播接收,FM广播发射,DAB数字广播发射以及任意信号的录制与回放。
5,ubuntu怎么安装hackrf
...没在linux下面配置过gd,你为什么不在编译安装PHP的时候直接装上gd... 不过你最后一句header函数应该有问题吧? content-type中间的应该不是下划线.. 啊对了,linux下面添加模块之后php好像是要重新编译的吧?http://bbs.a9vg.com/read.php?tid=555426
6,如何在android手机上使用hackrf
JNI方面1)将编译好的库导入工程拷贝libhackrf.h、libhackrf.so和libusb1.0.so到工程目录,创建libusb1.0.mk和libhackrf.mklibusb1.0.mk通过libhackrf.mk即可将libhackrf连接到工程中。2)初始化hackrf,注册接收函数。JNI接口[cpp] view plain copyJNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_test( JNIEnv *env, jclass cls) int result = HACKRF_SUCCESS; result = hackrf_init(); if (result == HACKRF_SUCCESS) return env->NewStringUTF("OK!"); } else return env->NewStringUTF("Error!"); } } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_init( JNIEnv *env, jobject thiz) int result = HACKRF_SUCCESS; uint8_t board_id = BOARD_ID_INVALID; char pbuf[2048] = result = hackrf_init(); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_init() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } result = hackrf_open(&device); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_open() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } result = hackrf_board_id_read(device, &board_id); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_board_id_read() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } sprintf(pbuf, "Board ID Number: %d (%s)\n", board_id, hackrf_board_id_name((hackrf_board_id) board_id)); return env->NewStringUTF(pbuf); } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_setSampleRateManual( JNIEnv *env, jobject thiz, jlong freq, jint divi) int result = HACKRF_SUCCESS; char pbuf[2048] = result = hackrf_set_sample_rate_manual(device, freq, divi); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_set_sample_rate_manual() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } return env->NewStringUTF("ok"); } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_setVgaGain( JNIEnv *env, jobject thiz, jint vga) int result = HACKRF_SUCCESS; char pbuf[2048] = result = hackrf_set_vga_gain(device, vga); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_set_vga_gain() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } return env->NewStringUTF("ok"); } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_setLnaGain( JNIEnv *env, jobject thiz, jint lna) int result = HACKRF_SUCCESS; char pbuf[2048] = result = hackrf_set_lna_gain(device, lna); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_set_lna_gain() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } return env->NewStringUTF("ok"); } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_setFreq( JNIEnv *env, jobject thiz, jlong freq) int result = HACKRF_SUCCESS; char pbuf[2048] = result = hackrf_set_freq(device, freq); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_set_freq() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } return env->NewStringUTF("ok"); } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_setAmpEnable( JNIEnv *env, jobject thiz, jint b) int result = HACKRF_SUCCESS; char pbuf[2048] = result = hackrf_set_amp_enable(device, b == 0 ? false : true); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_set_amp_enable() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } return env->NewStringUTF("ok"); } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_startRX( JNIEnv *env, jobject thiz) int result = HACKRF_SUCCESS; char pbuf[2048] = result = hackrf_start_rx(device, hackrf_rx_cb, env->NewGlobalRef(thiz)); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_start_rx() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } return env->NewStringUTF("ok"); } JNIEXPORT jstring JNICALL Java_com_pagekpang_hackrftouch_HackRFTouch_stopRX( JNIEnv *env, jobject thiz) int result = HACKRF_SUCCESS; char pbuf[2048] = result = hackrf_stop_rx(device); if (result != HACKRF_SUCCESS) sprintf(pbuf, "hackrf_stop_rx() failed: %s (%d)\n", hackrf_error_name((hackrf_error) result), result); return env->NewStringUTF(pbuf); } return env->NewStringUTF("ok"); } java层与JNI接口的绑定[java] view plain copypackage com.pagekpang.hackrftouch; public class HackRFTouch static System.loadLibrary("usb1.0"); System.loadLibrary("hackrf"); System.loadLibrary("HackrfTouch"); } public static native String test(); private native String init(); private native String setSampleRateManual(long freq, int divi); private native String setVgaGain(int g); private native String setLnaGain(int g); private native String setFreq(long freq); private native String setAmpEnable(int f); public native String startRX(); public native String stopRX(); public native float[] readRx(); private String retString = ""; private Boolean isOpen = false; private ReadRxThread mReadRxThread = null; public HackRFTouch() // TODO Auto-generated constructor stub retString = init(); if (!retString.contains("failed")) isOpen = true; mReadRxThread = new ReadRxThread(this); } } class ReadRxThread extends Thread HackRFTouch mThisHackRFTouch = null; public ReadRxThread(HackRFTouch t) // TODO Auto-generated constructor stub mThisHackRFTouch = t; } @Override public void run() // TODO Auto-generated method stub super.run(); while(true) mThisHackRFTouch.cb(mThisHackRFTouch.readRx()); try Thread.sleep(100); } catch (InterruptedException e) // TODO Auto-generated catch block e.printStackTrace(); } } } } public Boolean isOpen() return isOpen; } public String getLastError() return retString; } public Boolean HsetSampleRateManual(long freq, int divi) if (!isOpen) return false; } retString = setSampleRateManual(freq, divi); if (retString.contains("failed")) return false; } else return true; } } public Boolean HsetLnaGain(int g) if (!isOpen) return false; } retString = setLnaGain(g); if (retString.contains("failed")) return false; } else return true; } } public Boolean HsetVgaGain(int g) if (!isOpen) return false; } retString = setVgaGain(g); if (retString.contains("failed")) return false; } else return true; } } public Boolean HsetFreq(long freq) if (!isOpen) return false; } retString = setFreq(freq); if (retString.contains("failed")) return false; } else return true; } } public Boolean HstopRX() if (!isOpen) return false; } retString = stopRX(); if (retString.contains("failed")) return false; } else return true; } } 3)FFT运算[cpp] view plain copyif (device != NULL) float raw[1024]; int dalen = transfer->valid_length; float realF, imagF, maxF; uint8_t *pbuf = transfer->buffer; while (dalen > 0 && runcount == 0) complex* fdata = new complex [1024]; complex* fout = new complex [1024]; for (int i = 0; i < 2048; i += 2) { fdata[i / 2] = complex(meanN(&pbuf[i], 100), meanN(&pbuf[i + 1], 100)); } FFT(fdata, fout, 10); //dft(fdata, 10, 0); //fout = fdata; maxF = 0.0; for (int i = 0; i < 1024; i++) { raw[i] = pow(pow(fout[i].real(), 2) + pow(fout[i].imag(), 2), 0.5); if (maxF < raw[i]) { maxF = raw[i]; } } for (int i = 0; i < 1024; i++) { raw[i] = raw[i] / maxF; } sendBuf(raw); //send(g_client, (char *)&raw, 4*1024, 0); //发送数据 dalen -= 2048; pbuf += 2048; runcount = 2; } runcount--; //printf("E"); } else { printf("O"); }<a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fbbs.a9vg.com%2fread.php%3ftid%3d555426" target="_blank">http://bbs.a9vg.com/read.php?tid=555426</a>
文章TAG:
hackrf hackrf one支持hdsdr吗