本文整理汇总了C++中Uart::flush方法的典型用法代码示例。如果您正苦于以下问题:C++ Uart::flush方法的具体用法?C++ Uart::flush怎么用?C++ Uart::flush使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Uart
的用法示例。
在下文中一共展示了Uart::flush方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getPicture
static CameraError getPicture(void)
{
toCam = newCameraPacket(),
fromCam = newCameraPacket();
toCam.cmdToken = SYNC;
int syncTries = 0;
//if(!imageFile.open)
if(!imageFile)
return NO_FILE;
/* try and get sync with camera */
while(!(fromCam.cmdToken == ACK && fromCam.parameter1 == SYNC)) // until ACK received
{
if(syncTries == 3)
cameraComPort.baudrate(115200);
cameraComPort.flush();
sendPacket(toCam); // send SYNC command
pause(25);
fromCam = getPacket(); // get reply
if(syncTries < 7)
++syncTries;
else
return NO_HANDSHAKE;
}
/* acknowledge camera's sync request */
toCam = newCameraPacket(); // initialize packet
toCam.cmdToken = ACK; // acknowledge
toCam.parameter1 = SYNC; // the sync
syncTries = 0;
while(!(fromCam.cmdToken == SYNC)) // wait for camera SYNC request
{
fromCam = getPacket();
if(syncTries < 7)
++syncTries;
else
return NO_SYNC;
}
sendPacket(toCam);
/* configure camera */
toCam = newCameraPacket(); // initialize packet
toCam.cmdToken = INITIAL; // initial configuration
toCam.parameter1 = 0x04; // 115,200 baud rate
toCam.parameter2 = 0x87; // compress color
toCam.parameter3 = 0x01; // 80x60 preview resolution
toCam.parameter4 = 0x07; // 640x480 compression resolution
sendPacket(toCam);
/* if camera acknowledges changes, change the UART baud rate */
fromCam = getPacket();
if(!(fromCam.cmdToken == ACK && fromCam.parameter1 == INITIAL))
return NO_INITIAL;// if reconfiguration was not successful
cameraComPort.baudrate(115200); // change UART baud rate
/* specify image quality */
toCam = newCameraPacket(); // initialize packet
toCam.cmdToken = QUALITY; // configure picture quality
toCam.parameter1 = 0x00; // to be the best
sendPacket(toCam);
/* if camera acknowledges change, then get an image */
fromCam = getPacket();
if(!(fromCam.cmdToken == ACK && fromCam.parameter1 == QUALITY))
return NO_QUALITY;// if reconfiguration was not successful
/* get an image */
toCam = newCameraPacket(); // initialize packet
toCam.cmdToken = GET_PIC; // configure picture quality
toCam.parameter1 = 0x05; // get full size image
sendPacket(toCam);
/* if camera acknowledges request, then retrieve image data */
fromCam = getPacket();
if(!(fromCam.cmdToken == ACK && fromCam.parameter1 == GET_PIC))
return NO_GET_PIC; // if request was not successful
/* get image size */
fromCam = getPacket();
if(!(fromCam.cmdToken == DATA))
return NO_DATA; // if request was not successful
/* read data size */
picsize = bytesToGet = fromCam.parameter2 + fromCam.parameter3 * 0x100LL + fromCam.parameter4 * 0x10000LL;
int cnt = 0;
/* store the image */
while(bytesToGet > 0) // until all bytes retrieved
{
tempSize = cameraComPort.receive(tempBuffer, RX_BUFFER_SIZE); // receive the bytes
//imageFile.write(tempBuffer,tempSize); // store the bytes
FSfwrite(tempBuffer, sizeof(char), tempSize, imageFile);
bytesToGet -= tempSize; // update bytes remaining
//.........这里部分代码省略.........