huohuoh
Dependencies: NetServices mbed C027_Supports mbed-rpcx
AruChannel.cpp@1:f7d9b0530b73, 2019-09-11 (annotated)
- Committer:
- aldoao
- Date:
- Wed Sep 11 06:32:20 2019 +0000
- Revision:
- 1:f7d9b0530b73
- Parent:
- 0:64967b7043c2
tipe,1
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 "AruChannel.h" |
irsanjul | 0:64967b7043c2 | 3 | |
irsanjul | 0:64967b7043c2 | 4 | extern Serial dbg; |
irsanjul | 0:64967b7043c2 | 5 | |
irsanjul | 0:64967b7043c2 | 6 | AruChannel::AruChannel() |
irsanjul | 0:64967b7043c2 | 7 | { |
irsanjul | 0:64967b7043c2 | 8 | dbg.printf("<AruChannel>"); |
irsanjul | 0:64967b7043c2 | 9 | |
irsanjul | 0:64967b7043c2 | 10 | COM.connect("127.0.0.1:123"); |
irsanjul | 0:64967b7043c2 | 11 | commId = 0; |
irsanjul | 0:64967b7043c2 | 12 | } |
irsanjul | 0:64967b7043c2 | 13 | |
irsanjul | 0:64967b7043c2 | 14 | AruChannel::~AruChannel() |
irsanjul | 0:64967b7043c2 | 15 | { |
irsanjul | 0:64967b7043c2 | 16 | |
irsanjul | 0:64967b7043c2 | 17 | } |
irsanjul | 0:64967b7043c2 | 18 | |
irsanjul | 0:64967b7043c2 | 19 | int AruChannel::ReceiveCount() |
irsanjul | 0:64967b7043c2 | 20 | { |
irsanjul | 0:64967b7043c2 | 21 | return Frm.RCV_QUE.size(); |
irsanjul | 0:64967b7043c2 | 22 | } |
irsanjul | 0:64967b7043c2 | 23 | |
irsanjul | 0:64967b7043c2 | 24 | AruFrm AruChannel::Receive() |
irsanjul | 0:64967b7043c2 | 25 | { |
irsanjul | 0:64967b7043c2 | 26 | AruFrm res = Frm.RCV_QUE.front(); |
irsanjul | 0:64967b7043c2 | 27 | Frm.RCV_QUE.pop(); |
irsanjul | 0:64967b7043c2 | 28 | return res; |
irsanjul | 0:64967b7043c2 | 29 | } |
irsanjul | 0:64967b7043c2 | 30 | |
irsanjul | 0:64967b7043c2 | 31 | void AruChannel::Transmit(const AruFrm &f) |
irsanjul | 0:64967b7043c2 | 32 | { |
irsanjul | 0:64967b7043c2 | 33 | XMT_QUE.push(f); |
irsanjul | 0:64967b7043c2 | 34 | } |
irsanjul | 0:64967b7043c2 | 35 | |
irsanjul | 0:64967b7043c2 | 36 | void AruChannel::Process() |
irsanjul | 0:64967b7043c2 | 37 | { |
irsanjul | 0:64967b7043c2 | 38 | if(COM.dataAvailable() > 0) |
irsanjul | 0:64967b7043c2 | 39 | { |
irsanjul | 0:64967b7043c2 | 40 | std::vector<int> r = COM.read(); |
irsanjul | 0:64967b7043c2 | 41 | |
irsanjul | 0:64967b7043c2 | 42 | Frm.ProcessFromAru(r); |
irsanjul | 0:64967b7043c2 | 43 | } |
irsanjul | 0:64967b7043c2 | 44 | |
irsanjul | 0:64967b7043c2 | 45 | while(XMT_QUE.size() > 0) |
irsanjul | 0:64967b7043c2 | 46 | { |
irsanjul | 0:64967b7043c2 | 47 | AruFrm t = XMT_QUE.front(); |
irsanjul | 0:64967b7043c2 | 48 | XMT_QUE.pop(); |
irsanjul | 0:64967b7043c2 | 49 | |
irsanjul | 0:64967b7043c2 | 50 | // TCP/IP |
irsanjul | 0:64967b7043c2 | 51 | std::vector<int> x = AruFraming::CreateFrame(t); |
irsanjul | 0:64967b7043c2 | 52 | COM.write(x); |
irsanjul | 0:64967b7043c2 | 53 | |
irsanjul | 0:64967b7043c2 | 54 | commId++; |
irsanjul | 0:64967b7043c2 | 55 | } |
irsanjul | 0:64967b7043c2 | 56 | } |
irsanjul | 0:64967b7043c2 | 57 | |
irsanjul | 0:64967b7043c2 | 58 | void AruChannel::Tick10ms() |
irsanjul | 0:64967b7043c2 | 59 | { |
irsanjul | 0:64967b7043c2 | 60 | COM.Tick10ms(); |
irsanjul | 0:64967b7043c2 | 61 | } |