Ejemplo n.º 1
0
void
PtTransmit (BRFPacket * pkg, unsigned char broadcast)
{
  int i;
  static BRFPacket backup;

  if (TX_COMMAND_RETRIES > 1)
    backup = *pkg;

  if (broadcast)
    PtUpdateWmcuId (pdTRUE);

  for (i = 0; i < TX_COMMAND_RETRIES; i++)
    {
      if (i)
	*pkg = backup;
      vTaskDelay (((RndNumber () % 5) / portTICK_RATE_MS));
      PtInternalTransmit (pkg);
    }

  if (broadcast)
    {
      vTaskDelay ((3 + (RndNumber () % 5) / portTICK_RATE_MS));
      PtUpdateWmcuId (pdFALSE);
    }
}
Ejemplo n.º 2
0
static void
cmd_id (const portCHAR * cmd)
{
  int mcu_id = 0, lamp_id = 0;

  while (*cmd && *cmd != ' ')
    cmd++;

  cmd++;

  while (*cmd >= '0' && *cmd <= '9')
    {
      mcu_id *= 10;
      mcu_id += *cmd - '0';
      cmd++;
    }

  if (*cmd != ' ')
    {
      shell_print ("parameter missing\n");
      return;
    }

  cmd++;

  while (*cmd >= '0' && *cmd <= '9')
    {
      lamp_id *= 10;
      lamp_id += *cmd - '0';
      cmd++;
    }

  shell_print ("setting wmcu id ");
  DumpUIntToUSB (mcu_id);
  shell_print (", lamp id ");
  DumpUIntToUSB (lamp_id);
  shell_print ("\n");

  if (mcu_id != env.e.wmcu_id ||
      lamp_id != env.e.lamp_id)
    {
      env.e.wmcu_id = mcu_id;
      env.e.lamp_id = lamp_id;
      PtUpdateWmcuId ( env.e.wmcu_id );
      vTaskDelay (100 / portTICK_RATE_MS);
      shell_print ("storing.\n");
      env_store();
    }
  else
    {
      shell_print ("not storing, values are the same.\n");
    }
}
Ejemplo n.º 3
0
static inline s_int8_t
PtInitNRF (void)
{
    if (!nRFAPI_Init (DEFAULT_CHANNEL, broadcast_mac,
                      sizeof (broadcast_mac), ENABLED_NRF_FEATURES))
        return 0;

    jam_density_ms = DEFAULT_JAM_DENSITY;

    nrf_powerlevel_last = nrf_powerlevel_current = -1;
    PtSetRfPowerLevel (NRF_POWERLEVEL_MAX);

    nRFAPI_SetSizeMac (sizeof (wmcu_mac));
    nRFAPI_SetPipeSizeRX (0, sizeof (rfpkg));
    nRFAPI_SetPipeSizeRX (1, sizeof (rfpkg));
    nRFAPI_PipesEnable (ERX_P0 | ERX_P1);
    PtUpdateWmcuId (env.e.mcu_id == 0);

    nRFAPI_SetRxMode (0);
    nRFCMD_CE (0);

    return 1;
}