ここから本文です
ブログを始めました・・・

書庫全体表示

簡単な説明・補足は次回にします。なおデバッグ用コードを
削除しましたが、その際にウッカリ必要なコードを消した
可能性もあり、その場合はご容赦下さい。Windows7より
ソースを持って来てLinuxでアップロードしてますので。

今日はAM11:00より町内会の夏祭があり年に数回飲酒する
一杯200円の「(生)ビールの日」です。

<ヘッダーファイル:FM2PC_TRNS.h>

#pragma once
#include <afxwin.h>
class FM2PC_TRNS :    public CWinThread
{

    DECLARE_DYNCREATE(FM2PC_TRNS)

public:
    int exec_flg;
    char* getbuf_data;
    HANDLE hCommPort;

public:
    virtual BOOL InitInstance();
    virtual int ExitInstance();
    virtual int Run();

    DECLARE_MESSAGE_MAP()
    
};

<C言語ソースファイル:FM2PC_TRNS.cpp>

#include "pch.h"
#include "FM2PC_TRNS.h"

IMPLEMENT_DYNCREATE(FM2PC_TRNS, CWinThread)

BEGIN_MESSAGE_MAP(FM2PC_TRNS, CWinThread)

END_MESSAGE_MAP()

#define FT245RL_BROCK2 16

static FILE * file;
static BOOL fSuccess;
static errno_t error;

BOOL FM2PC_TRNS::InitInstance() {
    // TODO: ここに特定なコードを追加するか、もしくは基底クラスを呼び出してください。

    CFrameWnd* pWnd = new CFrameWnd;
    pWnd->Create(NULL, L"CWinThread NES_QD_MENT20190706");
    pWnd->ShowWindow(SW_SHOW);
    pWnd->UpdateWindow();
    pWnd->SetWindowPos(&CWnd::wndTop, 300, 300, 300, 200, SWP_NOACTIVATE);
    m_pMainWnd = pWnd;

    // SetThreadPriority(THREAD_PRIORITY_ABOVE_NORMAL);
    SetThreadPriority(THREAD_PRIORITY_HIGHEST);

    error = fopen_s(&file, "sirial_20190620.dat", "wb");
    if (error != 0) {
        exec_flg = 0;
        return FALSE;
    }

    return 1;

}

int FM2PC_TRNS::ExitInstance()
{
    // TODO: ここに特定なコードを追加するか、もしくは基底クラスを呼び出してください。
    if (NULL != file)
        fclose(file);

    SetThreadPriority(THREAD_PRIORITY_NORMAL);

    return 1;
}

int FM2PC_TRNS::Run()
{
    // TODO: ここに特定なコードを追加するか、もしくは基底クラスを呼び出してください。
    int i, brock;
    int top_adr, btm_adr, tmp_adr;

    unsigned char RCV_buf[256];
    DWORD dwRead;

    if (0 == exec_flg)
        return CWinThread::Run();

    // 受信処理ループ    
    fSuccess = ReadFile(hCommPort, RCV_buf, FT245RL_BROCK2, &dwRead, NULL);

    tmp_adr = (int)RCV_buf[2];
    top_adr = 256 * tmp_adr + (int)RCV_buf[3];

    tmp_adr = (int)RCV_buf[4];
    btm_adr = 256 * tmp_adr + (int)RCV_buf[5];

    brock = (btm_adr - top_adr) / FT245RL_BROCK2;

    for (i = 0; brock > i; i++) {
        ReadFile(hCommPort, RCV_buf, FT245RL_BROCK2, &dwRead, NULL);
        fwrite(RCV_buf, 1, dwRead, file);

    }

    SetThreadPriority(THREAD_PRIORITY_NORMAL);
    exec_flg = 0;

    return CWinThread::Run();

}

shuji_akita2001
shuji_akita2001
男性 / O型
人気度
Yahoo!ブログヘルプ - ブログ人気度について
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最新のコメント最新のコメント

すべて表示

Yahoo!からのお知らせ

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ

[PR]お得情報

お肉、魚介、お米、おせちまで
おすすめ特産品がランキングで選べる
ふるさと納税サイト『さとふる』
数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
ふるさと納税サイト『さとふる』
11/30まで5周年記念キャンペーン中!
Amazonギフト券1000円分当たる!

その他のキャンペーン

みんなの更新記事