56 << endl |
56 << endl |
57 << "PHY - Physical Interface Error Counter 0x301, 0x303, 0x305, 0x307" |
57 << "PHY - Physical Interface Error Counter 0x301, 0x303, 0x305, 0x307" |
58 << endl |
58 << endl |
59 << "FWD - Forwarded RX Error Counter 0x308, 0x309, 0x30a, 0x30b" |
59 << "FWD - Forwarded RX Error Counter 0x308, 0x309, 0x30a, 0x30b" |
60 << endl |
60 << endl |
61 << "LNK - Lost Link Counter 0x310, 0x311, 0x312, 0x313" |
61 << "NXT - Next slave" << endl |
62 << endl |
|
63 << endl; |
62 << endl; |
64 |
63 |
65 return str.str(); |
64 return str.str(); |
66 } |
65 } |
67 |
66 |
128 } |
127 } |
129 cout << endl; |
128 cout << endl; |
130 |
129 |
131 cout << " |"; |
130 cout << " |"; |
132 for (unsigned int port = 0; port < EC_MAX_PORTS; port++) { |
131 for (unsigned int port = 0; port < EC_MAX_PORTS; port++) { |
133 cout << "CRC PHY FWD LNK|"; |
132 cout << "CRC PHY FWD NXT|"; |
134 } |
133 } |
135 cout << endl; |
134 cout << endl; |
136 |
135 |
137 for (unsigned int i = 0; i < master.slave_count; i++) { |
136 for (unsigned int i = 0; i < master.slave_count; i++) { |
|
137 |
|
138 ec_ioctl_slave_t slave; |
|
139 m.getSlave(&slave, i); |
138 |
140 |
139 io.slave_position = i; |
141 io.slave_position = i; |
140 try { |
142 try { |
141 m.readReg(&io); |
143 m.readReg(&io); |
142 } catch (MasterDeviceException &e) { |
144 } catch (MasterDeviceException &e) { |
143 throw e; |
145 throw e; |
144 } |
146 } |
145 |
147 |
146 cout << setw(3) << i << "|"; |
148 cout << setw(3) << i << "|"; |
147 for (int port = 0; port < 4; port++) { |
149 for (int port = 0; port < 4; port++) { |
|
150 if (slave.ports[port].link.loop_closed) { |
|
151 cout << " |"; |
|
152 continue; |
|
153 } |
|
154 |
148 cout << setw(3) << (unsigned int) io.data[ 0 + port * 2]; // CRC |
155 cout << setw(3) << (unsigned int) io.data[ 0 + port * 2]; // CRC |
149 cout << setw(4) << (unsigned int) io.data[ 1 + port * 2]; // PHY |
156 cout << setw(4) << (unsigned int) io.data[ 1 + port * 2]; // PHY |
150 cout << setw(4) << (unsigned int) io.data[ 8 + port]; // FWD |
157 cout << setw(4) << (unsigned int) io.data[ 8 + port]; // FWD |
151 cout << setw(4) << (unsigned int) io.data[16 + port]; // LNK |
158 if (slave.ports[port].next_slave == i - 1) { |
|
159 cout << " ↑"; |
|
160 } |
|
161 else if (slave.ports[port].next_slave == i + 1) { |
|
162 cout << " ↓"; |
|
163 } |
|
164 else if (slave.ports[port].next_slave != 0xffff) { |
|
165 cout << setw(4) << slave.ports[port].next_slave; |
|
166 } |
|
167 else { |
|
168 cout << " "; |
|
169 } |
|
170 |
152 cout << "|"; |
171 cout << "|"; |
153 } |
172 } |
154 |
173 |
155 ec_ioctl_slave_t slave; |
|
156 m.getSlave(&slave, i); |
|
157 std::string slaveName(slave.name); |
174 std::string slaveName(slave.name); |
158 slaveName = slaveName.substr(0, 11); |
175 slaveName = slaveName.substr(0, 11); |
159 cout << slaveName << endl; |
176 cout << slaveName << endl; |
160 } |
177 } |
161 } |
178 } |