つれづれなるまゝに、日くらし、ブログにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ…
  フリースペースだよぉ♪  
全力全開で応援、はやてに期待大!!! 冬コミはコレに決まり!!!!!!!! MBA
追加パックではやてキタ!!!!! Java開発作業はこちら!
ねこび〜ん
--/--/--(--)--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2009/09/23(水)12:12
なんか暇だったから書いてみた。

#pragma once

#include
#include
typedef std::queue ByteRingBuffer;

class SerialPort
{
HANDLE hComm;
BYTE testBuff[256];
DWORD index;
DWORD testSize;
UINT timerId;

ByteRingBuffer sendDataQueue;

std::vector counter;
LARGE_INTEGER freq;

public:
SerialPort(void);
~SerialPort(void);


void Write(BYTE sendData[], DWORD size);
void Write(ByteRingBuffer &sendData, DWORD elapsed);

private:
void cycleSend();
static void CALLBACK timerFunc(UINT uiID, UINT uiNo, DWORD dwUser, DWORD dwNo1, DWORD dwNo2);
};

#include "StdAfx.h"
#include "SerialPort.h"

#include
#pragma comment(lib ,"winmm.lib" ) //winmm.lib をリンクする

static SerialPort *obj;

SerialPort::SerialPort(void)
{
obj = this;

QueryPerformanceFrequency( &this->freq );
}

SerialPort::~SerialPort(void)
{
}

void SerialPort::Write(BYTE sendData[], DWORD size)
{
LARGE_INTEGER time;
QueryPerformanceCounter( &time );
this->counter.push_back( time );

for( int i = 0; i < size; i++)
{
TRACE("%02X", sendData[i]);
}
TRACE("\n");
}

void SerialPort::Write(ByteRingBuffer &sendData, DWORD elapsed)
{
// 引数のデータをメンバのデータにコピーする
while( sendData.empty() == false)
{
// XXX:
this->sendDataQueue.push( sendData.front() );
sendData.pop();
}

// 周期,1(固定), 呼び出しコールバック関数, ユーザーデータ, TIME_PERIODIC(固定:周期)
this->timerId = timeSetEvent(elapsed, 1, timerFunc, reinterpret_cast(this), TIME_PERIODIC);
}

void SerialPort::cycleSend()
{
// 送信バッファにデータがあるうちは送信
if( this->sendDataQueue.empty() == false )
{
// XXX:
this->Write( (BYTE *)sendDataQueue.front().c_str(), sendDataQueue.front().length() );
this->sendDataQueue.pop();
}
else
{
// 送信完了していたらタイマーを削除
timeKillEvent( this->timerId );

for( int i = 0; i < this->counter.size(); i++ )
{
TRACE("%dms\n", (DWORD)((this->counter[i+1].QuadPart - this->counter[i].QuadPart) * 1000 / this->freq.QuadPart) );
}
}
}

void SerialPort::timerFunc(UINT uiID, UINT uiNo, DWORD dwUser, DWORD dwNo1, DWORD dwNo2)
{
obj->cycleSend();
}

<実行>
ByteRingBuffer test;
test.push("1234");
test.push("5678");
test.push("ABCD");
test.push("EFGH");

this->serial.Write(test, 10);
2008/12/31(水)10:09
2キャラ分ぐらい離れた相手に入れると,ラグナロクの魔法陣展開のカメラアングルで…(吐血
なのは相手にやったけど,見事に…。
2008/12/30(火)17:04
リリカルパック届きました〜。
メロンブックスありがとう。

飛翔システム様のブログにあった,ガジェットたたきのミッションがやりたいなぁって,
1からミッション進めないとだめなのね…。
10(はやてが使えるようになった)クリアするだけで精一杯なんですが。
しかもほとんどがRANK−Dってwwwww

あと1ヶ月ぐらいかかりそうです、StSなのは様に会うには。
2008/11/01(土)20:40
ドラマの2話(だったと思う)を見て,おもしろいなぁって思って、
原作を全部買って読んだ。

ドラマ、主人公だけ共通の別モノになってない?????

音弥が藤丸のために窓の外から弓を射るシーンとか
かっくええと思ってたのに,なぜライフルに(涙

超大まかなストーリーラインだけ追っかけて,あとは全然違う代物になっている………


つか、加納さん怖すぎwwww
プロフィール

隼呀

Author:隼呀
実家へ戻り、就職をした隼呀です。


ランキング



最近の記事
最近のコメント
月別アーカイブ
カテゴリー
QRコード

QRコード

ブロとも申請フォーム
フリーエリア

 | 隼呀の徒然日記TOPへ |  Next
Designed by DAIGO / Material by ARCHIMIX
FC2ブログ