Skip to content

SIO Command $FB Set SSID and Connect

Mark Fisher edited this page Apr 21, 2024 · 5 revisions

This is a command for Device $70 - The FujiNet Device itself (see SIO-Commands-for-Device-ID-$70).

Set SSID and Connect ($FB)

Description

Given a network SSID string (32 characters + NULL), and a password (64 characters), connect to the requested network.

Both string values are NUL terminated.

Parameters

DCB Value
DDEVIC $70
DUNIT $01
DCOMND $FB
DSTATS $80
DBUF Pointer to data buffer, see notes below
DTIMLO $0F
DBYT ENCODED DATA LENGTH
DAUX1 1 = Ask FujiNet to store SSID and password in its configuration immediately; 0 = Information is used, but not saved until a save operation occurs
DAUX2 Encoding Indicator, 0 = NONE, 1 = URL ENCODED DATA

As of 2024/04/21, DAUX2 may contain an encoding indicator for the buffer data.

If there is no encoding, DBYT = 97, otherwise it must contain the length of the 2 encoded strings plus their NUL terminated bytes.

The buffer must contain first the SSID (nul terminated string) and then the password (only adding nul byte if it is encoded).

If there is NO encoding, the password must start at byte 34 (i.e. index 33) for backwards compatibility to exactly fit in the NetConfig structure.

If there IS encoding, the buffer is not expected to directly fit in a NetConfig structure as the encoding may make it too large, and so instead consists of 2 NUL terminated encoded strings. Currently the only supported encoding is URL encoding of strings.

Examples

C

/**
   Network Configuration
*/
union
{
  struct
  {
    char ssid[33];
    char password[64];
  };
  unsigned char rawData[97];
} netConfig;

/**
 * Write desired SSID and password to SIO
 */
unsigned char config_set_ssid(void)
{
  OS.dcb.ddevic=0x70;
  OS.dcb.dunit=1;
  OS.dcb.dcomnd=0xFB; // Set SSID
  OS.dcb.dstats=0x80; // Computer->Peripheral
  OS.dcb.dbuf=&netConfig.rawData;
  OS.dcb.dtimlo=0x0f; // 15 second timeout
  OS.dcb.dbyt=sizeof(netConfig.rawData);
  OS.dcb.daux=0;
  siov();

  return OS.dcb.dstats;
}

See Also

  • Get SSID
  • Scan Networks
  • Scan Result
Clone this wiki locally