16 #include <sys/socket.h>
17 #include <netinet/in.h>
20 #include "gcp/util/common/String.h"
24 #include "gcp/util/common/FdSet.h"
25 #include "gcp/util/common/Directives.h"
26 #include "gcp/antenna/control/specific/RoachBackendMsg.h"
27 #include "gcp/control/code/unix/libunix_src/common/regmap.h"
28 #include "gcp/antenna/control/specific/Board.h"
36 #define ROACH_TIMEOUT_USEC 10000
37 #define RING_BUFFER_LENGTH 300 // size of our buffer
45 class RoachBackend :
public Board {
52 RoachBackend(
bool sim=
false,
char* controllerName=
"pumba");
53 RoachBackend(SpecificShare* share, std::string name,
bool sim=
false,
char* controllerName=
"pumba",
int roachNum=1);
101 int waitForResponse();
106 void wait(
int nsec=100000000);
157 void printBits(
unsigned char feature);
183 struct termios termioSave_;
190 std::vector<int> packetSize_;
191 std::vector<int> numFrames_;
192 std::vector<int> intCount_;
193 std::vector<int> bufferBacklog_;
194 std::vector<int> tstart_;
195 std::vector<int> switchstatus_;
196 std::vector<int> tstop_;
197 std::vector<int> intLength_;
198 std::vector<int> mode_;
199 std::vector<int> res2_;
200 std::vector<int> seconds_;
201 std::vector<int> useconds_;
202 std::vector<float> Coeffs_;
205 std::vector<std::vector< std::vector<float> > > LL_;
206 std::vector<std::vector<std::vector<float> > > RR_;
207 std::vector<std::vector<std::vector<float> > > Q_;
208 std::vector<std::vector<std::vector<float> > > U_;
209 std::vector<std::vector<std::vector<float> > > TL1_;
210 std::vector<std::vector<std::vector<float> > > TL2_;
212 std::vector<std::vector<float> > LL_;
213 std::vector<std::vector<float> > RR_;
214 std::vector<std::vector<float> > Q_;
215 std::vector<std::vector<float> > U_;
216 std::vector<std::vector<float> > TL1_;
217 std::vector<std::vector<float> > TL2_;
229 RegMapBlock* roachVersion_;
230 RegMapBlock* roachCount_;
231 RegMapBlock* roachIntLength_;
232 RegMapBlock* roachBufferBacklog_;
233 RegMapBlock* roachMode_;
234 RegMapBlock* roachSwitchStatus_;
235 RegMapBlock* roachLL_;
236 RegMapBlock* roachRR_;
237 RegMapBlock* roachQ_;
238 RegMapBlock* roachU_;
239 RegMapBlock* roachTL1_;
240 RegMapBlock* roachTL2_;
241 RegMapBlock* roachChan_;
242 RegMapBlock* roachLLfreq_;
243 RegMapBlock* roachRRfreq_;
244 RegMapBlock* roachQfreq_;
245 RegMapBlock* roachUfreq_;
246 RegMapBlock* roachTL1freq_;
247 RegMapBlock* roachTL2freq_;
248 RegMapBlock* roachLLtime_;
249 RegMapBlock* roachRRtime_;
250 RegMapBlock* roachQtime_;
251 RegMapBlock* roachUtime_;
252 RegMapBlock* roachTL1time_;
253 RegMapBlock* roachTL2time_;
254 RegMapBlock* roachNTPSeconds_;
255 RegMapBlock* roachNTPuSeconds_;
256 RegMapBlock* roachFPGAClockStamp_;
257 RegMapBlock* roachCoffs_;
void sendMessage(RoachBackendMsg message)
Definition: RoachBackend.cc:1397
bool connected_
Definition: roachBackend.h:179
char * controllerName_
Definition: RoachBackend.h:75
void checkOneOutput(RoachBackendMsg &command)
Definition: RoachBackend.cc:690
void disconnect()
Definition: RoachBackend.cc:250
bool roachIsConnected()
Definition: RoachBackend.cc:276
RegMapBlock * roachUtc_
Definition: RoachBackend.h:228
std::vector< int > version_
Definition: RoachBackend.h:189
~RoachBackend()
Definition: RoachBackend.cc:154
bool sim_
Definition: roachBackend.h:181
bool connect()
Definition: RoachBackend.cc:164
int parseBackendDataPacket(RoachBackendMsg &command)
Definition: RoachBackend.cc:635
RoachBackendMsg command_
Definition: roachBackend.h:109
int missedCommCounter_
Definition: RoachBackend.h:70
void Assign3DRingMemory()
Definition: RoachBackend.cc:1422
void writeData(gcp::util::TimeVal &currTime)
Definition: RoachBackend.cc:1061
int issueCommand(RoachBackendMsg &command)
Definition: RoachBackend.cc:543
void getData()
Definition: RoachBackend.cc:718
Definition: RoachBackendMsg.h:59
int writeString(std::string message)
Definition: RoachBackend.cc:361
void sendCommand(RoachBackendMsg &command)
Definition: RoachBackend.cc:330
int roachIndex_
Definition: RoachBackend.h:80
void writeData3D(gcp::util::TimeVal &currTime)
Definition: RoachBackend.cc:839
void Assign2DRingMemory()
Definition: RoachBackend.cc:1492
int readResponse(RoachBackendMsg &command)
Definition: RoachBackend.cc:380