Ejemplo n.º 1
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/// Convert data to byte-stream for sending to device and calculate CRC.
///
/// @param buf  [out] buffer (large enough for storing all data)
///
/// \return number of bytes converted
///
int DevLXNano::Class::ToStream(void* buf)
{
  byte* dst = (byte*) buf;

  LX_ADD_TO_STREAM(name);

  crc = DevLXNano::CalcCrc(dst - (byte*) buf, buf);
  LX_ADD_TO_STREAM(crc);

  return(dst - (byte*) buf);
} // ToStream()
Ejemplo n.º 2
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/// Convert data to byte-stream for sending to device and calculate CRC.
///
/// @param buf  [out] buffer (large enough for storing all data)
///
/// \return number of bytes converted
///
int DevLXNano::Class::ToStream(void* buf)
{
  byte* dst = (byte*) buf;

  LX_ADD_TO_STREAM(name);

  crc = DevLXNano::CalcCrc(dst - (byte*) buf, buf);
  LX_ADD_TO_STREAM(crc);
  #ifdef TESTBENCH
  StartupStore(_T("... LXNANO DECL CRC=%d%s"),crc,NEWLINE);
  #endif

  return(dst - (byte*) buf);
} // ToStream()
Ejemplo n.º 3
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/// Convert data to byte-stream for sending to device and calculate CRC.
///
/// @param buf  [out] buffer (large enough for storing all data)
///
/// \return number of bytes converted
///
int DevLXNano::Decl::ToStream(void* buf)
{
  uint32_t tmp;
  uint16_t tmpU16;
  int16_t  tmpI16;
  byte*dst = (byte*) buf;

  LX_ADD_TO_STREAM(flight.flag);
  tmpU16 = PlatfEndian::To16BE(flight.oo_id);
  LX_ADD_TO_STREAM(tmpU16);
  LX_ADD_TO_STREAM(flight.pilot);
  LX_ADD_TO_STREAM(flight.glider);
  LX_ADD_TO_STREAM(flight.reg_num);
  LX_ADD_TO_STREAM(flight.cmp_num);
  LX_ADD_TO_STREAM(flight.cmp_cls);
  LX_ADD_TO_STREAM(flight.observer);
  LX_ADD_TO_STREAM(flight.gpsdatum);
  LX_ADD_TO_STREAM(flight.fix_accuracy);
  LX_ADD_TO_STREAM(flight.gps);

  LX_ADD_TO_STREAM(task.flag);
  tmp = PlatfEndian::To32BE(task.input_time);
  LX_ADD_TO_STREAM(tmp);
  LX_ADD_TO_STREAM(task.di);
  LX_ADD_TO_STREAM(task.mi);
  LX_ADD_TO_STREAM(task.yi);
  LX_ADD_TO_STREAM(task.fd);
  LX_ADD_TO_STREAM(task.fm);
  LX_ADD_TO_STREAM(task.fy);
  tmpI16 = PlatfEndian::To16BE(task.taskid);
  LX_ADD_TO_STREAM(tmpI16);
  LX_ADD_TO_STREAM(task.num_of_tp);

  for (int i = 0; i < max_wp_count; i++)
    LX_ADD_TO_STREAM(task.tpt[i]);

  for (int i = 0; i < max_wp_count; i++)
  {
    tmp = PlatfEndian::To32BE(task.lon[i]);
    LX_ADD_TO_STREAM(tmp);
  }

  for (int i = 0; i < max_wp_count; i++)
  {
    tmp = PlatfEndian::To32BE(task.lat[i]);
    LX_ADD_TO_STREAM(tmp);
  }

  for (int i = 0; i < max_wp_count; i++)
    LX_ADD_TO_STREAM(task.name[i]);

  crc = DevLXNano::CalcCrc(dst - (byte*) buf, buf);
  LX_ADD_TO_STREAM(crc);
  #ifdef TESTBENCH
  StartupStore(_T("... LXNANO DECL CRC=%d SIZE=%d" NEWLINE),crc,(unsigned)(dst-(byte*)buf));
  #endif

  return(dst - (byte*) buf);
} // ToStream()
Ejemplo n.º 4
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/// Convert data to byte-stream for sending to device and calculate CRC.
///
/// @param buf  [out] buffer (large enough for storing all data)
///
/// \return number of bytes converted
///
int DevLXNano::Decl::ToStream(void* buf)
{
  uint32_t tmp;
  uint16_t tmpU16;
  int16_t  tmpI16;
  byte*dst = (byte*) buf;

  LX_ADD_TO_STREAM(flight.flag);
  tmpU16 = PlatfEndian::To16BE(flight.oo_id);
  LX_ADD_TO_STREAM(tmpU16);
  LX_ADD_TO_STREAM(flight.pilot);
  LX_ADD_TO_STREAM(flight.glider);
  LX_ADD_TO_STREAM(flight.reg_num);
  LX_ADD_TO_STREAM(flight.cmp_num);
  LX_ADD_TO_STREAM(flight.cmp_cls);
  LX_ADD_TO_STREAM(flight.observer);
  LX_ADD_TO_STREAM(flight.gpsdatum);
  LX_ADD_TO_STREAM(flight.fix_accuracy);
  LX_ADD_TO_STREAM(flight.gps);

  LX_ADD_TO_STREAM(task.flag);
  tmp = PlatfEndian::To32BE(task.input_time);
  LX_ADD_TO_STREAM(tmp);
  LX_ADD_TO_STREAM(task.di);
  LX_ADD_TO_STREAM(task.mi);
  LX_ADD_TO_STREAM(task.yi);
  LX_ADD_TO_STREAM(task.fd);
  LX_ADD_TO_STREAM(task.fm);
  LX_ADD_TO_STREAM(task.fy);
  tmpI16 = PlatfEndian::To16BE(task.taskid);
  LX_ADD_TO_STREAM(tmpI16);
  LX_ADD_TO_STREAM(task.num_of_tp);

  for (int i = 0; i < max_wp_count; i++)
    LX_ADD_TO_STREAM(task.tpt[i]);

  for (int i = 0; i < max_wp_count; i++)
  {
    tmp = PlatfEndian::To32BE(task.lon[i]);
    LX_ADD_TO_STREAM(tmp);
  }

  for (int i = 0; i < max_wp_count; i++)
  {
    tmp = PlatfEndian::To32BE(task.lat[i]);
    LX_ADD_TO_STREAM(tmp);
  }

  for (int i = 0; i < max_wp_count; i++)
    LX_ADD_TO_STREAM(task.name[i]);

  crc = DevLXNano::CalcCrc(dst - (byte*) buf, buf);
  LX_ADD_TO_STREAM(crc);

  return(dst - (byte*) buf);
} // ToStream()