Exemplo n.º 1
0
bool
DeviceDescriptor::Declare(const struct Declaration *declaration)
{
  bool result = (device != NULL) && (device->Declare(declaration));

  if (parser.isFlarm)
    result = FlarmDeclare(Com, declaration) || result;

  return result;
}
Exemplo n.º 2
0
BOOL devDeclare(PDeviceDescriptor_t d, Declaration_t *decl)
{
  BOOL result = FALSE;

  if (is_simulator())
    return true;

  mutexComm.Lock();
  if (d) {
    if ((d->Driver) && (d->Driver->Declare != NULL))
      result = d->Driver->Declare(d, decl);

    if (NMEAParser::PortIsFlarm(d->Port))
      result |= FlarmDeclare(d, decl);
  }
  mutexComm.Unlock();

  return result;
}
Exemplo n.º 3
0
BOOL devDeclare(PDeviceDescriptor_t d, Declaration_t *decl, unsigned errBufferLen, TCHAR errBuffer[])
{
  BOOL result = FALSE;

  if (SIMMODE)
    return TRUE;
  
  const unsigned BUFF_LEN = 128;
  TCHAR buffer[BUFF_LEN];

  // We must be sure we are not going to attempt task declaration
  // while a port reset is already in progress. If this happens, a Flarm device will not be Flarm anymore
  // until a Flarm nmea sentence is parsed again once. 
  
  // LKTOKEN  _@M1400_ = "Task declaration"
  // LKTOKEN  _@M571_ = "START"
  _sntprintf(buffer, BUFF_LEN, _T("%s: %s..."), gettext(_T("_@M1400_")), gettext(_T("_@M571_")));
  CreateProgressDialog(buffer);

  /***********************************************************/
  devDirectLink(d,true);
  /***********************************************************/
  LockComm();

  if ((d != NULL) && (d->Declare != NULL))
	result = d->Declare(d, decl, errBufferLen, errBuffer);
  else {
	if ((d != NULL) && NMEAParser::PortIsFlarm(d->Port)) {
		result |= FlarmDeclare(d, decl, errBufferLen, errBuffer);
	}
  }


  UnlockComm();
  /***********************************************************/
  devDirectLink(d,false);
  /***********************************************************/
  CloseProgressDialog();
  
  return result;
}