2016年4月17日日曜日

XAMPP-5.6.19 で mysql root パスワード設定方法

XAMPP Control Panel の Shell ボタンを押し以下を入力します。

    mysqladmin --user=root password "****"          (****は任意のパスワード)



次に、xampp/phpMyAdmin/config.inc.php を以下のように変更します。

    $cfg['Servers'][$i]['password'] = '';
                 ↓
    $cfg['Servers'][$i]['password'] = '****';            (****は任意のパスワード)



以上で root のパスワードは設定されたはずなので phpmyadmin を起動してみましょう。

    http://localhost/phpmyadmin/ をブラウザ入力して問題なく見れたらOKです。



AVR ブートプログラムのリンカー設定方法

Atmel Studio AVR bootloader
CPU : ATxmega256A3BU

ブートプログラムを自作する場合、生成されるHEXファイルは
ブート部に書込むようにしねければなりません。


ブートプログラム用のリンカー設定方法を ATxmega256A3BU を例に示します。








Atmel Studio の [Project]メニューの[**Properties]を開き以下を設定します。

    [Toolchain]->[AVR/GNU Linker]->[Memory Settings]->[FLASH segment]

    [Add Item](緑十字アイコン)をクリックし以下を入力します。

    .text=0x20000


ATxmega256A3BU のブート部は 0x40000 ですが .text=0x20000 になることに注意しましょう。

XAMPP-5.6.19 で xdebug を有効にする方法



xampp-win32-5.6.19-0-VC11-installer
 
php.ini に以下を追記します。 
 
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
 
XAMPPの再設定のとき苦労したのでメモしました。

2016年1月7日木曜日

MFC VC++6.0 シリアル通信の注意点

MFC VC++6.0 シリアル通信の注意点

シリアル通信を行う場合の注意点は以下です。

・COMナンバーに¥¥¥¥.¥¥を付加する
    (COM1~9なら¥¥¥¥.¥¥を付加しなくても問題なくオープンします)

・CreateFileAを使ってCOMオープン
    (VC++上位互換を意識しないのならCreateFileでもオープンします)

-------------------------------------------------------

bool Open(int ComNum, int baudrate, BYTE parity, BYTE stopbit ) // シリアルポートを開く
{
char szSerial[256];
sprintf( szSerial, "¥¥¥¥.¥¥COM%d", ComNum); // ■¥¥¥¥.¥¥を付加する

if( NowCom != 0 ){ // すでにオープンのとき
Close( NowCom );
}

Shandle = CreateFileA( // ■CreateFileAを使ってCOMオープン
        szSerial,
        GENERIC_READ | GENERIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL, // 非同期モード : 受信してなくても戻る
        NULL
        );

    if( Shandle == INVALID_HANDLE_VALUE) { // COMオープンできなかったとき
        Shandle = NULL;
NowCom = 0;
return FALSE;
    }

NowCom = ComNum; // COM確定
HandleAry[NowCom] = Shandle; // ハンドル登録

    if( !InitDCB( baudrate, parity, stopbit ) ){ // DCB構造体の初期化に失敗したとき
        return FALSE;
    }

    if( !InitCommTimeOuts() ){ // COMタイムアウト構造体設定に失敗したとき
        return FALSE;
    }

    return TRUE;
}

2015年11月16日月曜日

MFCマルチスレッド作成方法

MFCでマルチスレッドを作成する方法をよく忘れてしまいます。
毎回調べるのが面倒なので記述しておきます。
(Visual Studio 6.0版)

(1)Thread_smpDlg.cpp : OnInitDialog() の中に追加する

BOOL CThread_smpDlg::OnInitDialog()
{

// TODO: 特別な初期化を行う時はこの場所に追加してください。
// ■↓ここから追加
ThreadInit();
 // ■↑ここまで
return TRUE;  // TRUE を返すとコントロールに設定したフォーカスは失われません。
}


(2)Thread_smpDlg.h : の protected: の下に追加する

protected:
HICON m_hIcon;

// ■↓ここから追加
private:
//-----------------------------
// テーブル宣言
//-----------------------------
HANDLE m_hEventStop;
CWinThread* m_pThread;

//-----------------------------
// スレッドエントリー
//-----------------------------
static UINT ThreadEntry(LPVOID pParam)
{
    CThread_smpDlg* pHogeHoge = (CThread_smpDlg*)pParam; // 自オブジェクトの取得
   
    return pHogeHoge->ThreadProc(); // スレッド処理
}
//-----------------------------
// スレッド処理
//-----------------------------
UINT ThreadProc(void)
{
    // 終了イベントがセットされるまでループ
    while ( ::WaitForSingleObject(m_hEventStop, 0) == WAIT_TIMEOUT )
    {
// ■ここに処理を書く
    }
    return 0;
}
//-----------------------------
// スレッド初期化
// OnInitDialog() からコールする
//-----------------------------
void ThreadInit()
{
    m_hEventStop = ::CreateEvent(NULL, TRUE, FALSE, NULL);
    m_pThread = NULL; // スレッドオブジェクトのポインタクリア

    ASSERT(m_pThread == NULL);
   
    // サスペンド状態でスレッドを作成
    m_pThread = ::AfxBeginThread(ThreadEntry, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL);
    m_pThread->m_bAutoDelete = FALSE; // 自動破棄フラグクリア
    m_pThread->ResumeThread(); // サスペンド解除
}
 // ■↑ここまで

2015年6月20日土曜日

AVR ブートプログラム用のリンカー設定方法

Atmel Studio AVR bootloader
CPU : ATxmega256A3BU

ブートプログラムを自作する場合、生成されるHEXファイルは
ブート部に書込むようにしねければなりません。


ブートプログラム用のリンカー設定方法を ATxmega256A3BU を例に示します。


Atmel Studio の [Project]メニューの[**Properties]を開き以下を設定します。

    [Toolchain]->[AVR/GNU Linker]->[Memory Settings]->[FLASH segment]

    [Add Item](緑十字アイコン)をクリックし以下を入力します。

    .text=0x20000


ATxmega256A3BU のブート部は 0x40000 ですが .text=0x20000 になることに注意しましょう。

2015年6月5日金曜日

テキストボックスを軽くする方法 (C#,C++/CLI)

シリアル通信プログラムなどで受信内容をテキストボックスに表示するとき
appendText を使うと 20,000 バイトくらいから表示がかなり重くなります。

テキストボックスを軽くする方法は、プロパティで以下に設定すると軽くなります。

   WordWrap = False

簡単ですね。