Example Read JSON Data - FujiNetWIFI/fujinet-firmware GitHub Wiki

/**
 * json-test
 *
 * Shows how to use the FujiNet JSON parsing functions
 *
 * @author Thomas Cherryhomes
 * @email  thom dot cherryhomes at gmail dot com
 * @license gpl v. 3, see LICENSE.md for details
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <eos.h>

#define NET_DEV 0x09
#define CHANNEL_MODE_JSON 0x01
#define ACK 0x80

// const char *url = "N:HTTPS://jsonplaceholder.typicode.com/posts/1";

const char *url = "N:HTTPS://oldbytes.space/api/v1/timelines/public?limit=1";

char response[1024];

void main(void)
{
  unsigned char r;
  
  struct _oc
  {
    unsigned char cmd;
    char mode;
    char trans;
    char url[256];
  } OC; // Open command

  struct _scm
  {
    unsigned char cmd;
    char mode;
  } SCM; // Set Channel Mode command
  struct _qc
  {
    unsigned char cmd;
    char query[128];
  } QC; // Query command
  
  OC.cmd = 'O';
  OC.mode = 12;
  OC.trans = 3;
  strncpy(OC.url,url,256);

  SCM.cmd = 0xFC;
  SCM.mode = CHANNEL_MODE_JSON;

  QC.cmd = 'Q';
  
  printf("JSON TEST PROGRAM\n\n");

  printf("OPENING TEST URL:\n%s\n",url);

  if (eos_write_character_device(NET_DEV,(unsigned char *)OC,sizeof(OC)) != ACK)
    {
      printf("ERROR.\n");
      return;
    }
  else
    printf("OPENED.\n");
  
  printf("SETTING CHANNEL MODE TO JSON\n");
  if (eos_write_character_device(NET_DEV,(unsigned char *)SCM,sizeof(SCM)) != ACK)
    {
      printf("ERROR.\n");
      return;
    }
  else
    printf("CHANGED.\n");
  
  printf("PARSING JSON.\n");
  if (eos_write_character_device(NET_DEV,"P",1) != ACK)
    {
      printf("ERROR.\n");
      return;
    }

  printf("QUERYING FOR DATA\n");

  strncpy(QC.query,"/0/account/display_name",128);
  while (eos_write_character_device(NET_DEV,(unsigned char *)QC,sizeof(QC)) < 0x80);
  while ((r = eos_read_character_device(NET_DEV,response,1024)) < 0x80);
  printf("\nNAME: %s\n\n",response);

  strncpy(QC.query,"/0/content",128);
  while (eos_write_character_device(NET_DEV,(unsigned char *)QC,sizeof(QC)) < 0x80);
  while ((r = eos_read_character_device(NET_DEV,response,1024)) < 0x80);
  printf("\n%s\n\n",response);
    
  printf("CLOSING.\n");
  eos_write_character_device(NET_DEV,"C",1);  
}
⚠️ **GitHub.com Fallback** ⚠️