本文整理汇总了C++中Signal::notify_all方法的典型用法代码示例。如果您正苦于以下问题:C++ Signal::notify_all方法的具体用法?C++ Signal::notify_all怎么用?C++ Signal::notify_all使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Signal
的用法示例。
在下文中一共展示了Signal::notify_all方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: callback_received
// called after we've received a sample
static void callback_received() {
const uint8_t *pos = read_buf;
sample.num++;
sample.field[0] = pos[0] << 8 | pos[1]; pos += 2;
sample.field[2] = pos[0] << 8 | pos[1]; pos += 2; // sensor goes X, Z, Y according to documentation
sample.field[1] = pos[0] << 8 | pos[1];
signal.notify_all();
i2c_async_send(addr, read_cmd, sizeof(read_cmd), i2c_shared_done_unlock);
}
示例2: callback_received
// called when data is received
static void callback_received() {
int val = (read_buf[0] << 8) | read_buf[1];
if (state == State::TEMP) {
temp = val;
i2c_async_send(addr, cmd_conv_pressure, sizeof(cmd_conv_pressure), i2c_shared_done_unlock);
state = State::PRESSURE;
} else {
sample.ut = temp;
sample.up = val;
signal.notify_all();
i2c_async_send(addr, cmd_conv_temp, sizeof(cmd_conv_temp), i2c_shared_done_unlock);
state = State::TEMP;
}
}
示例3: ss
// called when receiver DMA completes its transfer
extern "C" void irq_dma2_stream0() {
ss(false);
sample.num++;
const uint8_t *pos = read_buf+1; // skip over the command byte
for (int i=0; i<3; i++) // parse all values into sample structure
sample.accel[i] = next16(pos);
sample.temp = next16(pos);
for (int i=0; i<3; i++)
sample.gyro[i] = next16(pos);
signal.notify_all(); // notify all tasks waiting
DMA2->LIFCR = DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTCIF3 | DMA_LIFCR_CHTIF3; // clear status bits
util_enable_irq(EXTI0_IRQn + PIN_INT); // enable INT interrupt
}