$ cvs diff DeltaT.cc                         
Index: DeltaT.cc
===================================================================
RCS file: /home/cvs/auv-qnx/auv/altex/onboard/delta_t/DeltaT.cc,v
retrieving revision 1.8
diff -r1.8 DeltaT.cc
32,33c32
< DeltaT::DeltaT(unsigned int port)
<   : _xmit(False), Task(DeltaTTaskName)
---
> DeltaT::DeltaT(char *name, unsigned int port)
36,37c35
<   _input = new DeltaTInput();
<   _output = new DeltaTOutput();
---
>   _name = strdup(name);
40c38,51
<   _msgQ = new DeltaTMessage(MessageQueue::Read, DeltaTMessageQueueName);
---
>   char compound_name[256];
>   _input = new DeltaTInput(DeltaTInput::makeName(compound_name, (char*)name,
> 						 sizeof(compound_name)));
>   printf("%s\n", _input->name());
> 
>   _output = new DeltaTOutput(DeltaTOutput::makeName(compound_name, (char*)name,
> 						    sizeof(compound_name)));
>   printf("%s\n", _output->name());
> 
>   _msgQ = new DeltaTMessage(MessageQueue::Read,
> 			    DeltaTMessage::makeName(compound_name,
> 						    (char*)name,
> 						    sizeof(compound_name)));
>   printf("%s\n", _msgQ->name());
43c54
<   _log = new DeltaTLog( this, DataLog::BinaryFormat );
---
>     _log  = new DeltaTLog( this, DataLog::BinaryFormat, _name );
69a81,90
>   _sockfd = initialize_socket(_port);
> 
>   return DeviceIF::Ok;
> }
> 
> int DeltaT::initialize_socket(int port)
> {
> 
>   Syslog::write("DeltaT: initializing port %d...\n", port);
> 
72a94
>     exit(1);
82c104
<   _client_addr.sin_port        = htons(_port);
---
>   _client_addr.sin_port        = htons(port);
85,86c107,108
<   _server_tv.tv_sec = 1;
<   _server_tv.tv_usec = 0L;
---
>   _server_tv.tv_sec = 0;
>   _server_tv.tv_usec = 300000L;
113,114c135,136
<   Syslog::write("We are ready to receive datagrams from any interface on port %d...\n",
< 	 _port);
---
>   Syslog::write("We are ready to receive datagrams from any interface on port %d, sockfd %d...\n",
> 		port, _sockfd);
116,117c138
<   
<   return DeviceIF::Ok;
---
>   return _sockfd;
120,123d140
< #define DT_83P  1
< #define DT_83B  2
< #define DT_83Z  3
< 
134c151
<   dprintf("Running DeltaT driver...");
---
>   dprintf("Running DeltaT %s on %d...", _name, _port);
136,149c153,155
<   while (1)
<   {
<     int serveraddrsize = sizeof(_server_addr);
< 
<     int nbytes = 0;
<     dprintf("See if IDT packet available, read and process...");
<     if ((nbytes = recvfrom(_sockfd, _receive_buf+ _offset,
< 			   sizeof(_receive_buf) - _offset,
< 			   0, (struct sockaddr *)&_server_addr,
< 			   &serveraddrsize )) < 0) {
<       if (errno == EAGAIN)
< 	Syslog::write("recvfrom timeout");
<       else
< 	Syslog::write("ERROR: recvfrom failed with error %d\n", errno);
---
>   // Act on any messages from DeltaTServer
>   //
>   messageHandler();
151,152c157,160
<       nbytes = 0;
<     }
---
>   // Read and process data from DeltaT beamformer
>   // One ping. One ping only Vasili.
>   //
>   int serveraddrsize = sizeof(_server_addr);
154,165c162,171
<     int msg_type = 0;
<     nbytes += _offset;
<     if (nbytes > 0) msg_type = processPacket(nbytes);
< 
<     // Handle messages from the server process
<     //
<     // According to Jeff Patterson at Imagenex, the beam forming
<     // application is designed so that the optimum time to use
<     // external control messages is immediately after the
<     // app transmits beam data packets.
<     //
<     if (messageHandler() > 0) sendExternalControlSwitches();
---
>   int nbytes = 0;
>   dprintf("See if IDT packet available, read and process...");
>   if ((nbytes = recvfrom(_sockfd, _receive_buf+ _offset,
> 			 sizeof(_receive_buf) - _offset,
> 			 0, (struct sockaddr *)&_server_addr,
> 			 &serveraddrsize )) < 0) {
>     if (errno == EAGAIN)
>       Syslog::write("recvfrom timeout");
>     else
>       Syslog::write("ERROR: recvfrom failed with error %d\n", errno);
167c173,174
<     if (DT_83P == msg_type) process83PData();
---
>     nbytes = 0;
>   }
168a176,179
>   int msg_type = 0;
>   nbytes += _offset;
>   if (nbytes > 0) {
>     msg_type = processPacket(nbytes);
170a182,191
>   // According to Jeff Patterson at Imagenex, the beam forming
>   // application is designed so that the optimum time to use
>   // external control messages is immediately after the
>   // app transmits beam data packets.
>   //
>   sendExternalControlSwitches();
> 
>   if (DT_83P == msg_type) process83PData();
> 
> 
177c198
<   Boolean debug = True;
---
>   Boolean debug = False;
265,266c286,288
<   Syslog::write("%d Beams, %d Samples/Beam, Interval: %dms, Range: %f", nbeams, nsamples,
< 	  interval, _output->data.dt_range);
---
>   if (debug)
>     Syslog::write("%d Beams, %d Samples/Beam, Interval: %dms, Range: %f", nbeams, nsamples,
> 		  interval, _output->data.dt_range);
286a309
>     printf("%s Got msg: %d\n", _name, msg._msg);
345a369,374
>   if (nmsgs > 0)
>     Syslog::write("DeltaT::Sending to %ld:%d... 837:%d Range:%d Gain:%d Gain_eq:%d Nbeams:%d Sector:%d Width:%d Avg:%d SOS:%ld Trigger:%d",
> 		  _server_addr.sin_addr.s_addr, _server_addr.sin_port,
> 		  _send_buf[28], _send_buf[7], _send_buf[8], _send_buf[10], _send_buf[13],
> 		  _send_buf[11],_send_buf[12],_send_buf[14], _sos, _send_buf[31]);
> 
573c602
<    _send_buf[31] = 0x00;					//External Trigger Control
---
>    _send_buf[31] = 0x03;					//External Trigger Control
590,592c619,624
<   Syslog::write("DeltaT::Sending... 837:%d Range:%d Gain:%d Gain_eq:%d Nbeams:%d Sector:%d Width:%d Avg:%d SOS:%ld",
< 		_send_buf[28], _send_buf[7], _send_buf[8], _send_buf[10], _send_buf[13],
< 		_send_buf[11],_send_buf[12],_send_buf[14], _sos);
---
>   if (debug) 
>     Syslog::write("DeltaT::Sending to %ld:%d... 837:%d Range:%d Gain:%d Gain_eq:%d Nbeams:%d Sector:%d Width:%d Avg:%d SOS:%ld Trigger:%d",
> 		  _server_addr.sin_addr.s_addr, _server_addr.sin_port,
> 		  _send_buf[28], _send_buf[7], _send_buf[8], _send_buf[10], _send_buf[13],
> 		  _send_buf[11],_send_buf[12],_send_buf[14], _sos, _send_buf[31]);
> 
