ここでの、回避方法は私の知る範囲での試行錯誤なのでプログラム的に壊してしまっているか、または的を射ているか全く確認しておりません。
Jonathan にも問い合わせておりません。ただ、結果問題なくソフトウェアは稼働し、交信できています。
- RepeaterDataSet.cpp の修正
ZIPファイルを解凍したフォルダ(フォルダircDDBGatewayとDStarRepeaterが見える位置)での作業を示します。
$ sudo nano ircDDBGateway/GUICommon/RepeaterDataSet.cpp
GNU nano 2.2.6 File: ircDDBGateway/GUICommonRepeaterDataSet.cpp
wxString CRepeaterDataSet::getReflector() const
{
if (isDDMode())
return wxEmptyString;
int n = m_reflector->GetCurrentSelection();
int c = m_channel->GetCurrentSelection();
if (n == 0)
return wxEmptyString;
wxString reflector = m_reflector->GetStringSelection();
reflector.Append(wxT(" "));
reflector.Truncate(LONG_CALLSIGN_LENGTH - 1U);
reflector.Append(wxT("A") + c);
return reflector;
}
オリジナル 484行目 'A' を "A" に変更します。[Ctrl]+[o]→[Enter]→[Ctrl]+[x]で保存・終了
- IRCDDBApp.cpp の修正
$ sudo nano ircDDBGateway/ircDDB/IRCDDBApp.cpp
GNU nano 2.2.6 File: ircDDBGateway/ircDDB/IRCDDBApp.cpp
if (dt.ParseFormat(tk + wxT(" ") + timeToken, wxT("%Y-%m-%d %H:%M:%S")) == "")
オリジナル 867行目 NULL を ""(空白文字)に置き換えます。(ダブルクォーテイション2つ、スペース無し)
- MMDVMController.cpp の修正
ZIPファイルを解凍したフォルダ(フォルダircDDBGatewayとDStarRepeaterが見える位置)での作業を示します。
$ sudo nano DStarRepeater/Common/MMDVMController.cpp
GNU nano 2.2.6 File: DStarRepeater/Common/MMDVMController.cpp
CMMDVMController::CMMDVMController(const wxString& port, const wxString& path,
bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int
rxLevel, unsigned int txLevel) :
CModem(),
m_port(port),
m_path(path),
m_rxInvert(rxInvert),
m_txInvert(txInvert),
m_pttInvert(pttInvert),
m_txDelay(txDelay),
m_rxLevel(rxLevel),
m_txLevel(txLevel),
m_serial(port, SERIAL_115200, true),
m_buffer(NULL),
m_txData(1000U),
MMDVMController.hの中の変数定義と、上記青色の変数の順がrx, txなので赤色の部分も同順にする(オリジナルは tx, rxの順)
- SoundCardReaderWriter.cpp の修正
$ sudo nano DStarRepeater/Common/SoundCardReaderWriter.cpp
GNU nano 2.2.6 File: DStarRepeater/Common/SoundCardReaderWriter.cpp
unsigned int offset = 0U;
int tmp_offset = 0U; // for "warning: comparison between signed and unsigned integer expressions"
int tmp_nSamples = nSamples;
snd_pcm_sframes_t ret;
/* この行を次行と置き換えるためコメントアウト
while ((ret = ::snd_pcm_writei(m_handle, m_samples + offset, nSamples - offset)) != (nSamples - offset)) {
*/
while ((ret = ::snd_pcm_writei(m_handle, m_samples + offset, nSamples - offset)) != (tmp_nSamples - tmp_offset)) {
オリジナル 753行目 int(singed) と unsigned int の比較(!=)は出来ないという警告なので、赤色行ですべてを
singed int にキャスト(tmp_ の変数)して通しました。
- DStarRepeaterApp.cpp の修正
$ sudo nano DStarRepeater/DStarRepeater/DStarRepeaterApp.cpp
GNU nano 2.2.6 File: DStarRepeater/Common/SoundCardReaderWriter.cpp
for (unsigned int i = 0U; i < transmitterNames.GetCount(); i++) {
wxString name = transmitterNames.Item(i);
if (!name.IsEmpty()) {
wxLogInfo(wxT("\tTX %u name: %s"), i + 1U, name.c_str());
}
}
for (unsigned int i = 0U; i < receiverNames.GetCount(); i++) {
wxString name = receiverNames.Item(i);
if (!name.IsEmpty()) {
wxLogInfo(wxT("\tRX %u name: %s"), i + 1U, name.c_str());
}
}
オリジナル 490 及び 495行目の if文に大括弧 { } を入れて構文を整えます。(オリジナルの構文はCや以前のC++コンパイラではOKでした。)
- DStarRepeaterD.cpp の修正
$ sudo nano DStarRepeater/DStarRepeater/DStarRepeaterD.cpp
上記のDStarRepeaterApp.cpp と全く同じで、オリジナルの 421, 426行目の if文に大括弧 { } を入れて構文を整えます。
少し手間ですがこれらの修正を加えた後、ircDDBGateway 及び DStarRepeater 各フォルダ内で sudo make すればエラーが発生すること無くコンパイルが終了します。
その後さらに各フォルダ内で sudo make install すれば完了です。