本文整理汇总了C++中Serial::flush方法的典型用法代码示例。如果您正苦于以下问题:C++ Serial::flush方法的具体用法?C++ Serial::flush怎么用?C++ Serial::flush使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Serial
的用法示例。
在下文中一共展示了Serial::flush方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
void SerialCommunicationApp::update()
{
if (serialInitiallized()){
if(serial.getNumBytesAvailable() > 0){
console() << "Bytes available: " << serial.getNumBytesAvailable() << std::endl;
try{
lastString = serial.readStringUntil('\n');
} catch(SerialTimeoutExc e) {
console() << "timeout" << endl;
}
console() << lastString << endl;
int16_t temp = lastString[0];
//OSC MESSAGE
osc::Message message;
message.addIntArg(temp);
message.setAddress("coinTrigger");
message.setRemoteEndpoint(host, port);
sender.sendMessage(message);
TextLayout simple;
simple.setFont( Font( "Arial Black", 54 ) );
simple.setColor( Color( .7, .7, .2 ) );
simple.addLine( lastString );
simple.setLeadingOffset( 0 );
mTexture = gl::Texture( simple.render( true, false ) );
bTextureComplete = true;
serial.flush();
}
}
serial.flush();
}
示例2: setup
void SerialCommunicationApp::setup()
{
lastString = "";
bTextureComplete = false;
//SERIAL SETUP
const vector<Serial::Device> &devices( Serial::getDevices() );
for( vector<Serial::Device>::const_iterator deviceIt = devices.begin(); deviceIt != devices.end(); ++deviceIt ) {
console() << "Device: " << deviceIt->getName() << endl;
}
try {
Serial::Device dev = Serial::findDeviceByNameContains("tty.usbmodem");
serial = Serial( dev, 9600);
}
catch( ... ) {
console() << "There was an error initializing the serial device!" << std::endl;
exit( -1 );
}
contact = 0;
serial.flush();
//OSC SETUP
port = 12346;
host = "127.0.0.1";
sender.setup( host, port, true );
}
示例3: while
bool waa::PC2Arduino(char *command){
int i = 0;
char buffer = '\0';
bool status = false;
//tstring commPortName(Comport);
//Serial serial(commPortName);
serial.flush();
do {
i++;
} while (strcmp(command, PCCommand[i]) != 0 || i >= DEF_ARDUINO_COMMAND_NUMBER);
if (i<DEF_ARDUINO_COMMAND_NUMBER && i >= 0)
{
//serial.write(ArduinoCommand+i);
serial.write(ArduinoCommand[i]);
Sleep(5);
serial.read(&buffer, 1);
Sleep(5);
if (buffer == '0') status = true;
}
else {
printf("command error,please insert again\n");
}
return status;
}
示例4: update
void SerialCommunicationApp::update()
{
// console() << "Bytes available: " << serial.getNumBytesAvailable() << std::endl;
double now = getElapsedSeconds();
double deltaTime = now - lastUpdate;
lastUpdate = now;
sinceLastRead += deltaTime;
if(sinceLastRead > READ_INTERVAL)
{
bSendSerialMessage = true;
sinceLastRead = 0.0;
}
if (bSendSerialMessage)
{
// request next chunk
serial.writeByte(ctr);
try{
// read until newline, to a maximum of BUFSIZE bytes
lastString = serial.readStringUntil('\n', BUFSIZE );
} catch(SerialTimeoutExc e) {
console() << "timeout" << endl;
}
bSendSerialMessage = false;
ctr+=8;
console() << lastString << endl;
TextLayout simple;
simple.setFont( Font( "Arial Black", 24 ) );
simple.setColor( Color( .7, .7, .2 ) );
simple.addLine( lastString );
simple.setLeadingOffset( 0 );
mTexture = gl::Texture( simple.render( true, false ) );
bTextureComplete = true;
serial.flush();
}
}
示例5: setup
void SerialCommunicationApp::setup()
{
ctr = 0;
lastString = "";
sinceLastRead = 0.0;
lastUpdate = 0.0;
bSendSerialMessage = false;
bTextureComplete = false;
// print the devices
const vector<Serial::Device> &devices( Serial::getDevices() );
for( vector<Serial::Device>::const_iterator deviceIt = devices.begin(); deviceIt != devices.end(); ++deviceIt ) {
console() << "Device: " << deviceIt->getName() << endl;
}
try {
Serial::Device dev = Serial::findDeviceByNameContains("tty.usbserial");
serial = Serial( dev, 9600);
}
catch( ... ) {
console() << "There was an error initializing the serial device!" << std::endl;
exit( -1 );
}
// wait for * as a sign for first contact
char contact = 0;
while(contact != '*')
{
contact = (char) serial.readByte();
}
// request actual data
serial.writeByte(ctr);
// clear accumulated contact messages in buffer
char b = '*';
while(serial.getNumBytesAvailable() > -1)
{
b = serial.readByte();
console() << b << "_";
}
serial.flush();
}
示例6: setup
void SerialTestApp::setup()
{
// print the devices
const vector<Serial::Device> &devices( Serial::getDevices() );
for( vector<Serial::Device>::const_iterator deviceIt = devices.begin(); deviceIt != devices.end(); ++deviceIt ) {
console() << "Device: " << deviceIt->getName() << endl;
}
try {
//Serial::Device dev = Serial::findDeviceByNameContains("tty.usbmodemfa141");
Serial::Device dev = Serial::findDeviceByNameContains("tty.usbmodem1411");// hard code this for Harry's port
serial = Serial( dev, 9600);
serial.flush();
}
catch( ... ) {
console() << "There was an error initializing the serial device!" << std::endl;
exit( -1 );
}
}
示例7: connectivityTask
void connectivityTask(void *params)
{
char * buffer = (char *)portMalloc(BUFFER_SIZE);
size_t rxCount = 0;
ConnParams *connParams = (ConnParams*)params;
LoggerMessage msg;
Serial *serial = get_serial(connParams->serial);
xQueueHandle sampleQueue = connParams->sampleQueue;
uint32_t connection_timeout = connParams->connection_timeout;
DeviceConfig deviceConfig;
deviceConfig.serial = serial;
deviceConfig.buffer = buffer;
deviceConfig.length = BUFFER_SIZE;
const LoggerConfig *logger_config = getWorkingLoggerConfig();
bool logging_enabled = false;
while (1) {
bool should_stream = logging_enabled ||
logger_config->ConnectivityConfigs.telemetryConfig.backgroundStreaming ||
connParams->always_streaming;
while (should_stream && connParams->init_connection(&deviceConfig) != DEVICE_INIT_SUCCESS) {
pr_info("conn: not connected. retrying\r\n");
vTaskDelay(INIT_DELAY);
}
serial->flush();
rxCount = 0;
size_t badMsgCount = 0;
size_t tick = 0;
size_t last_message_time = getUptimeAsInt();
bool should_reconnect = false;
while (1) {
if ( should_reconnect )
break; /*break out and trigger the re-connection if needed */
should_stream =
logging_enabled ||
connParams->always_streaming ||
logger_config->ConnectivityConfigs.telemetryConfig.backgroundStreaming;
const char res = receive_logger_message(sampleQueue, &msg,
IDLE_TIMEOUT);
/*///////////////////////////////////////////////////////////
// Process a pending message from logger task, if exists
////////////////////////////////////////////////////////////*/
if (pdFALSE != res) {
switch(msg.type) {
case LoggerMessageType_Start: {
api_sendLogStart(serial);
put_crlf(serial);
tick = 0;
logging_enabled = true;
/* If we're not already streaming trigger a re-connect */
if (!should_stream)
should_reconnect = true;
break;
}
case LoggerMessageType_Stop: {
api_sendLogEnd(serial);
put_crlf(serial);
if (! (logger_config->ConnectivityConfigs.telemetryConfig.backgroundStreaming ||
connParams->always_streaming))
should_reconnect = true;
logging_enabled = false;
break;
}
case LoggerMessageType_Sample: {
if (!should_stream)
break;
const int send_meta = tick == 0 ||
(connParams->periodicMeta &&
(tick % METADATA_SAMPLE_INTERVAL == 0));
api_send_sample_record(serial, msg.sample, tick, send_meta);
if (connParams->isPrimary)
toggle_connectivity_indicator();
put_crlf(serial);
tick++;
break;
}
default:
break;
}
}
/*//////////////////////////////////////////////////////////
// Process incoming message, if available
////////////////////////////////////////////////////////////
//.........这里部分代码省略.........
示例8: update
//.........这里部分代码省略.........
if(moon1->pos.distance(moon2->pos) < 3*MOONSIZE)
{
Moon* loser = moon1->vel.length() < moon2->vel.length() ? moon1 : moon2;
Moon* winner = (loser == moon1 ? moon2 : moon1);
if(loser->losing.size() == 0 && loser->score >= 3 && !collInert)
{
audio::Output::play( s_hit );
loser->score -= 3;
loser->loseScore(winner->vel, 3);
collInert = 5.0f;
}
}
if(num1 > 0)
cout << "SCORE P1";
if(num2 > 0)
cout << "SCORE P2";
mFreqTarget = math<float>::clamp(moon1->nearest->pos.distance(moon1->pos) + 80.0f, 100.0f, 1000.0f);
mFreqTargetQ = math<float>::clamp(moon2->nearest->pos.distance(moon2->pos) + 80.0f, 100.0f, 1000.0f);
if(moon1->score >= 12)
{
end = true;
winner = moon1;
} else if(moon2->score >= 12)
{
end = true;
winner = moon2;
}
/// SERIAL
lastUpdate = now;
sinceLastRead += dt;
if(sinceLastRead > .05)
{
bSendSerialMessage = true;
sinceLastRead = 0.0;
}
if (bSendSerialMessage)
{
// request next chunk
serial.writeByte(ctr);
int on;
try{
// read until newline, to a maximum of BUFSIZE bytes
on = serial.readByte();
} catch(SerialTimeoutExc e) {
console() << "timeout" << endl;
}
bSendSerialMessage = false;
ctr+=8;
console() << on << endl;
serial.flush();
if(on == 1 && lastOn == 0)
{
if(turn == 1 && !moon1->charging)
moon1->startCharge();
if(turn == 2 && !moon2->charging)
moon2->startCharge();
}
if(on == 0 && lastOn == 1)
{
if(turn == 1)
moon1->jump();
if(turn == 2)
moon2->jump();
}
if(on == 0 && lastOn == 0)
{
moon1->charging = false;
moon2->charging = false;
moon1->charge = .0f;
moon2->charge = .0f;
}
lastOn = on;
}
}
示例9: setup
//.........这里部分代码省略.........
planets.push_back(new Planet(Vec2f(450.0f, 320.0f), 70.0f));
planets.push_back(new Planet(Vec2f(520.0f, 560.0f), 40.0f));
// planets.push_back(new Planet(Vec2f(930.0f, 260.0f), 40.0f));
// planets.push_back(new Planet(Vec2f(1120.0f, 760.0f), 50.0f));
// planets.push_back(new Planet(Vec2f(1200.0f, 800.0f), 30.0f));
moon1 = new Moon(Vec2f(50.0f, 50.0f), Vec2f(50.0f, .0f), Vec2f(.0f, .0f), 1);
moon2 = new Moon(Vec2f(250.0f, 750.0f), Vec2f(-50.0f, .0f), Vec2f(.0f, .0f), 2);
moon1->color = Color(1.0f, 133.0f/255.0f, 163.0f/255.0f);
moon2->color = Color(224.0f/255.0f, 1.0f, 133.0f/255.0f);
last = getElapsedSeconds();
params.speed = .7f;
params.repulse = 5000.0f;
params.distFactor = 1.0f;
// Setup the parameters
ifParams = params::InterfaceGl( "Parameters", Vec2i( 200, 400 ) );
ifParams.addParam( "Speed", &(params.speed), "min=0.1 max=1.0 step=0.01 keyIncr=Z keyDecr=z" );
ifParams.addParam( "x", &(params.repulse), "min=0.1 max=1.0 step=0.01 keyIncr=X keyDecr=x" );
ifParams.addParam( "y", &(params.distFactor), "min=0.1 max=1.0 step=0.01 keyIncr=C keyDecr=c" );
turntime = 8.0f;
turncounter = .0f;
turn = 1;
collInert = .0f;
gl::enableAlphaBlending( false );
curMoon = moon1;
// audio
mMaxFreq = 2000.0f;
mFreqTarget = 0.0f;
mPhase = 0.0f;
mPhaseAdjust = 0.0f;
mMaxFreqQ = 2000.0f;
mFreqTargetQ = 0.0f;
mPhaseQ = 0.0f;
mPhaseAdjustQ = 0.0f;
s_hit = audio::load( loadResource( RES_HIT ) );
s_up = audio::load( loadResource( RES_UP ) );
end = false;
winner = 0;
/// SERIAL
ctr = 0;
lastString = "";
sinceLastRead = 0.0;
lastUpdate = 0.0;
bSendSerialMessage = false;
const vector<Serial::Device> &devices( Serial::getDevices() );
for( vector<Serial::Device>::const_iterator deviceIt = devices.begin(); deviceIt != devices.end(); ++deviceIt ) {
console() << "Device: " << deviceIt->getName() << endl;
}
try {
Serial::Device dev = Serial::findDeviceByNameContains("tty.usbserial");
serial = Serial( dev, 9600);
}
catch( ... ) {
console() << "There was an error initializing the serial device!" << std::endl;
exit( -1 );
}
// wait for * as a sign for first contact
char contact = 0;
while(contact != '*')
{
contact = (char) serial.readByte();
}
// request actual data
serial.writeByte(ctr);
// clear accumulated contact messages in buffer
char b = '*';
while(serial.getNumBytesAvailable() > -1)
{
b = serial.readByte();
console() << b << "_";
}
serial.flush();
lastOn = 0;
}
示例10: sendArduinoMsg
void sendArduinoMsg(int cmd)
{
if (!isConnected) return;
serial.writeByte(cmd);
serial.flush(false, true);
}