huohuoh
Dependencies: NetServices mbed C027_Supports mbed-rpcx
CommChannel.cpp@0:64967b7043c2, 2019-08-06 (annotated)
- Committer:
- irsanjul
- Date:
- Tue Aug 06 12:59:05 2019 +0000
- Revision:
- 0:64967b7043c2
testes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
irsanjul | 0:64967b7043c2 | 1 | #include "mbed.h" |
irsanjul | 0:64967b7043c2 | 2 | #include "CommChannel.h" |
irsanjul | 0:64967b7043c2 | 3 | |
irsanjul | 0:64967b7043c2 | 4 | extern Serial dbg; |
irsanjul | 0:64967b7043c2 | 5 | |
irsanjul | 0:64967b7043c2 | 6 | //----------------------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 7 | extern std::vector<int> RCV_BUFF; // temporary buffer receiving progress |
irsanjul | 0:64967b7043c2 | 8 | std::vector<int> RCVD; // buffer completed receiving |
irsanjul | 0:64967b7043c2 | 9 | extern int timerRxTOutCnt; |
irsanjul | 0:64967b7043c2 | 10 | |
irsanjul | 0:64967b7043c2 | 11 | //----------------------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 12 | // Mechanism for receive timeout |
irsanjul | 0:64967b7043c2 | 13 | // |
irsanjul | 0:64967b7043c2 | 14 | extern int timerRxTOutCnt; |
irsanjul | 0:64967b7043c2 | 15 | |
irsanjul | 0:64967b7043c2 | 16 | //----------------------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 17 | // Serial definition |
irsanjul | 0:64967b7043c2 | 18 | // |
irsanjul | 0:64967b7043c2 | 19 | extern Serial sock; |
irsanjul | 0:64967b7043c2 | 20 | |
irsanjul | 0:64967b7043c2 | 21 | //----------------------------------------------------------------- |
irsanjul | 0:64967b7043c2 | 22 | // Wrapper class |
irsanjul | 0:64967b7043c2 | 23 | // |
irsanjul | 0:64967b7043c2 | 24 | CommChannel::CommChannel() |
irsanjul | 0:64967b7043c2 | 25 | { |
irsanjul | 0:64967b7043c2 | 26 | dbg.printf("<CommChannel>"); |
irsanjul | 0:64967b7043c2 | 27 | } |
irsanjul | 0:64967b7043c2 | 28 | |
irsanjul | 0:64967b7043c2 | 29 | CommChannel::~CommChannel() |
irsanjul | 0:64967b7043c2 | 30 | { |
irsanjul | 0:64967b7043c2 | 31 | |
irsanjul | 0:64967b7043c2 | 32 | } |
irsanjul | 0:64967b7043c2 | 33 | |
irsanjul | 0:64967b7043c2 | 34 | void CommChannel::connect(const std::string &host) |
irsanjul | 0:64967b7043c2 | 35 | { |
irsanjul | 0:64967b7043c2 | 36 | } |
irsanjul | 0:64967b7043c2 | 37 | |
irsanjul | 0:64967b7043c2 | 38 | int CommChannel::dataAvailable() |
irsanjul | 0:64967b7043c2 | 39 | { |
irsanjul | 0:64967b7043c2 | 40 | return RCVD.size(); |
irsanjul | 0:64967b7043c2 | 41 | } |
irsanjul | 0:64967b7043c2 | 42 | |
irsanjul | 0:64967b7043c2 | 43 | std::vector<int> CommChannel::read() |
irsanjul | 0:64967b7043c2 | 44 | { |
irsanjul | 0:64967b7043c2 | 45 | std::vector<int> result; |
irsanjul | 0:64967b7043c2 | 46 | |
irsanjul | 0:64967b7043c2 | 47 | for(int i=0; i<RCVD.size(); i++) |
irsanjul | 0:64967b7043c2 | 48 | result.push_back(RCVD[i]); |
irsanjul | 0:64967b7043c2 | 49 | |
irsanjul | 0:64967b7043c2 | 50 | RCVD.clear(); |
irsanjul | 0:64967b7043c2 | 51 | return result; |
irsanjul | 0:64967b7043c2 | 52 | } |
irsanjul | 0:64967b7043c2 | 53 | |
irsanjul | 0:64967b7043c2 | 54 | void CommChannel::write(const std::vector<int> &s) |
irsanjul | 0:64967b7043c2 | 55 | { |
irsanjul | 0:64967b7043c2 | 56 | for(int i=0; i<(int)s.size(); i++) |
irsanjul | 0:64967b7043c2 | 57 | { |
irsanjul | 0:64967b7043c2 | 58 | sock.putc(s[i] & 0x0FF); |
irsanjul | 0:64967b7043c2 | 59 | } |
irsanjul | 0:64967b7043c2 | 60 | } |
irsanjul | 0:64967b7043c2 | 61 | |
irsanjul | 0:64967b7043c2 | 62 | void CommChannel::Tick10ms() |
irsanjul | 0:64967b7043c2 | 63 | { |
irsanjul | 0:64967b7043c2 | 64 | timerRxTOutCnt++; |
irsanjul | 0:64967b7043c2 | 65 | if(timerRxTOutCnt >= 10) |
irsanjul | 0:64967b7043c2 | 66 | { |
irsanjul | 0:64967b7043c2 | 67 | timerRxTOutCnt = 0; |
irsanjul | 0:64967b7043c2 | 68 | |
irsanjul | 0:64967b7043c2 | 69 | if(RCV_BUFF.size() > 0) |
irsanjul | 0:64967b7043c2 | 70 | { |
irsanjul | 0:64967b7043c2 | 71 | for(int i=0; i<RCV_BUFF.size(); i++) |
irsanjul | 0:64967b7043c2 | 72 | { |
irsanjul | 0:64967b7043c2 | 73 | RCVD.push_back(RCV_BUFF[i]); |
irsanjul | 0:64967b7043c2 | 74 | dbg.printf("[%02X]", RCV_BUFF[i] & 0x0FF); |
irsanjul | 0:64967b7043c2 | 75 | } |
irsanjul | 0:64967b7043c2 | 76 | RCV_BUFF.clear(); |
irsanjul | 0:64967b7043c2 | 77 | } |
irsanjul | 0:64967b7043c2 | 78 | } |
irsanjul | 0:64967b7043c2 | 79 | } |
irsanjul | 0:64967b7043c2 | 80 | |
irsanjul | 0:64967b7043c2 | 81 | //----------------------------------------------------------------- |