int main (void) { static const prog_char mess1[] = "test2.c software uart sample program\r\n"; const prog_char *s; char c; /* Initialize I/O ports */ PORTB = 0b11111110; /* PB0:Tx/Rx */ DDRB = 0b00000000; PORTD = 0b01111111; /* Pull-up Port D */ /* Send message */ s = mess1; for (;;) { c = pgm_read_byte(s++); if (!c) break; xmit(c); } /* Receives data and echos it in incremented data */ for(;;) { c = rcvr(); c++; xmit(c); } }
int main() { sout << locker << "\n Console Receiver Demo " << "\n =======================\n" << unlocker; try { EndPoint rep("127.0.0.1",8081); //EndPoint sep("127.0.0.1",2049); // MsgReceiver_Proc is your receiver's server message handling // FileReceiver_Proc is your receiver's server file handling Communicator rcvr(rep); MsgHandler<MsgReceiver_Proc> rMsgHandler; rMsgHandler.setCommunicator(&rcvr); rcvr.attachMsgHandler(&rMsgHandler); FileHandler<FileReceiver_Proc> rFileHandler; rFileHandler.setFileDestination(".\\debug"); rFileHandler.setCommunicator(&rcvr); rcvr.attachFileHandler(&rFileHandler); rcvr.listen(); sout << "\n\n press key to exit: "; sout.flush(); _getche(); sout << "\n\n"; rcvr.disconnect(); } catch(std::exception& ex) { sout << locker << "\n " << ex.what() << "\n\n" << unlocker; } }
// split_nodes cannot have predecessors // they do not reject messages and always forward. // they reject edge reversals from successors. void TestSplitNode() { typedef tbb::flow::split_node<tbb::flow::tuple<int> > snode_type; tbb::flow::graph g; snode_type snode(g); tbb::flow::function_node<int> rcvr(g,tbb::flow::unlimited, receiverBody<int>()); REMARK("Testing split_node\n"); ASSERT(tbb::flow::output_port<0>(snode).my_successors.empty(), "Constructed split_node has successors"); // tbb::flow::output_port<0>(snode) tbb::flow::make_edge(tbb::flow::output_port<0>(snode), rcvr); ASSERT(!(tbb::flow::output_port<0>(snode).my_successors.empty()), "after make_edge, split_node has no successor."); snode.try_put(tbb::flow::tuple<int>(1)); g.wait_for_all(); g.reset(); ASSERT(!(tbb::flow::output_port<0>(snode).my_successors.empty()), "after reset(), split_node has no successor."); g.reset(tbb::flow::rf_clear_edges); ASSERT(tbb::flow::output_port<0>(snode).my_successors.empty(), "after reset(rf_clear_edges), split_node has a successor."); }
///////////////////////////receiver main function//////////////////////// int main() { int ret = 0; BlockingQueue<AcknowlegementMsg> ackMsgQ; AcknowlegementMsg ackmsg; try { Receiver rcvr(ackMsgQ); rcvr.start(8080); } catch(std::exception& ex) { std::cout << "\n\n " << ex.what(); ret = 1; } catch(...) { sout << "\n something bad happened"; ret = 1; } sout << "\n\n"; return ret; }
void *rcvr_thread(void* arg) { rcvr(fd, msglen, interval, nmsg); printd(lostmsgs ? "lost messages" : ""); return 0; }