本文整理汇总了C++中Sensor::getSize方法的典型用法代码示例。如果您正苦于以下问题:C++ Sensor::getSize方法的具体用法?C++ Sensor::getSize怎么用?C++ Sensor::getSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sensor
的用法示例。
在下文中一共展示了Sensor::getSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: donnees
/**
* Methode virtuelle qui teste si une donnée est présente dans le buffer circulaire
* Cette methode teste si un messageAsservissement est present
* @return true si la donnee est disponible, false sinon
* @see onReceive()
*/
bool RS232Sensor::isDataAvailable()
{
//boost::interprocess::scoped_lock<boost::mutex> lock(a_mutex, boost::interprocess::try_to_lock);
this->a_mutex.lock(); // On protege les donnees (a_buffer)
int bufferAvailable = this->a_buffer.dataAvailable(); // On calcul le nombre d'octets non lu
this->a_mutex.unlock(); // On deverouille le mutex
if(bufferAvailable >= 7)
{
this->a_mutex.lock(); // On protege le mutex
while(this->a_buffer.see() != 17 && bufferAvailable > 0)
{
unsigned char c;
this->a_buffer >> c;
//_DISPLAY("i" << (int)c << "|");
bufferAvailable--;
}
this->a_mutex.unlock(); // On deverouille le mutex
if(bufferAvailable >= 7)
{
unsigned char sensorID = this->a_buffer.see(1);
if(a_sensors.sensorExist((unsigned int)sensorID))
{
Sensor s = a_sensors.getSensor(sensorID);
if(bufferAvailable >= s.getSize() + 6)
return true;
}
else
{
//_DISPLAY(std::endl << sensorID << std::endl);
//_DEBUG("Le message n'appartient a aucun capteur connu", WARNING);
unsigned char c;
this->a_buffer >> c;
//_DISPLAY((unsigned int)sensorID << "c" << (int)c << "|");
bufferAvailable--;
}
}