mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-05 22:57:47 -04:00
Implement simple shared memory between WSJT-X and Q65W.
This commit is contained in:
parent
b288b20289
commit
439f17c123
@ -22,6 +22,7 @@
|
|||||||
qint16 id[2*60*96000];
|
qint16 id[2*60*96000];
|
||||||
|
|
||||||
QSharedMemory mem_q65w("mem_q65w"); //Memory segment to be shared (optionally) with WSJT-X
|
QSharedMemory mem_q65w("mem_q65w"); //Memory segment to be shared (optionally) with WSJT-X
|
||||||
|
int* ipc_wsjtx;
|
||||||
|
|
||||||
extern const int RxDataFrequency = 96000;
|
extern const int RxDataFrequency = 96000;
|
||||||
|
|
||||||
@ -101,23 +102,17 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
xSignalMeter = new SignalMeter(ui->xMeterFrame);
|
xSignalMeter = new SignalMeter(ui->xMeterFrame);
|
||||||
xSignalMeter->resize(50, 160);
|
xSignalMeter->resize(50, 160);
|
||||||
|
|
||||||
//###
|
|
||||||
//Attach or create a memory segment to be shared with WSJT-X.
|
//Attach or create a memory segment to be shared with WSJT-X.
|
||||||
int memSize=4096;
|
int memSize=4096;
|
||||||
if(!mem_q65w.attach()) {
|
if(!mem_q65w.attach()) {
|
||||||
if(!mem_q65w.create(memSize)) {
|
if(!mem_q65w.create(memSize)) {
|
||||||
msgBox("Unable to create shared memory segment.");
|
msgBox("Unable to create shared memory segment mem_q65w.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qDebug() << "aa" << memSize << mem_q65w.size();
|
ipc_wsjtx = (int*)mem_q65w.data();
|
||||||
char *to = (char*)mem_q65w.data();
|
|
||||||
int *to4 = (int*)mem_q65w.data();
|
|
||||||
mem_q65w.lock();
|
mem_q65w.lock();
|
||||||
// memset(to,0,memSize); //Zero all of shared memory
|
memset(ipc_wsjtx,0,memSize); //Zero all of shared memory
|
||||||
memset(to,1,memSize); //Zero all of shared memory
|
|
||||||
qDebug() << "bb" << int(to[0]) << int(to[10]) << to4[0] << to4[1];
|
|
||||||
mem_q65w.unlock();
|
mem_q65w.unlock();
|
||||||
//###
|
|
||||||
|
|
||||||
fftwf_import_wisdom_from_filename (QDir {m_appDir}.absoluteFilePath ("q65w_wisdom.dat").toLocal8Bit ());
|
fftwf_import_wisdom_from_filename (QDir {m_appDir}.absoluteFilePath ("q65w_wisdom.dat").toLocal8Bit ());
|
||||||
|
|
||||||
@ -965,9 +960,10 @@ void MainWindow::guiUpdate()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(nsec != m_sec0) { //Once per second
|
if(nsec != m_sec0) { //Once per second
|
||||||
// qDebug() << "AAA" << nsec%60 << decodes_.ndecodes << decodes_.ncand;
|
// mem_q65w.lock();
|
||||||
// soundInThread.setForceCenterFreqMHz(m_wide_graph_window->m_dForceCenterFreq);
|
// ipc_wsjtx[1]=nsec%60;
|
||||||
// soundInThread.setForceCenterFreqBool(m_wide_graph_window->m_bForceCenterFreq);
|
// qDebug() << "AAA" << nsec%60 << ipc_wsjtx[0] << ipc_wsjtx[1];
|
||||||
|
// mem_q65w.unlock();
|
||||||
|
|
||||||
if(m_pctZap>30.0) {
|
if(m_pctZap>30.0) {
|
||||||
lab4->setStyleSheet("QLabel{background-color: #ff0000}");
|
lab4->setStyleSheet("QLabel{background-color: #ff0000}");
|
||||||
|
@ -212,6 +212,9 @@ bool m_displayBand = false;
|
|||||||
bool no_a7_decodes = false;
|
bool no_a7_decodes = false;
|
||||||
bool keep_frequency = false;
|
bool keep_frequency = false;
|
||||||
|
|
||||||
|
QSharedMemory mem_q65w("mem_q65w"); //Memory segment to be shared (optionally) with Q65W
|
||||||
|
int* ipc_q65w;
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
Radio::Frequency constexpr default_frequency {14076000};
|
Radio::Frequency constexpr default_frequency {14076000};
|
||||||
@ -453,6 +456,19 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
m_optimizingProgress.setAutoReset (false);
|
m_optimizingProgress.setAutoReset (false);
|
||||||
m_optimizingProgress.setMinimumDuration (15000); // only show after 15s delay
|
m_optimizingProgress.setMinimumDuration (15000); // only show after 15s delay
|
||||||
|
|
||||||
|
//Attach or create a memory segment to be shared with Q65W.
|
||||||
|
int memSize=4096;
|
||||||
|
if(!mem_q65w.attach()) {
|
||||||
|
if(!mem_q65w.create(memSize)) {
|
||||||
|
MessageBox::information_message (this,
|
||||||
|
"Unable to create shared memory segment mem_q65w.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ipc_q65w = (int*)mem_q65w.data();
|
||||||
|
mem_q65w.lock();
|
||||||
|
memset(ipc_q65w,0,memSize); //Zero all of shared memory
|
||||||
|
mem_q65w.unlock();
|
||||||
|
|
||||||
// Closedown.
|
// Closedown.
|
||||||
connect (ui->actionExit, &QAction::triggered, this, &QMainWindow::close);
|
connect (ui->actionExit, &QAction::triggered, this, &QMainWindow::close);
|
||||||
|
|
||||||
@ -4790,7 +4806,10 @@ void MainWindow::guiUpdate()
|
|||||||
|
|
||||||
//Once per second (onesec)
|
//Once per second (onesec)
|
||||||
if(nsec != m_sec0) {
|
if(nsec != m_sec0) {
|
||||||
// qDebug() << "AAA" << nsec << m_bFastMode << m_bFast9;
|
// mem_q65w.lock();
|
||||||
|
// ipc_q65w[0]=nsec;
|
||||||
|
// qDebug() << "AAA" << nsec << ipc_q65w[0] << ipc_q65w[1];
|
||||||
|
// mem_q65w.unlock();
|
||||||
|
|
||||||
if(m_mode=="Q65") {
|
if(m_mode=="Q65") {
|
||||||
QFileInfo fi(m_appDir+"/q65w_decodes.txt");
|
QFileInfo fi(m_appDir+"/q65w_decodes.txt");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user