diff --git a/README.md b/README.md index f8e0a4a..c406e10 100644 --- a/README.md +++ b/README.md @@ -123,33 +123,59 @@ qrepo run dump This example demonstrates the usage of Rishka virtual machine on an ESP32-WROVER microcontroller. It initializes serial communication and SD card, waits for user input via serial port, loads the specified file into the Rishka VM, executes it, and then waits for the next input. ```cpp +#include #include +#include +#include +#define TFT_SCK 18 // TFT SPI clock pin +#define TFT_MOSI 23 // TFT SPI MOSI pin +#define TFT_DC 2 // TFT data/command pin +#define TFT_RESET 4 // TFT reset pin +#define TFT_SPIBUS VSPI_HOST // TFT SPI bus + +#define SD_CS 15 // SD card chip select pin +#define SD_SCK 14 // SD card SPI clock pin +#define SD_MOSI 13 // SD card SPI MOSI pin +#define SD_MISO 12 // SD card SPI MISO pin + +// TFT display controller and Terminal instance +fabgl::ILI9341Controller DisplayController; +fabgl::Terminal Terminal; + +// Rishka virtual machine instance rishka_virtual_machine vm; +// SPI instance for SD card +SPIClass sdSpi(HSPI); void setup() { - // Begin serial communication at 115200 baud rate Serial.begin(115200); - // Wait until serial connection is established - while(!Serial); - // Initialize SD card on pin 5 - if(!SD.begin(5)) { - // If SD card initialization fails, - // print error message and halt execution - Serial.println("Failed to initialize SD card."); - while(true); + // Initialize TFT display + DisplayController.begin(TFT_SCK, TFT_MOSI, TFT_DC, TFT_RESET, 5, TFT_SPIBUS); + DisplayController.setResolution("\"TFT_320x240\" 320 240"); + + // Initialize terminal + Terminal.begin(&DisplayController); + Terminal.loadFont(&fabgl::FONT_8x14); + Terminal.enableCursor(true); + + // Initialize SD card + sdSpi.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS); + if(!SD.begin(SD_CS, sdSpi, 80000000)) { + Terminal.println("Card \e[94mMount\e[97m Failed"); + return; } if(!psramInit()) { // If PSRAM initialization fails, // print error message and halt execution - Serial.println("Cannot initialize PSRAM."); + Serial.println("\e[94mCannot\e[97m initialize PSRAM."); while(true); } // Print prompt - Serial.print("> "); + Terminal.print("\e[32m#~\e[97m "); } void loop() { @@ -160,16 +186,18 @@ void loop() { // Read input from serial port String input = Serial.readString(); // Echo input back to serial port - Serial.print(input); + Terminal.print("\e[93m"); + Terminal.print(input); + Terminal.print("\r\e[97m"); // Initialize Rishka virtual machine - rishka_vm_initialize(&vm, &Serial); + rishka_vm_initialize(&vm, &Terminal); // Attempt to load specified file into Rishka virtual machine if(!rishka_vm_loadfile(&vm, input.c_str())) { // If loading file fails, print error message and return - Serial.print("Failed to load specified file: " + input); - Serial.print("> "); + Terminal.print("Failed to \e[94mload\e[97m specified file: " + input); + Terminal.print("\r\e[32m#~\e[97m "); return; } @@ -179,7 +207,7 @@ void loop() { rishka_vm_reset(&vm); // Print prompt for next input - Serial.print("> "); + Terminal.print("\e[32m#~\e[97m "); } ``` diff --git a/docs/annotated.html b/docs/annotated.html index 614440e..3fdc708 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -3,19 +3,16 @@ - + Rishka: Class List - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
diff --git a/docs/classes.html b/docs/classes.html index d5a432b..69b5699 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -3,19 +3,16 @@ - + Rishka: Class Index - - - @@ -39,7 +36,7 @@
- + @@ -69,7 +66,7 @@
diff --git a/docs/d0/d04/class_sys.html b/docs/d0/d04/class_sys.html index 893afd8..c167a29 100644 --- a/docs/d0/d04/class_sys.html +++ b/docs/d0/d04/class_sys.html @@ -3,19 +3,16 @@ - + Rishka: Sys Class Reference - - - @@ -39,7 +36,7 @@
- + @@ -69,7 +66,7 @@
@@ -103,34 +100,34 @@

Class for handling system utilities in Rishka applications. - More...

+ More...

#include <sys.h>

- + - + - + - + - + - + - + - +

Static Public Member Functions

static void delay (u64 ms)
static void delay (u64 ms)
 Delay execution for a specified duration.
 
static u64 micros ()
static u64 micros ()
 Get the current system time in microseconds.
 
static u64 millis ()
static u64 millis ()
 Get the current system time in milliseconds.
 
static i32 shellexec (string program, i32 argc, string *argv)
static i32 shellexec (string program, i32 argc, string *argv)
 Execute a shell command.
 
static void exit (i32 code)
static void exit (i32 code)
 Terminate the application with an exit code.
 
static string info_str (sysinfos_t key)
static string info_str (sysinfos_t key)
 Get system information as a string.
 
static i64 info_num (sysinfon_t key)
static i64 info_num (sysinfon_t key)
 Get system information as a numeric value.
 
static i64 random ()
static i64 random ()
 Generate a random integer value.
 
@@ -150,7 +147,8 @@

void Sys::delay ( - u64 ms) + u64  + ms) @@ -184,7 +182,8 @@

void Sys::exit ( - i32 code) + i32  + code) @@ -218,7 +217,8 @@

i64 Sys::info_num ( - sysinfon_t key) + sysinfon_t  + key) @@ -253,7 +253,8 @@

string Sys::info_str ( - sysinfos_t key) + sysinfos_t  + key) @@ -288,7 +289,7 @@

u64 Sys::micros ( - ) + ) @@ -317,7 +318,7 @@

u64 Sys::millis ( - ) + ) @@ -346,7 +347,7 @@

i64 Sys::random ( - ) + ) @@ -358,7 +359,7 @@

Generate a random integer value.

-

The random() function generates a random integer value within the range supported by the underlying hardware's random number generator. The generated random value is suitable for various applications such as cryptographic operations, simulation, and randomization tasks.

+

The random() function generates a random integer value within the range supported by the underlying hardware's random number generator. The generated random value is suitable for various applications such as cryptographic operations, simulation, and randomization tasks.

Returns
A random integer value within the supported range.

@@ -375,17 +376,25 @@

i32 Sys::shellexec ( - string program, + string  + program, - i32 argc, + i32  + argc, - string * argv ) + string *  + argv  + + + + ) + @@ -411,7 +420,7 @@

sys.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d0/d53/class_s_p_i-members.html b/docs/d0/d53/class_s_p_i-members.html index 4567043..43c80a8 100644 --- a/docs/d0/d53/class_s_p_i-members.html +++ b/docs/d0/d53/class_s_p_i-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    diff --git a/docs/d1/d31/class_file.html b/docs/d1/d31/class_file.html index 595fcff..ad42639 100644 --- a/docs/d1/d31/class_file.html +++ b/docs/d1/d31/class_file.html @@ -3,19 +3,16 @@ - + Rishka: File Class Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -105,82 +102,82 @@

    Class for handling file operations in Rishka applications. - More...

    + More...

    #include <fs.h>

    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Public Member Functions

    bool is_file ()
    bool is_file ()
     Check if the object represents a file.
     
    bool is_dir ()
    bool is_dir ()
     Check if the object represents a directory.
     
    i32 available ()
    i32 available ()
     Get the number of bytes available for reading from the file.
     
    i32 peek ()
    i32 peek ()
     Peek at the next byte in the file without consuming it.
     
    u64 lastwrite ()
    u64 lastwrite ()
     Get the timestamp of the last write operation on the file.
     
    bool bufsize (usize size)
    bool bufsize (usize size)
     Set the buffer size for the file.
     
    bool seek (u32 pos)
    bool seek (u32 pos)
     Set the current position within the file.
     
    bool seek_dir (u64 position)
    bool seek_dir (u64 position)
     Set the current position within the directory.
     
    usize size ()
    usize size ()
     Get the size of the file.
     
    usize position ()
    usize position ()
     Get the current position within the file.
     
    i32 read ()
    i32 read ()
     Read a byte from the file.
     
    void write (u8 data)
    void write (u8 data)
     Write a byte to the file.
     
    void write (string data)
    void write (string data)
     Write a string to the file.
     
    string path ()
    string path ()
     Get the path of the file.
     
    string name ()
    string name ()
     Get the name of the file.
     
    File next (string mode)
    File next (string mode)
     Get the next file in the directory.
     
    string next_name ()
    string next_name ()
     Get the name of the next file in the directory.
     
    void flush ()
    void flush ()
     Flush the file buffer.
     
    void close ()
    void close ()
     Close the file.
     
    void rewind ()
    void rewind ()
     Rewind the directory pointer to the beginning of the current working directory.
     
    - +

    Static Public Member Functions

    static File open (string file, string mode)
    static File open (string file, string mode)
     Open a file with the specified name and mode.
     
    - +

    Protected Member Functions

     File (i32 _handle)
     File (i32 _handle)
     

    Detailed Description

    @@ -199,7 +196,8 @@

    File::File ( - i32 _handle) + i32  + _handle) @@ -223,7 +221,7 @@

    i32 File::available ( - ) + ) @@ -244,7 +242,8 @@

    bool File::bufsize ( - usize size) + usize  + size) @@ -271,7 +270,7 @@

    void File::close ( - ) + ) @@ -291,7 +290,7 @@

    void File::flush ( - ) + ) @@ -311,7 +310,7 @@

    bool File::is_dir ( - ) + ) @@ -332,7 +331,7 @@

    bool File::is_file ( - ) + ) @@ -353,7 +352,7 @@

    u64 File::lastwrite ( - ) + ) @@ -374,7 +373,7 @@

    string File::name ( - ) + ) @@ -395,7 +394,8 @@

    File File::next ( - string mode) + string  + mode) @@ -422,7 +422,7 @@

    string File::next_name ( - ) + ) @@ -446,12 +446,19 @@

    File File::open ( - string file, + string  + file, - string mode ) + string  + mode  + + + + ) + @@ -483,7 +490,7 @@

    string File::path ( - ) + ) @@ -504,7 +511,7 @@

    i32 File::peek ( - ) + ) @@ -525,7 +532,7 @@

    usize File::position ( - ) + ) @@ -546,7 +553,7 @@

    i32 File::read ( - ) + ) @@ -567,7 +574,7 @@

    void File::rewind ( - ) + ) @@ -587,7 +594,8 @@

    bool File::seek ( - u32 pos) + u32  + pos) @@ -614,7 +622,8 @@

    bool File::seek_dir ( - u64 position) + u64  + position) @@ -641,7 +650,7 @@

    usize File::size ( - ) + ) @@ -662,7 +671,8 @@

    void File::write ( - string data) + string  + data) @@ -688,7 +698,8 @@

    void File::write ( - u8 data) + u8  + data) @@ -707,7 +718,7 @@

    fs.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d1/dea/class_gpio.html b/docs/d1/dea/class_gpio.html index 1962408..89fdf77 100644 --- a/docs/d1/dea/class_gpio.html +++ b/docs/d1/dea/class_gpio.html @@ -3,19 +3,16 @@ - + Rishka: Gpio Class Reference - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    @@ -103,43 +100,43 @@

    Class for handling GPIO operations in Rishka applications. - More...

    + More...

    #include <gpio.h>

    - + - + - + - + - + - + - + - + - + - + - +

    Static Public Member Functions

    static void pin_mode (u8 pin, gpio_pin_mode_t mode)
    static void pin_mode (u8 pin, gpio_pin_mode_t mode)
     Set the mode of a GPIO pin.
     
    static gpio_mode_t digital_read (u8 pin)
    static gpio_mode_t digital_read (u8 pin)
     Read the digital value of a GPIO pin.
     
    static void digital_write (u8 pin, gpio_mode_t mode)
    static void digital_write (u8 pin, gpio_mode_t mode)
     Write a digital value to a GPIO pin.
     
    static u16 analog_read (u8 pin)
    static u16 analog_read (u8 pin)
     Read the analog value of a GPIO pin.
     
    static void analog_write (u8 pin, u16 value)
    static void analog_write (u8 pin, u16 value)
     Write an analog value to a GPIO pin.
     
    static u64 pulse_in (u8 pin, u8 state, u64 timeout)
    static u64 pulse_in (u8 pin, u8 state, u64 timeout)
     Measure the duration of a pulse on a GPIO pin.
     
    static u64 pulse_in_long (u8 pin, u8 state, u64 timeout)
    static u64 pulse_in_long (u8 pin, u8 state, u64 timeout)
     Measure the duration of a long pulse on a GPIO pin.
     
    static u8 shift_in (u8 data, u8 clock, u8 bit_order)
    static u8 shift_in (u8 data, u8 clock, u8 bit_order)
     Shift in data from a digital input pin.
     
    static void shift_out (u8 data, u8 clock, u8 bit_order, u8 value)
    static void shift_out (u8 data, u8 clock, u8 bit_order, u8 value)
     Shift out data to a digital output pin.
     
    static void tone (u8 pin, u32 frequency, u64 duration)
    static void tone (u8 pin, u32 frequency, u64 duration)
     Generate a tone of the specified frequency and duration on a GPIO pin.
     
    static void no_tone (u8 pin)
    static void no_tone (u8 pin)
     Stop generating a tone on a GPIO pin.
     
    @@ -159,7 +156,8 @@

    u16 Gpio::analog_read ( - u8 pin) + u8  + pin) @@ -194,12 +192,19 @@

    void Gpio::analog_write ( - u8 pin, + u8  + pin, - u16 value ) + u16  + value  + + + + ) + @@ -233,7 +238,8 @@

    gpio_mode_t Gpio::digital_read ( - u8 pin) + u8  + pin) @@ -268,12 +274,19 @@

    void Gpio::digital_write ( - u8 pin, + u8  + pin, - gpio_mode_t mode ) + gpio_mode_t  + mode  + + + + ) + @@ -307,7 +320,8 @@

    void Gpio::no_tone ( - u8 pin) + u8  + pin) @@ -341,12 +355,19 @@

    void Gpio::pin_mode ( - u8 pin, + u8  + pin, - gpio_pin_mode_t mode ) + gpio_pin_mode_t  + mode  + + + + ) + @@ -380,17 +401,25 @@

    u64 Gpio::pulse_in ( - u8 pin, + u8  + pin, - u8 state, + u8  + state, - u64 timeout ) + u64  + timeout  + + + + ) + @@ -426,17 +455,25 @@

    u64 Gpio::pulse_in_long ( - u8 pin, + u8  + pin, - u8 state, + u8  + state, - u64 timeout ) + u64  + timeout  + + + + ) + @@ -472,17 +509,25 @@

    u8 Gpio::shift_in ( - u8 data, + u8  + data, - u8 clock, + u8  + clock, - u8 bit_order ) + u8  + bit_order  + + + + ) + @@ -518,22 +563,31 @@

    void Gpio::shift_out ( - u8 data, + u8  + data, - u8 clock, + u8  + clock, - u8 bit_order, + u8  + bit_order, - u8 value ) + u8  + value  + + + + ) + @@ -569,17 +623,25 @@

    void Gpio::tone ( - u8 pin, + u8  + pin, - u32 frequency, + u32  + frequency, - u64 duration ) + u64  + duration  + + + + ) + @@ -604,7 +666,7 @@

    gpio.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d2/d01/class_memory.html b/docs/d2/d01/class_memory.html index e52f6dc..5e5c592 100644 --- a/docs/d2/d01/class_memory.html +++ b/docs/d2/d01/class_memory.html @@ -3,19 +3,16 @@ - + Rishka: Memory Class Reference - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    @@ -103,25 +100,25 @@

    Class for handling memory management operations in Rishka applications. - More...

    + More...

    #include <memory.h>

    - + - + - + - + - +

    Static Public Member Functions

    static void alloc (any dest, usize size)
    static void alloc (any dest, usize size)
     Allocate memory.
     
    static void calloc (any dest, usize num, usize size)
    static void calloc (any dest, usize num, usize size)
     Allocate and clear memory.
     
    static void realloc (any dest, any ptr, usize size)
    static void realloc (any dest, any ptr, usize size)
     Reallocate memory.
     
    static void free (any ptr)
    static void free (any ptr)
     Free memory.
     
    static any set (any dest, i32 c, usize n)
    static any set (any dest, i32 c, usize n)
     Set memory values.
     
    @@ -141,12 +138,19 @@

    void Memory::alloc ( - any dest, + any  + dest, - usize size ) + usize  + size  + + + + ) + @@ -180,17 +184,25 @@

    void Memory::calloc ( - any dest, + any  + dest, - usize num, + usize  + num, - usize size ) + usize  + size  + + + + ) + @@ -225,7 +237,8 @@

    void Memory::free ( - any ptr) + any  + ptr) @@ -259,17 +272,25 @@

    void Memory::realloc ( - any dest, + any  + dest, - any ptr, + any  + ptr, - usize size ) + usize  + size  + + + + ) + @@ -304,17 +325,25 @@

    any Memory::set ( - any dest, + any  + dest, - i32 c, + i32  + c, - usize n ) + usize  + n  + + + + ) + @@ -340,7 +369,7 @@

    memory.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d3/d51/runtime_8h.html b/docs/d3/d51/runtime_8h.html index fb6f4fd..91b2247 100644 --- a/docs/d3/d51/runtime_8h.html +++ b/docs/d3/d51/runtime_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/runtime.h File Reference - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    diff --git a/docs/d3/d51/runtime_8h_source.html b/docs/d3/d51/runtime_8h_source.html index 8618a63..4d4b567 100644 --- a/docs/d3/d51/runtime_8h_source.html +++ b/docs/d3/d51/runtime_8h_source.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/runtime.h Source File - - - @@ -39,7 +36,7 @@
    - + -
    @@ -123,12 +115,10 @@
    29#ifndef LIBRISHKA_RUNTIME_H
    30#define LIBRISHKA_RUNTIME_H
    31
    -
    40class Runtime final {
    41public:
    53 static void yield();
    54};
    -
    55
    56#endif /* LIBRISHKA_RUNTIME_H */
    The Runtime class provides utilities for managing runtime operations.
    Definition runtime.h:40
    diff --git a/docs/d3/d7e/int_8h.html b/docs/d3/d7e/int_8h.html index d981819..227bbaa 100644 --- a/docs/d3/d7e/int_8h.html +++ b/docs/d3/d7e/int_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/int.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -116,11 +113,11 @@ - - +

    Enumerations

    enum  int_mode_t { INT_CHANGE = 0x1 -, INT_FAILING = 0x2 -, INT_RISING = 0x3 +
    enum  int_mode_t { INT_CHANGE = 0x1 +, INT_FAILING = 0x2 +, INT_RISING = 0x3 }
     Enum representing interrupt modes for GPIO pins. More...
     Enum representing interrupt modes for GPIO pins. More...
     

    Detailed Description

    @@ -135,7 +132,7 @@

    - +
    enum int_mode_tenum int_mode_t

    - + -
    @@ -125,15 +117,12 @@
    29
    30#include <librishka/types.h>
    31
    -
    40typedef enum {
    41 INT_CHANGE = 0x1,
    43 INT_RISING = 0x3
    -
    45
    -
    54class Int final {
    55public:
    61 static void enable();
    @@ -144,7 +133,6 @@
    81
    90 static void detach(u8 pin);
    91};
    -
    92
    93#endif /* LIBRISHKA_INT_H */
    Class for handling interrupt operations in Rishka applications.
    Definition int.h:54
    diff --git a/docs/d3/da6/class_f_s.html b/docs/d3/da6/class_f_s.html index 67a8364..81abb45 100644 --- a/docs/d3/da6/class_f_s.html +++ b/docs/d3/da6/class_f_s.html @@ -3,19 +3,16 @@ - + Rishka: FS Class Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -103,22 +100,22 @@

    Class for file system operations in Rishka applications. - More...

    + More...

    #include <fs.h>

    - + - + - + - +

    Static Public Member Functions

    static bool mkdir (const char *path)
    static bool mkdir (const char *path)
     Create a directory with the specified path.
     
    static bool rmdir (const char *path)
    static bool rmdir (const char *path)
     Remove a directory with the specified path.
     
    static bool remove (const char *path)
    static bool remove (const char *path)
     Remove a file with the specified path.
     
    static bool exists (const char *path)
    static bool exists (const char *path)
     Check if a file or directory exists at the specified path.
     
    @@ -138,7 +135,8 @@

    bool FS::exists ( - const char * path) + const char *  + path) @@ -173,7 +171,8 @@

    bool FS::mkdir ( - const char * path) + const char *  + path) @@ -208,7 +207,8 @@

    bool FS::remove ( - const char * path) + const char *  + path) @@ -243,7 +243,8 @@

    bool FS::rmdir ( - const char * path) + const char *  + path) @@ -268,7 +269,7 @@

    fs.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d3/df6/class_runtime.html b/docs/d3/df6/class_runtime.html index 979a107..1c83c0c 100644 --- a/docs/d3/df6/class_runtime.html +++ b/docs/d3/df6/class_runtime.html @@ -3,19 +3,16 @@ - + Rishka: Runtime Class Reference - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    @@ -103,13 +100,13 @@

    The Runtime class provides utilities for managing runtime operations. - More...

    + More...

    #include <runtime.h>

    - +

    Static Public Member Functions

    static void yield ()
    static void yield ()
     Yield the execution context to other tasks or threads.
     
    @@ -129,7 +126,7 @@

    void Runtime::yield ( - ) + ) @@ -141,13 +138,13 @@

    Yield the execution context to other tasks or threads.

    -

    The yield() function allows cooperative multitasking by yielding the execution context to other tasks or threads within the application. By invoking this function, the currently executing task relinquishes control of the CPU, allowing other tasks or threads to execute. This method is useful for implementing cooperative multitasking or event-driven programming paradigms, where tasks voluntarily yield control to other tasks or respond to external events.

    +

    The yield() function allows cooperative multitasking by yielding the execution context to other tasks or threads within the application. By invoking this function, the currently executing task relinquishes control of the CPU, allowing other tasks or threads to execute. This method is useful for implementing cooperative multitasking or event-driven programming paradigms, where tasks voluntarily yield control to other tasks or respond to external events.


    The documentation for this class was generated from the following files:
    • sdk/librishka/runtime.h
    • -
    • sdk/librishka_impl.cpp
    • +
    • sdk/librishka_impl.cpp
    diff --git a/docs/d3/dfe/class_i2_c-members.html b/docs/d3/dfe/class_i2_c-members.html index 2f7747c..f8c6136 100644 --- a/docs/d3/dfe/class_i2_c-members.html +++ b/docs/d3/dfe/class_i2_c-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    diff --git a/docs/d3/dfe/class_s_p_i.html b/docs/d3/dfe/class_s_p_i.html index c9a90e0..e384f92 100644 --- a/docs/d3/dfe/class_s_p_i.html +++ b/docs/d3/dfe/class_s_p_i.html @@ -3,19 +3,16 @@ - + Rishka: SPI Class Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -103,73 +100,73 @@

    Class for handling SPI communication in Rishka applications. - More...

    + More...

    #include <spi.h>

    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Static Public Member Functions

    static void begin (u8 sck, u8 miso, u8 mosi, u8 ss)
    static void begin (u8 sck, u8 miso, u8 mosi, u8 ss)
     Initialize SPI communication.
     
    static void end ()
    static void end ()
     End SPI communication.
     
    static void begin_transaction (u8 clock, u8 bit_order, spi_mode_t data_mode)
    static void begin_transaction (u8 clock, u8 bit_order, spi_mode_t data_mode)
     Begin a SPI transaction.
     
    static void end_transaction ()
    static void end_transaction ()
     End a SPI transaction.
     
    static u8 transfer8 (u8 data)
    static u8 transfer8 (u8 data)
     Transfer an 8-bit data over SPI.
     
    static u16 transfer16 (u16 data)
    static u16 transfer16 (u16 data)
     Transfer a 16-bit data over SPI.
     
    static u32 transfer32 (u32 data)
    static u32 transfer32 (u32 data)
     Transfer a 32-bit data over SPI.
     
    static void transfer_bytes (u8 *data, u8 *out, u32 size)
    static void transfer_bytes (u8 *data, u8 *out, u32 size)
     Transfer data bytes over SPI.
     
    static void transfer_bits (u32 data, u32 *out, u8 bits)
    static void transfer_bits (u32 data, u32 *out, u8 bits)
     Transfer bits over SPI.
     
    static void set_hwcs (bool use)
    static void set_hwcs (bool use)
     Set the hardware chip select (CS) pin usage.
     
    static void set_bit_order (u8 bit_order)
    static void set_bit_order (u8 bit_order)
     Set the bit order for SPI data transfer.
     
    static void set_data_mode (spi_mode_t data_mode)
    static void set_data_mode (spi_mode_t data_mode)
     Set the SPI data mode.
     
    static void set_frequency (u32 frequency)
    static void set_frequency (u32 frequency)
     Set the SPI clock frequency.
     
    static void set_clock_div (u32 clock_div)
    static void set_clock_div (u32 clock_div)
     Set the SPI clock divider.
     
    static u32 get_clock_div ()
    static u32 get_clock_div ()
     Get the SPI clock divider.
     
    static void write8 (u8 data)
    static void write8 (u8 data)
     Write an 8-bit data over SPI.
     
    static void write16 (u16 data)
    static void write16 (u16 data)
     Write a 16-bit data over SPI.
     
    static void write32 (u32 data)
    static void write32 (u32 data)
     Write a 32-bit data over SPI.
     
    static void write_bytes (u8 *data, u32 size)
    static void write_bytes (u8 *data, u32 size)
     Write data bytes over SPI.
     
    static void write_pixels (void *data, u32 size)
    static void write_pixels (void *data, u32 size)
     Write pixel data over SPI.
     
    static void write_pattern (u8 *data, u8 size, u32 pattern)
    static void write_pattern (u8 *data, u8 size, u32 pattern)
     Write pattern data over SPI.
     
    @@ -189,22 +186,31 @@

    void SPI::begin ( - u8 sck, + u8  + sck, - u8 miso, + u8  + miso, - u8 mosi, + u8  + mosi, - u8 ss ) + u8  + ss  + + + + ) + @@ -240,17 +246,25 @@

    void SPI::begin_transaction ( - u8 clock, + u8  + clock, - u8 bit_order, + u8  + bit_order, - spi_mode_t data_mode ) + spi_mode_t  + data_mode  + + + + ) + @@ -285,7 +299,7 @@

    void SPI::end ( - ) + ) @@ -313,7 +327,7 @@

    void SPI::end_transaction ( - ) + ) @@ -341,7 +355,7 @@

    u32 SPI::get_clock_div ( - ) + ) @@ -370,7 +384,8 @@

    void SPI::set_bit_order ( - u8 bit_order) + u8  + bit_order) @@ -404,7 +419,8 @@

    void SPI::set_clock_div ( - u32 clock_div) + u32  + clock_div) @@ -438,7 +454,8 @@

    void SPI::set_data_mode ( - spi_mode_t data_mode) + spi_mode_t  + data_mode) @@ -472,7 +489,8 @@

    void SPI::set_frequency ( - u32 frequency) + u32  + frequency) @@ -506,7 +524,8 @@

    void SPI::set_hwcs ( - bool use) + bool  + use) @@ -540,7 +559,8 @@

    u16 SPI::transfer16 ( - u16 data) + u16  + data) @@ -575,7 +595,8 @@

    u32 SPI::transfer32 ( - u32 data) + u32  + data) @@ -610,7 +631,8 @@

    u8 SPI::transfer8 ( - u8 data) + u8  + data) @@ -645,17 +667,25 @@

    void SPI::transfer_bits ( - u32 data, + u32  + data, - u32 * out, + u32 *  + out, - u8 bits ) + u8  + bits  + + + + ) + @@ -690,17 +720,25 @@

    void SPI::transfer_bytes ( - u8 * data, + u8 *  + data, - u8 * out, + u8 *  + out, - u32 size ) + u32  + size  + + + + ) + @@ -735,7 +773,8 @@

    void SPI::write16 ( - u16 data) + u16  + data) @@ -769,7 +808,8 @@

    void SPI::write32 ( - u32 data) + u32  + data) @@ -803,7 +843,8 @@

    void SPI::write8 ( - u8 data) + u8  + data) @@ -837,12 +878,19 @@

    void SPI::write_bytes ( - u8 * data, + u8 *  + data, - u32 size ) + u32  + size  + + + + ) + @@ -876,17 +924,25 @@

    void SPI::write_pattern ( - u8 * data, + u8 *  + data, - u8 size, + u8  + size, - u32 pattern ) + u32  + pattern  + + + + ) + @@ -921,12 +977,19 @@

    void SPI::write_pixels ( - void * data, + void *  + data, - u32 size ) + u32  + size  + + + + ) + @@ -950,7 +1013,7 @@

    spi.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d4/d47/class_i2_c.html b/docs/d4/d47/class_i2_c.html index 91965b5..a9ed80d 100644 --- a/docs/d4/d47/class_i2_c.html +++ b/docs/d4/d47/class_i2_c.html @@ -3,19 +3,16 @@ - + Rishka: I2C Class Reference - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    @@ -103,67 +100,67 @@

    Class for handling I2C operations in Rishka applications. - More...

    + More...

    #include <i2c.h>

    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Static Public Member Functions

    static bool begin (u8 address)
    static bool begin (u8 address)
     Initialize the I2C communication with the specified address.
     
    static bool end ()
    static bool end ()
     End the I2C communication.
     
    static bool pins (u8 sda, u8 scl)
    static bool pins (u8 sda, u8 scl)
     Set the SDA and SCL pins for the I2C communication.
     
    static void flush ()
    static void flush ()
     Flush the I2C buffer.
     
    static void begin_transmission (u8 address)
    static void begin_transmission (u8 address)
     Begin an I2C transmission to the specified device address.
     
    static u8 end_transmission (bool stop_bit)
    static u8 end_transmission (bool stop_bit)
     End an I2C transmission with an optional stop bit.
     
    static usize write (u8 *data, usize size)
    static usize write (u8 *data, usize size)
     Write data to the I2C bus.
     
    static usize slave_write (u8 *data, usize size)
    static usize slave_write (u8 *data, usize size)
     Write data to the I2C bus as a slave device.
     
    static usize set_buffersize (usize size)
    static usize set_buffersize (usize size)
     Set the buffer size for I2C transactions.
     
    static i32 read ()
    static i32 read ()
     Read data from the I2C bus.
     
    static i32 peek ()
    static i32 peek ()
     Peek at the next byte on the I2C bus.
     
    static i32 available ()
    static i32 available ()
     Get the number of bytes available for reading on the I2C bus.
     
    static usize request (u8 address, usize size, bool stop_bit)
    static usize request (u8 address, usize size, bool stop_bit)
     Request data from a remote I2C device.
     
    static void on_receive (void(*callback)(int))
    static void on_receive (void(*callback)(int))
     Register a callback function for I2C receive events.
     
    static void on_request (void(*callback)(void))
    static void on_request (void(*callback)(void))
     Register a callback function for I2C request events.
     
    static void set_timeout (u16 timeout)
    static void set_timeout (u16 timeout)
     Set the timeout for I2C operations.
     
    static u16 get_timeout ()
    static u16 get_timeout ()
     Get the current timeout for I2C operations.
     
    static bool set_clock (u32 clock)
    static bool set_clock (u32 clock)
     Set the clock frequency for I2C communication.
     
    static u32 get_clock ()
    static u32 get_clock ()
     Get the current clock frequency for I2C communication.
     
    @@ -183,7 +180,7 @@

    i32 I2C::available ( - ) + ) @@ -212,7 +209,8 @@

    bool I2C::begin ( - u8 address) + u8  + address) @@ -247,7 +245,8 @@

    void I2C::begin_transmission ( - u8 address) + u8  + address) @@ -281,7 +280,7 @@

    bool I2C::end ( - ) + ) @@ -310,7 +309,8 @@

    u8 I2C::end_transmission ( - bool stop_bit) + bool  + stop_bit) @@ -345,7 +345,7 @@

    void I2C::flush ( - ) + ) @@ -373,7 +373,7 @@

    u32 I2C::get_clock ( - ) + ) @@ -402,7 +402,7 @@

    u16 I2C::get_timeout ( - ) + ) @@ -431,7 +431,8 @@

    void I2C::on_receive ( - void(*)(int) callback) + void(*)(int)  + callback) @@ -465,7 +466,8 @@

    void I2C::on_request ( - void(*)(void) callback) + void(*)(void)  + callback) @@ -499,7 +501,7 @@

    i32 I2C::peek ( - ) + ) @@ -528,12 +530,19 @@

    bool I2C::pins ( - u8 sda, + u8  + sda, - u8 scl ) + u8  + scl  + + + + ) + @@ -568,7 +577,7 @@

    i32 I2C::read ( - ) + ) @@ -580,7 +589,7 @@

    Read data from the I2C bus.

    -

    This method reads data from the I2C bus received from the device specified in the begin_transmission() method.

    +

    This method reads data from the I2C bus received from the device specified in the begin_transmission() method.

    Returns
    The received data byte.

    @@ -597,17 +606,25 @@

    usize I2C::request ( - u8 address, + u8  + address, - usize size, + usize  + size, - bool stop_bit ) + bool  + stop_bit  + + + + ) + @@ -643,7 +660,8 @@

    usize I2C::set_buffersize ( - usize size) + usize  + size) @@ -678,7 +696,8 @@

    bool I2C::set_clock ( - u32 clock) + u32  + clock) @@ -713,7 +732,8 @@

    void I2C::set_timeout ( - u16 timeout) + u16  + timeout) @@ -747,12 +767,19 @@

    usize I2C::slave_write ( - u8 * data, + u8 *  + data, - usize size ) + usize  + size  + + + + ) + @@ -787,12 +814,19 @@

    usize I2C::write ( - u8 * data, + u8 *  + data, - usize size ) + usize  + size  + + + + ) + @@ -803,7 +837,7 @@

    Write data to the I2C bus.

    -

    This method writes data to the I2C bus for transmission to the device specified in the begin_transmission() method.

    +

    This method writes data to the I2C bus for transmission to the device specified in the begin_transmission() method.

    Parameters
    @@ -817,7 +851,7 @@

    i2c.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d4/da0/class_file-members.html b/docs/d4/da0/class_file-members.html index b91f8d1..d9ed13d 100644 --- a/docs/d4/da0/class_file-members.html +++ b/docs/d4/da0/class_file-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@

    dataPointer to the data buffer.

    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d4/de5/class_sys-members.html b/docs/d4/de5/class_sys-members.html index b012374..544c2cc 100644 --- a/docs/d4/de5/class_sys-members.html +++ b/docs/d4/de5/class_sys-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d5/d65/group___rishka___s_d_k.html b/docs/d5/d65/group___rishka___s_d_k.html index bf4de9a..978a570 100644 --- a/docs/d5/d65/group___rishka___s_d_k.html +++ b/docs/d5/d65/group___rishka___s_d_k.html @@ -3,19 +3,16 @@ - + Rishka: Rishka SDK - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d5/daf/i2c_8h.html b/docs/d5/daf/i2c_8h.html index 0cef355..de48cc3 100644 --- a/docs/d5/daf/i2c_8h.html +++ b/docs/d5/daf/i2c_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/i2c.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d5/daf/i2c_8h_source.html b/docs/d5/daf/i2c_8h_source.html index 479b6a0..6ec7ad1 100644 --- a/docs/d5/daf/i2c_8h_source.html +++ b/docs/d5/daf/i2c_8h_source.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/i2c.h Source File - - - @@ -39,7 +36,7 @@
    - + -
    @@ -125,7 +117,6 @@
    29
    30#include <librishka/types.h>
    31
    -
    42class I2C final {
    43public:
    53 static bool begin(u8 address);
    @@ -166,7 +157,6 @@
    235
    243 static u32 get_clock();
    244};
    -
    245
    246#endif /* LIBRISHKA_I2C_H */
    Class for handling I2C operations in Rishka applications.
    Definition i2c.h:42
    diff --git a/docs/d6/d7c/gpio_8h.html b/docs/d6/d7c/gpio_8h.html index 1af2826..a2e1003 100644 --- a/docs/d6/d7c/gpio_8h.html +++ b/docs/d6/d7c/gpio_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/gpio.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -116,16 +113,16 @@ - - + - - +

    Enumerations

    enum  gpio_pin_mode_t { GPIO_INPUT = 0x01 -, GPIO_OUTPUT = 0x03 -, GPIO_INPUT_PULLUP = 0x05 +
    enum  gpio_pin_mode_t { GPIO_INPUT = 0x01 +, GPIO_OUTPUT = 0x03 +, GPIO_INPUT_PULLUP = 0x05 }
     Enum representing the pin modes for GPIO pins. More...
     Enum representing the pin modes for GPIO pins. More...
     
    enum  gpio_mode_t { GPIO_LOW = 0x0 -, GPIO_HIGH = 0x1 +
    enum  gpio_mode_t { GPIO_LOW = 0x0 +, GPIO_HIGH = 0x1 }
     Enum representing the digital modes for GPIO pins. More...
     Enum representing the digital modes for GPIO pins. More...
     

    Detailed Description

    @@ -140,7 +137,7 @@

    - +
    enum gpio_mode_tenum gpio_mode_t

    - + -
    @@ -125,22 +117,17 @@
    29
    30#include <librishka/types.h>
    31
    -
    40typedef enum {
    41 GPIO_INPUT = 0x01,
    42 GPIO_OUTPUT = 0x03,
    43 GPIO_INPUT_PULLUP = 0x05
    -
    45
    -
    53typedef enum {
    54 GPIO_LOW = 0x0,
    55 GPIO_HIGH = 0x1
    -
    57
    -
    67class Gpio final {
    68public:
    77 static void pin_mode(u8 pin, gpio_pin_mode_t mode);
    @@ -165,7 +152,6 @@
    182
    190 static void no_tone(u8 pin);
    191};
    -
    192
    193#endif /* LIBRISHKA_GPIO_H */
    Class for handling GPIO operations in Rishka applications.
    Definition gpio.h:67
    diff --git a/docs/d6/db5/rt_syscalls.html b/docs/d6/db5/rt_syscalls.html index d26fd4d..7dfc2a6 100644 --- a/docs/d6/db5/rt_syscalls.html +++ b/docs/d6/db5/rt_syscalls.html @@ -3,19 +3,16 @@ - + Rishka: Runtime System Calls - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d6/dd0/class_int-members.html b/docs/d6/dd0/class_int-members.html index 7bed7f0..5f40b6a 100644 --- a/docs/d6/dd0/class_int-members.html +++ b/docs/d6/dd0/class_int-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d6/de4/librishka_8h.html b/docs/d6/de4/librishka_8h.html index b48a533..131f449 100644 --- a/docs/d6/de4/librishka_8h.html +++ b/docs/d6/de4/librishka_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d6/de4/librishka_8h_source.html b/docs/d6/de4/librishka_8h_source.html index 55a21d9..4c098b3 100644 --- a/docs/d6/de4/librishka_8h_source.html +++ b/docs/d6/de4/librishka_8h_source.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka.h Source File - - - @@ -39,7 +36,7 @@
    - + -
    diff --git a/docs/d7/dd5/class_gpio-members.html b/docs/d7/dd5/class_gpio-members.html index 289c15f..9d48aba 100644 --- a/docs/d7/dd5/class_gpio-members.html +++ b/docs/d7/dd5/class_gpio-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d7/dfb/class_f_s-members.html b/docs/d7/dfb/class_f_s-members.html index abc280c..ee3fca9 100644 --- a/docs/d7/dfb/class_f_s-members.html +++ b/docs/d7/dfb/class_f_s-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d8/d24/class_i_o.html b/docs/d8/d24/class_i_o.html index d7ece24..6fca110 100644 --- a/docs/d8/d24/class_i_o.html +++ b/docs/d8/d24/class_i_o.html @@ -3,19 +3,16 @@ - + Rishka: IO Class Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -103,46 +100,46 @@

    Class for handling input/output operations in Rishka applications. - More...

    + More...

    #include <io.h>

    - + - + - + - + - + - + - + - + - + - + - + - +

    Static Public Member Functions

    static void print (const string text)
    static void print (const string text)
     Print text to the output stream.
     
    static void print (i64 number)
    static void print (i64 number)
     Print an integer number to the output stream.
     
    static void print (double number)
    static void print (double number)
     Print a floating-point number to the output stream.
     
    static i32 read ()
    static i32 read ()
     Read a character from the input stream.
     
    static i32 available ()
    static i32 available ()
     Check if there is data available to read from the input stream.
     
    static i32 peek ()
    static i32 peek ()
     Peek at the next character in the input stream.
     
    static bool find (string target, usize size)
    static bool find (string target, usize size)
     Search for a target string in the input stream.
     
    static bool find_until (string target, string terminator)
    static bool find_until (string target, string terminator)
     Search for a target string in the input stream until a terminator is encountered.
     
    static void set_timeout (u64 timeout)
    static void set_timeout (u64 timeout)
     Set the timeout for input operations.
     
    static u64 get_timeout ()
    static u64 get_timeout ()
     Get the current timeout for input operations.
     
    static rune readch ()
    static rune readch ()
     Read a Unicode character from the input stream.
     
    static string readline ()
    static string readline ()
     Read a line of text from the input stream.
     
    @@ -162,7 +159,7 @@

    i32 IO::available ( - ) + ) @@ -191,12 +188,19 @@

    bool IO::find ( - string target, + string  + target, - usize size ) + usize  + size  + + + + ) + @@ -231,12 +235,19 @@

    bool IO::find_until ( - string target, + string  + target, - string terminator ) + string  + terminator  + + + + ) + @@ -271,7 +282,7 @@

    u64 IO::get_timeout ( - ) + ) @@ -300,7 +311,7 @@

    i32 IO::peek ( - ) + ) @@ -329,7 +340,8 @@

    void IO::print ( - const string text) + const string  + text) @@ -363,7 +375,8 @@

    void IO::print ( - double number) + double  + number) @@ -397,7 +410,8 @@

    void IO::print ( - i64 number) + i64  + number) @@ -431,7 +445,7 @@

    i32 IO::read ( - ) + ) @@ -460,7 +474,7 @@

    rune IO::readch ( - ) + ) @@ -489,7 +503,7 @@

    string IO::readline ( - ) + ) @@ -518,7 +532,8 @@

    void IO::set_timeout ( - u64 timeout) + u64  + timeout) @@ -542,7 +557,7 @@

    io.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d8/dec/class_int.html b/docs/d8/dec/class_int.html index 099a358..b4b551d 100644 --- a/docs/d8/dec/class_int.html +++ b/docs/d8/dec/class_int.html @@ -3,19 +3,16 @@ - + Rishka: Int Class Reference - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    @@ -103,22 +100,22 @@

    Class for handling interrupt operations in Rishka applications. - More...

    + More...

    #include <int.h>

    - + - + - + - +

    Static Public Member Functions

    static void enable ()
    static void enable ()
     Enable interrupts globally.
     
    static void disable ()
    static void disable ()
     Disable interrupts globally.
     
    static void attach (u8 pin, void(*callback)(void), int_mode_t mode)
    static void attach (u8 pin, void(*callback)(void), int_mode_t mode)
     Attach an interrupt handler to a GPIO pin.
     
    static void detach (u8 pin)
    static void detach (u8 pin)
     Detach the interrupt handler from a GPIO pin.
     
    @@ -138,17 +135,25 @@

    void Int::attach ( - u8 pin, + u8  + pin, - void(*)(void) callback, + void(*)(void)  + callback, - int_mode_t mode ) + int_mode_t  + mode  + + + + ) + @@ -183,7 +188,8 @@

    void Int::detach ( - u8 pin) + u8  + pin) @@ -217,7 +223,7 @@

    void Int::disable ( - ) + ) @@ -245,7 +251,7 @@

    void Int::enable ( - ) + ) @@ -263,7 +269,7 @@

    int.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/d9/d49/types_8h.html b/docs/d9/d49/types_8h.html index ff91c4b..b6b69ea 100644 --- a/docs/d9/d49/types_8h.html +++ b/docs/d9/d49/types_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/types.h File Reference - - - @@ -39,7 +36,7 @@ - + @@ -69,7 +66,7 @@
    @@ -109,70 +106,70 @@ - - - -

    Macros

    +
    #define F(str)   ((char*) str)
     Macro to convert a string literal to a char pointer.
     
    +
    #define nil   ((void*) 0)
     Macro representing a null pointer.
     
    +
    #define false   0
     Macro representing the boolean value false.
     
    +
    #define true   1
     Macro representing the boolean value true.
     
    - - - - - - - - - - - + - diff --git a/docs/d9/d49/types_8h_source.html b/docs/d9/d49/types_8h_source.html index 910204e..b74b1f4 100644 --- a/docs/d9/d49/types_8h_source.html +++ b/docs/d9/d49/types_8h_source.html @@ -3,19 +3,16 @@ - +Rishka: sdk/librishka/types.h Source File - - - @@ -39,7 +36,7 @@

    Typedefs

    +
    typedef char rune
     Alias for the Unicode character type.
     
    +
    typedef char * string
     Alias for the string type.
     
    +
    typedef signed char i8
     Alias for the signed 8-bit integer type.
     
    +
    typedef signed short int i16
     Alias for the signed 16-bit integer type.
     
    +
    typedef signed int i32
     Alias for the signed 32-bit integer type.
     
    +
    typedef signed long int i64
     Alias for the signed 64-bit integer type.
     
    +
    typedef unsigned char u8
     Alias for the unsigned 8-bit integer type.
     
    +
    typedef unsigned short int u16
     Alias for the unsigned 16-bit integer type.
     
    +
    typedef unsigned int u32
     Alias for the unsigned 32-bit integer type.
     
    +
    typedef unsigned long int u64
     Alias for the unsigned 64-bit integer type.
     
    -typedef u32 usize
    +typedef u32 usize
     Alias for the unsigned integer type representing size.
     
    +
    typedef void * any
     Alias for the generic pointer type.
     
    - + -
    diff --git a/docs/d9/d55/class_i_o-members.html b/docs/d9/d55/class_i_o-members.html index fb5865c..dde7f1f 100644 --- a/docs/d9/d55/class_i_o-members.html +++ b/docs/d9/d55/class_i_o-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/d9/d87/sys_8h.html b/docs/d9/d87/sys_8h.html index fec0896..6521c03 100644 --- a/docs/d9/d87/sys_8h.html +++ b/docs/d9/d87/sys_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/sys.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -116,53 +113,53 @@ - - + - - + - - +

    Enumerations

    enum  sysinfon_t {
    -  SYSINFO_CHIPCORES -, SYSINFO_CHIP_REV -, SYSINFO_CPU_FREQ -, SYSINFO_CYCLE_COUNT +
    enum  sysinfon_t {
    +  SYSINFO_CHIPCORES +, SYSINFO_CHIP_REV +, SYSINFO_CPU_FREQ +, SYSINFO_CYCLE_COUNT ,
    -  SYSINFO_EFUSE_MAC -, SYSINFO_FLASH_MODE -, SYSINFO_FLASH_SPEED -, SYSINFO_FREE_HEAP +  SYSINFO_EFUSE_MAC +, SYSINFO_FLASH_MODE +, SYSINFO_FLASH_SPEED +, SYSINFO_FREE_HEAP ,
    -  SYSINFO_FREE_PSRAM -, SYSINFO_HEAP_SIZE -, SYSINFO_MAX_ALLOC_HEAP -, SYSINFO_MIN_FREE_HEAP +  SYSINFO_FREE_PSRAM +, SYSINFO_HEAP_SIZE +, SYSINFO_MAX_ALLOC_HEAP +, SYSINFO_MIN_FREE_HEAP ,
    -  SYSINFO_MIN_FREE_PSRAM -, SYSINFO_PSRAM_SIZE -, SYSINFO_TEMP_VAL -, SYSINFO_CARD_TYPE +  SYSINFO_MIN_FREE_PSRAM +, SYSINFO_PSRAM_SIZE +, SYSINFO_TEMP_VAL +, SYSINFO_CARD_TYPE ,
    -  SYSINFO_CARD_SIZE -, SYSINFO_NUM_SECTORS -, SYSINFO_SECTOR_SIZE -, SYSINFO_TOTAL_STORAGE +  SYSINFO_CARD_SIZE +, SYSINFO_NUM_SECTORS +, SYSINFO_SECTOR_SIZE +, SYSINFO_TOTAL_STORAGE ,
    -  SYSINFO_USED_STORAGE +  SYSINFO_USED_STORAGE
    }
     Enumeration for system information numeric keys. More...
     Enumeration for system information numeric keys. More...
     
    enum  sysinfos_t { SYSINFO_CHIPMODEL -, SYSINFO_SDK_VERSION -, SYSINFO_SKETCH_MD5 +
    enum  sysinfos_t { SYSINFO_CHIPMODEL +, SYSINFO_SDK_VERSION +, SYSINFO_SKETCH_MD5 }
     Enumeration for system information string keys. More...
     Enumeration for system information string keys. More...
     
    enum  sdcard_t {
    -  SD_CARD_NONE -, SD_CARD_MMC -, SD_CARD_SD -, SD_CARD_SDHC +
    enum  sdcard_t {
    +  SD_CARD_NONE +, SD_CARD_MMC +, SD_CARD_SD +, SD_CARD_SDHC ,
    -  SD_CARD_UNKNOWN +  SD_CARD_UNKNOWN
    }
     Enumeration for SD card types. More...
     Enumeration for SD card types. More...
     

    Detailed Description

    @@ -177,7 +174,7 @@

    - +
    enum sdcard_tenum sdcard_t

    - + -
    @@ -125,7 +117,6 @@
    29
    30#include <librishka/types.h>
    31
    -
    62
    -
    75
    -
    82typedef enum {
    @@ -167,9 +154,7 @@ -
    89
    -
    97class Sys final {
    98public:
    106 static void delay(u64 ms);
    @@ -188,7 +173,6 @@
    169
    181 static i64 random();
    182};
    -
    183
    184#endif /* LIBRISHKA_SYS_H */
    Class for handling system utilities in Rishka applications.
    Definition sys.h:97
    diff --git a/docs/d9/dd1/class_runtime-members.html b/docs/d9/dd1/class_runtime-members.html index e51ab97..e684f76 100644 --- a/docs/d9/dd1/class_runtime-members.html +++ b/docs/d9/dd1/class_runtime-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/da/d87/spi_8h.html b/docs/da/d87/spi_8h.html index cd83c73..bb9241d 100644 --- a/docs/da/d87/spi_8h.html +++ b/docs/da/d87/spi_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/spi.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -116,12 +113,12 @@ - - +

    Enumerations

    enum  spi_mode_t { SPI_MODE0 = 0x00 -, SPI_MODE1 = 0x01 -, SPI_MODE2 = 0x02 -, SPI_MODE3 = 0x03 +
    enum  spi_mode_t { SPI_MODE0 = 0x00 +, SPI_MODE1 = 0x01 +, SPI_MODE2 = 0x02 +, SPI_MODE3 = 0x03 }
     Enumeration for SPI data modes. More...
     Enumeration for SPI data modes. More...
     

    Detailed Description

    @@ -136,7 +133,7 @@

    - +
    enum spi_mode_tenum spi_mode_t

    - + -
    @@ -125,16 +117,13 @@
    29
    30#include <librishka/types.h>
    31
    -
    39typedef enum {
    40 SPI_MODE0 = 0x00,
    41 SPI_MODE1 = 0x01,
    42 SPI_MODE2 = 0x02,
    43 SPI_MODE3 = 0x03
    -
    45
    -
    53class SPI final {
    54public:
    65 static void begin(u8 sck, u8 miso, u8 mosi, u8 ss);
    @@ -179,7 +168,6 @@
    245
    255 static void write_pattern(u8* data, u8 size, u32 pattern);
    256};
    -
    257
    258#endif /* LIBRISHKA_SPI_H */
    Class for handling SPI communication in Rishka applications.
    Definition spi.h:53
    diff --git a/docs/db/d77/args_8h.html b/docs/db/d77/args_8h.html index db5a8d2..77bc4de 100644 --- a/docs/db/d77/args_8h.html +++ b/docs/db/d77/args_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/args.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/db/d77/args_8h_source.html b/docs/db/d77/args_8h_source.html index 91c3353..b2c59d3 100644 --- a/docs/db/d77/args_8h_source.html +++ b/docs/db/d77/args_8h_source.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/args.h Source File - - - @@ -39,7 +36,7 @@
    - + -
    @@ -125,14 +117,12 @@
    29
    30#include <librishka/types.h>
    31
    -
    40class Args final {
    41public:
    50 static i32 count();
    51
    61 static string value(u8 index);
    62};
    -
    63
    64#endif /* LIBRISHKA_ARGS_H */
    Class for handling command line arguments in Rishka applications.
    Definition args.h:40
    diff --git a/docs/dc/d18/memory_8h.html b/docs/dc/d18/memory_8h.html index 927b4fe..31372d0 100644 --- a/docs/dc/d18/memory_8h.html +++ b/docs/dc/d18/memory_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/memory.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/dc/d18/memory_8h_source.html b/docs/dc/d18/memory_8h_source.html index fc7b4d6..764bd85 100644 --- a/docs/dc/d18/memory_8h_source.html +++ b/docs/dc/d18/memory_8h_source.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/memory.h Source File - - - @@ -39,7 +36,7 @@
    - + -
    @@ -125,7 +117,6 @@
    29
    30#include <librishka/types.h>
    31
    -
    39class Memory final {
    40public:
    49 static void alloc(any dest, usize size);
    @@ -139,7 +130,6 @@
    82
    93 static any set(any dest, i32 c, usize n);
    94};
    -
    95
    96#endif /* LIBRISHKA_MEM_H */
    Class for handling memory management operations in Rishka applications.
    Definition memory.h:39
    diff --git a/docs/dc/dac/io_8h.html b/docs/dc/dac/io_8h.html index 2c1819f..8277ed5 100644 --- a/docs/dc/dac/io_8h.html +++ b/docs/dc/dac/io_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/io.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/dc/dac/io_8h_source.html b/docs/dc/dac/io_8h_source.html index a1b4eee..4723b8a 100644 --- a/docs/dc/dac/io_8h_source.html +++ b/docs/dc/dac/io_8h_source.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/io.h Source File - - - @@ -39,7 +36,7 @@
    - + -
    @@ -125,7 +117,6 @@
    29
    30#include <librishka/types.h>
    31
    -
    40class IO final {
    41public:
    49 static void print(const string text);
    @@ -152,7 +143,6 @@
    145
    153 static string readline();
    154};
    -
    155
    156#endif /* LIBRISHKA_IO_H */
    Class for handling input/output operations in Rishka applications.
    Definition io.h:40
    diff --git a/docs/dc/dc6/class_args.html b/docs/dc/dc6/class_args.html index 82d3dd2..81f4711 100644 --- a/docs/dc/dc6/class_args.html +++ b/docs/dc/dc6/class_args.html @@ -3,19 +3,16 @@ - + Rishka: Args Class Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -103,16 +100,16 @@

    Class for handling command line arguments in Rishka applications. - More...

    + More...

    #include <args.h>

    - + - +

    Static Public Member Functions

    static i32 count ()
    static i32 count ()
     Get the number of command line arguments.
     
    static string value (u8 index)
    static string value (u8 index)
     Get the value of a command line argument at a specific index.
     
    @@ -132,7 +129,7 @@

    i32 Args::count ( - ) + ) @@ -161,7 +158,8 @@

    string Args::value ( - u8 index) + u8  + index) @@ -173,7 +171,7 @@

    Get the value of a command line argument at a specific index.

    -

    This method retrieves the value of a command line argument at the specified index. The index should be within the range [0, count() - 1].

    +

    This method retrieves the value of a command line argument at the specified index. The index should be within the range [0, count() - 1].

    Parameters
    @@ -186,7 +184,7 @@

    args.h -
  • sdk/librishka_impl.cpp
  • +
  • sdk/librishka_impl.cpp
  • diff --git a/docs/df/d0c/class_memory-members.html b/docs/df/d0c/class_memory-members.html index 12a4c12..b0b436f 100644 --- a/docs/df/d0c/class_memory-members.html +++ b/docs/df/d0c/class_memory-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@

    indexThe index of the command line argument.

    - + @@ -69,7 +66,7 @@
    diff --git a/docs/df/d26/fs_8h.html b/docs/df/d26/fs_8h.html index 9c0a89e..78b8ff9 100644 --- a/docs/df/d26/fs_8h.html +++ b/docs/df/d26/fs_8h.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/fs.h File Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/df/d26/fs_8h_source.html b/docs/df/d26/fs_8h_source.html index 2c53f51..72932a9 100644 --- a/docs/df/d26/fs_8h_source.html +++ b/docs/df/d26/fs_8h_source.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka/fs.h Source File - - - @@ -39,7 +36,7 @@
    - + -
    @@ -125,12 +117,11 @@
    29
    30#include <librishka/types.h>
    31
    -
    40class File final {
    41private:
    42 i32 handle;
    44protected:
    -
    45 File(i32 _handle);
    +
    45 File(i32 _handle);
    47public:
    59 static File open(string file, string mode);
    60
    @@ -174,9 +165,7 @@
    235
    241 void rewind();
    242};
    -
    243
    -
    251class FS final {
    252public:
    261 static bool mkdir(const char* path);
    @@ -187,7 +176,6 @@
    282
    291 static bool exists(const char* path);
    292};
    -
    293
    294#endif /* LIBRISHKA_FS_H */
    Class for file system operations in Rishka applications.
    Definition fs.h:251
    @@ -200,7 +188,6 @@
    bool is_dir()
    Check if the object represents a directory.
    Definition librishka_impl.cpp:395
    usize size()
    Get the size of the file.
    Definition librishka_impl.cpp:411
    bool is_file()
    Check if the object represents a file.
    Definition librishka_impl.cpp:391
    -
    File(i32 _handle)
    Definition librishka_impl.cpp:383
    string path()
    Get the path of the file.
    Definition librishka_impl.cpp:431
    usize position()
    Get the current position within the file.
    Definition librishka_impl.cpp:415
    i32 read()
    Read a byte from the file.
    Definition librishka_impl.cpp:419
    diff --git a/docs/df/da2/class_args-members.html b/docs/df/da2/class_args-members.html index c392faf..5199c0a 100644 --- a/docs/df/da2/class_args-members.html +++ b/docs/df/da2/class_args-members.html @@ -3,19 +3,16 @@ - + Rishka: Member List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/dir_167427595296cdae7b26c53f264640fa.html b/docs/dir_167427595296cdae7b26c53f264640fa.html index f2a23b9..0bbc824 100644 --- a/docs/dir_167427595296cdae7b26c53f264640fa.html +++ b/docs/dir_167427595296cdae7b26c53f264640fa.html @@ -3,19 +3,16 @@ - + Rishka: misc/pages Directory Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/dir_243a4ba6b4f893d71afbb5a3e90552fa.html b/docs/dir_243a4ba6b4f893d71afbb5a3e90552fa.html index 964d779..9283112 100644 --- a/docs/dir_243a4ba6b4f893d71afbb5a3e90552fa.html +++ b/docs/dir_243a4ba6b4f893d71afbb5a3e90552fa.html @@ -3,19 +3,16 @@ - + Rishka: sdk Directory Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/dir_6e8afc538eccbcb491711fd0cc7b9703.html b/docs/dir_6e8afc538eccbcb491711fd0cc7b9703.html index a3d5caf..af06e5e 100644 --- a/docs/dir_6e8afc538eccbcb491711fd0cc7b9703.html +++ b/docs/dir_6e8afc538eccbcb491711fd0cc7b9703.html @@ -3,19 +3,16 @@ - + Rishka: sdk/librishka Directory Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/dir_a52f4d3d586a58b02f3a4ddf0a992157.html b/docs/dir_a52f4d3d586a58b02f3a4ddf0a992157.html index 7a25a76..4562273 100644 --- a/docs/dir_a52f4d3d586a58b02f3a4ddf0a992157.html +++ b/docs/dir_a52f4d3d586a58b02f3a4ddf0a992157.html @@ -3,19 +3,16 @@ - + Rishka: misc Directory Reference - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/doxygen.css b/docs/doxygen.css index cdde8d7..6d7ea72 100644 --- a/docs/doxygen.css +++ b/docs/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.10.0*/ +/* The standard CSS for doxygen 1.9.7*/ html { /* page base colors */ @@ -145,7 +145,6 @@ html { --fragment-lineno-link-bg-color: #D8D8D8; --fragment-lineno-link-hover-fg-color: #4665A2; --fragment-lineno-link-hover-bg-color: #C8C8C8; ---fragment-copy-ok-color: #2EC82E; --tooltip-foreground-color: black; --tooltip-background-color: white; --tooltip-border-color: gray; @@ -153,11 +152,6 @@ html { --tooltip-declaration-color: #006318; --tooltip-link-color: #4665A2; --tooltip-shadow: 1px 1px 7px gray; ---fold-line-color: #808080; ---fold-minus-image: url('minus.svg'); ---fold-plus-image: url('plus.svg'); ---fold-minus-image-relpath: url('../../minus.svg'); ---fold-plus-image-relpath: url('../../plus.svg'); /** font-family */ --font-family-normal: Roboto,sans-serif; @@ -169,28 +163,6 @@ html { --font-family-icon: Arial,Helvetica; --font-family-tooltip: Roboto,sans-serif; -/** special sections */ ---warning-color-bg: #f8d1cc; ---warning-color-hl: #b61825; ---warning-color-text: #75070f; ---note-color-bg: #faf3d8; ---note-color-hl: #f3a600; ---note-color-text: #5f4204; ---todo-color-bg: #e4f3ff; ---todo-color-hl: #1879C4; ---todo-color-text: #274a5c; ---test-color-bg: #e8e8ff; ---test-color-hl: #3939C4; ---test-color-text: #1a1a5c; ---deprecated-color-bg: #ecf0f3; ---deprecated-color-hl: #5b6269; ---deprecated-color-text: #43454a; ---bug-color-bg: #e4dafd; ---bug-color-hl: #5b2bdd; ---bug-color-text: #2a0d72; ---invariant-color-bg: #d8f1e3; ---invariant-color-hl: #44b86f; ---invariant-color-text: #265532; } @media (prefers-color-scheme: dark) { @@ -326,13 +298,13 @@ html { --code-char-literal-color: #00E0F0; --code-xml-cdata-color: #C9D1D9; --code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #C0C0C0; ---code-vhdl-keyword-color: #CF53C9; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; --code-vhdl-logic-color: #FF0000; --code-link-color: #79C0FF; --code-external-link-color: #79C0FF; --fragment-foreground-color: #C9D1D9; ---fragment-background-color: #090D16; +--fragment-background-color: black; --fragment-border-color: #30363D; --fragment-lineno-border-color: #30363D; --fragment-lineno-background-color: black; @@ -341,7 +313,6 @@ html { --fragment-lineno-link-bg-color: #303030; --fragment-lineno-link-hover-fg-color: #8E96A1; --fragment-lineno-link-hover-bg-color: #505050; ---fragment-copy-ok-color: #0EA80E; --tooltip-foreground-color: #C9D1D9; --tooltip-background-color: #202020; --tooltip-border-color: #C9D1D9; @@ -349,11 +320,6 @@ html { --tooltip-declaration-color: #20C348; --tooltip-link-color: #79C0FF; --tooltip-shadow: none; ---fold-line-color: #808080; ---fold-minus-image: url('minusd.svg'); ---fold-plus-image: url('plusd.svg'); ---fold-minus-image-relpath: url('../../minusd.svg'); ---fold-plus-image-relpath: url('../../plusd.svg'); /** font-family */ --font-family-normal: Roboto,sans-serif; @@ -365,28 +331,6 @@ html { --font-family-icon: Arial,Helvetica; --font-family-tooltip: Roboto,sans-serif; -/** special sections */ ---warning-color-bg: #2e1917; ---warning-color-hl: #ad2617; ---warning-color-text: #f5b1aa; ---note-color-bg: #3b2e04; ---note-color-hl: #f1b602; ---note-color-text: #ceb670; ---todo-color-bg: #163750; ---todo-color-hl: #1982D2; ---todo-color-text: #dcf0fa; ---test-color-bg: #121258; ---test-color-hl: #4242cf; ---test-color-text: #c0c0da; ---deprecated-color-bg: #2e323b; ---deprecated-color-hl: #738396; ---deprecated-color-text: #abb0bd; ---bug-color-bg: #2a2536; ---bug-color-hl: #7661b3; ---bug-color-text: #ae9ed6; ---invariant-color-bg: #303a35; ---invariant-color-hl: #76ce96; ---invariant-color-text: #cceed5; }} body { background-color: var(--page-background-color); @@ -403,6 +347,8 @@ body, table, div, p, dl { /* @group Heading Levels */ .title { + font-weight: 400; + font-size: 14px; font-family: var(--font-family-normal); line-height: 28px; font-size: 150%; @@ -535,12 +481,6 @@ div.qindex{ color: var(--index-separator-color); } -#main-menu a:focus { - outline: auto; - z-index: 10; - position: relative; -} - dt.alphachar{ font-size: 180%; font-weight: bold; @@ -600,13 +540,7 @@ a { } a:hover { - text-decoration: none; - background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); -} - -a:hover > span.arrow { - text-decoration: none; - background : var(--nav-background-color); + text-decoration: underline; } a.el { @@ -682,63 +616,30 @@ ul.multicol { .fragment { text-align: left; direction: ltr; - overflow-x: auto; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ overflow-y: hidden; - position: relative; - min-height: 12px; - margin: 10px 0px; - padding: 10px 10px; - border: 1px solid var(--fragment-border-color); - border-radius: 4px; - background-color: var(--fragment-background-color); - color: var(--fragment-foreground-color); } pre.fragment { - word-wrap: break-word; - font-size: 10pt; - line-height: 125%; - font-family: var(--font-family-monospace); -} - -.clipboard { - width: 24px; - height: 24px; - right: 5px; - top: 5px; - opacity: 0; - position: absolute; - display: inline; + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; overflow: auto; - fill: var(--fragment-foreground-color); - justify-content: center; - align-items: center; - cursor: pointer; -} - -.clipboard.success { - border: 1px solid var(--fragment-foreground-color); - border-radius: 4px; -} - -.fragment:hover .clipboard, .clipboard.success { - opacity: .28; -} - -.clipboard:hover, .clipboard.success { - opacity: 1 !important; -} - -.clipboard:active:not([class~=success]) svg { - transform: scale(.91); -} - -.clipboard.success svg { - fill: var(--fragment-copy-ok-color); + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; } -.clipboard.success { - border-color: var(--fragment-copy-ok-color); +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); } div.line { @@ -778,18 +679,6 @@ div.line.glow { box-shadow: 0 0 10px var(--glow-color); } -span.fold { - margin-left: 5px; - margin-right: 1px; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; - display: inline-block; - width: 12px; - height: 12px; - background-repeat:no-repeat; - background-position:center; -} span.lineno { padding-right: 4px; @@ -861,6 +750,10 @@ img.light-mode-visible { display: none; } +img.formulaDsp { + +} + img.formulaInl, img.inline { vertical-align: middle; } @@ -1160,25 +1053,17 @@ dl.reflist dd { .paramtype { white-space: nowrap; - padding: 0px; - padding-bottom: 1px; } .paramname { + color: var(--memdef-param-name-color); white-space: nowrap; - padding: 0px; - padding-bottom: 1px; - margin-left: 2px; } - .paramname em { - color: var(--memdef-param-name-color); font-style: normal; - margin-right: 1px; } - -.paramname .paramdefval { - font-family: var(--font-family-monospace); +.paramname code { + line-height: 14px; } .params, .retval, .exception, .tparams { @@ -1512,6 +1397,7 @@ table.fieldtable { { height:32px; display:block; + text-decoration: none; outline: none; color: var(--nav-text-normal-color); font-family: var(--font-family-nav); @@ -1600,8 +1486,7 @@ dl { padding: 0 0 0 0; } -/* - +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ dl.section { margin-left: 0px; padding-left: 0px; @@ -1656,101 +1541,8 @@ dl.bug { border-color: #C08050; } -*/ - -dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { - font-weight: bold !important; -} - -dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, -dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { - padding: 10px; - margin: 10px 0px; - overflow: hidden; - margin-left: 0; - border-radius: 4px; -} - dl.section dd { - margin-bottom: 2px; -} - -dl.warning, dl.attention { - background: var(--warning-color-bg); - border-left: 8px solid var(--warning-color-hl); - color: var(--warning-color-text); -} - -dl.warning dt, dl.attention dt { - color: var(--warning-color-hl); -} - -dl.note, dl.remark { - background: var(--note-color-bg); - border-left: 8px solid var(--note-color-hl); - color: var(--note-color-text); -} - -dl.note dt, dl.remark dt { - color: var(--note-color-hl); -} - -dl.todo { - background: var(--todo-color-bg); - border-left: 8px solid var(--todo-color-hl); - color: var(--todo-color-text); -} - -dl.todo dt { - color: var(--todo-color-hl); -} - -dl.test { - background: var(--test-color-bg); - border-left: 8px solid var(--test-color-hl); - color: var(--test-color-text); -} - -dl.test dt { - color: var(--test-color-hl); -} - -dl.bug dt a { - color: var(--bug-color-hl) !important; -} - -dl.bug { - background: var(--bug-color-bg); - border-left: 8px solid var(--bug-color-hl); - color: var(--bug-color-text); -} - -dl.bug dt a { - color: var(--bug-color-hl) !important; -} - -dl.deprecated { - background: var(--deprecated-color-bg); - border-left: 8px solid var(--deprecated-color-hl); - color: var(--deprecated-color-text); -} - -dl.deprecated dt a { - color: var(--deprecated-color-hl) !important; -} - -dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { - margin-inline-start: 0px; -} - -dl.invariant, dl.pre, dl.post { - background: var(--invariant-color-bg); - border-left: 8px solid var(--invariant-color-hl); - color: var(--invariant-color-text); -} - -dl.invariant dt, dl.pre dt, dl.post dt { - color: var(--invariant-color-hl); + margin-bottom: 6px; } @@ -1765,12 +1557,12 @@ dl.invariant dt, dl.pre dt, dl.post dt { vertical-align: bottom; border-collapse: separate; } - + #projectlogo img -{ +{ border: 0px none; } - + #projectalign { vertical-align: middle; diff --git a/docs/dynsections.js b/docs/dynsections.js index 8f49326..f579fbf 100644 --- a/docs/dynsections.js +++ b/docs/dynsections.js @@ -22,173 +22,102 @@ @licend The above is the entire license notice for the JavaScript code in this file */ - -let dynsection = { - - // helper function - updateStripes : function() { - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); - $('table.directory tr'). - removeClass('odd').filter(':visible:odd').addClass('odd'); - }, - - toggleVisibility : function(linkObj) { - const base = $(linkObj).attr('id'); - const summary = $('#'+base+'-summary'); - const content = $('#'+base+'-content'); - const trigger = $('#'+base+'-trigger'); - const src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; - }, - - toggleLevel : function(level) { - $('table.directory tr').each(function() { - const l = this.id.split('_').length-1; - const i = $('#img'+this.id.substring(3)); - const a = $('#arr'+this.id.substring(3)); - if (l'); - // add vertical lines to other rows - $('span[class=lineno]').not(':eq(0)').append(''); - // add toggle controls to lines with fold divs - $('div[class=foldopen]').each(function() { - // extract specific id to use - const id = $(this).attr('id').replace('foldopen',''); - // extract start and end foldable fragment attributes - const start = $(this).attr('data-start'); - const end = $(this).attr('data-end'); - // replace normal fold span with controls for the first line of a foldable fragment - $(this).find('span[class=fold]:first').replaceWith(''); - // append div for folded (closed) representation - $(this).after(''); - // extract the first line from the "open" section to represent closed content - const line = $(this).children().first().clone(); - // remove any glow that might still be active on the original line - $(line).removeClass('glow'); - if (start) { - // if line already ends with a start marker (e.g. trailing {), remove it - $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); - } - // replace minus with plus symbol - $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); - // append ellipsis - $(line).append(' '+start+''+end); - // insert constructed line into closed div - $('#foldclosed'+id).html(line); - }); - }, -}; + }); + updateStripes(); +} + +function toggleFolder(id) +{ + // the clicked row + var currentRow = $('#row_'+id); + + // all rows after the clicked row + var rows = currentRow.nextAll("tr"); + + var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub + + // only match elements AFTER this one (can't hide elements before) + var childRows = rows.filter(function() { return this.id.match(re); }); + + // first row is visible we are HIDING + if (childRows.filter(':first').is(':visible')===true) { + // replace down arrow by right arrow for current row + var currentRowSpans = currentRow.find("span"); + currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); + currentRowSpans.filter(".arrow").html('►'); + rows.filter("[id^=row_"+id+"]").hide(); // hide all children + } else { // we are SHOWING + // replace right arrow by down arrow for current row + var currentRowSpans = currentRow.find("span"); + currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen"); + currentRowSpans.filter(".arrow").html('▼'); + // replace down arrows by right arrows for child rows + var childRowsSpans = childRows.find("span"); + childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); + childRowsSpans.filter(".arrow").html('►'); + childRows.show(); //show all children + } + updateStripes(); +} + + +function toggleInherit(id) +{ + var rows = $('tr.inherit.'+id); + var img = $('tr.inherit_header.'+id+' img'); + var src = $(img).attr('src'); + if (rows.filter(':first').is(':visible')===true) { + rows.css('display','none'); + $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + rows.css('display','table-row'); // using show() causes jump in firefox + $(img).attr('src',src.substring(0,src.length-10)+'open.png'); + } +} /* @license-end */ diff --git a/docs/files.html b/docs/files.html index 247e403..e3bf49e 100644 --- a/docs/files.html +++ b/docs/files.html @@ -3,19 +3,16 @@ - + Rishka: File List - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -99,9 +96,9 @@
    Here is a list of all documented files with brief descriptions:
    -
    [detail level 123]
    - - +
    [detail level 123]
      sdk
      librishka
    + + diff --git a/docs/functions.html b/docs/functions.html index a74d7d7..7875adc 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -3,19 +3,16 @@ - +Rishka: Class Members - - - @@ -39,7 +36,7 @@
      sdk
      librishka
     args.hHeader file for handling command line arguments in Rishka applications
     fs.hHeader file for file system operations in Rishka applications
     gpio.hHeader file for GPIO operations in Rishka applications
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/functions_func.html b/docs/functions_func.html index 48f39b4..1f5e737 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -3,19 +3,16 @@ - + Rishka: Class Members - Functions - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/globals.html b/docs/globals.html index 59ca7de..05e1308 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -3,19 +3,16 @@ - + Rishka: File Members - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/globals_defs.html b/docs/globals_defs.html index 2a05f3d..e3ac723 100644 --- a/docs/globals_defs.html +++ b/docs/globals_defs.html @@ -3,19 +3,16 @@ - + Rishka: File Members - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/globals_enum.html b/docs/globals_enum.html index f4ac4d8..d161038 100644 --- a/docs/globals_enum.html +++ b/docs/globals_enum.html @@ -3,19 +3,16 @@ - + Rishka: File Members - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/globals_eval.html b/docs/globals_eval.html index b171949..104b33c 100644 --- a/docs/globals_eval.html +++ b/docs/globals_eval.html @@ -3,19 +3,16 @@ - + Rishka: File Members - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/globals_type.html b/docs/globals_type.html index cff2cfa..3bdb6fc 100644 --- a/docs/globals_type.html +++ b/docs/globals_type.html @@ -3,19 +3,16 @@ - + Rishka: File Members - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    diff --git a/docs/index.html b/docs/index.html index 19741e1..cf45a4a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,19 +3,16 @@ - + Rishka: Rishka SDK - - - @@ -39,7 +36,7 @@
    - + @@ -69,7 +66,7 @@
    @@ -175,33 +172,59 @@

    Example

    This example demonstrates the usage of Rishka virtual machine on an ESP32-WROVER microcontroller. It initializes serial communication and SD card, waits for user input via serial port, loads the specified file into the Rishka VM, executes it, and then waits for the next input.

    -
    #include <rishka.h>
    +
    #include <fabgl.h>
    +
    #include <rishka.h>
    +
    #include <SD.h>
    +
    #include <SPI.h>
    +
    #define TFT_SCK 18 // TFT SPI clock pin
    +
    #define TFT_MOSI 23 // TFT SPI MOSI pin
    +
    #define TFT_DC 2 // TFT data/command pin
    +
    #define TFT_RESET 4 // TFT reset pin
    +
    #define TFT_SPIBUS VSPI_HOST // TFT SPI bus
    +
    +
    #define SD_CS 15 // SD card chip select pin
    +
    #define SD_SCK 14 // SD card SPI clock pin
    +
    #define SD_MOSI 13 // SD card SPI MOSI pin
    +
    #define SD_MISO 12 // SD card SPI MISO pin
    +
    +
    // TFT display controller and Terminal instance
    +
    fabgl::ILI9341Controller DisplayController;
    +
    fabgl::Terminal Terminal;
    +
    +
    // Rishka virtual machine instance
    rishka_virtual_machine vm;
    +
    // SPI instance for SD card
    +
    SPIClass sdSpi(HSPI);
    void setup() {
    -
    // Begin serial communication at 115200 baud rate
    Serial.begin(115200);
    -
    // Wait until serial connection is established
    -
    while(!Serial);
    -
    // Initialize SD card on pin 5
    -
    if(!SD.begin(5)) {
    -
    // If SD card initialization fails,
    -
    // print error message and halt execution
    -
    Serial.println("Failed to initialize SD card.");
    -
    while(true);
    +
    // Initialize TFT display
    +
    DisplayController.begin(TFT_SCK, TFT_MOSI, TFT_DC, TFT_RESET, 5, TFT_SPIBUS);
    +
    DisplayController.setResolution("\"TFT_320x240\" 320 240");
    +
    +
    // Initialize terminal
    +
    Terminal.begin(&DisplayController);
    +
    Terminal.loadFont(&fabgl::FONT_8x14);
    +
    Terminal.enableCursor(true);
    +
    +
    // Initialize SD card
    +
    sdSpi.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS);
    +
    if(!SD.begin(SD_CS, sdSpi, 80000000)) {
    +
    Terminal.println("Card \e[94mMount\e[97m Failed");
    +
    return;
    }
    if(!psramInit()) {
    // If PSRAM initialization fails,
    // print error message and halt execution
    -
    Serial.println("Cannot initialize PSRAM.");
    +
    Serial.println("\e[94mCannot\e[97m initialize PSRAM.");
    while(true);
    }
    // Print prompt
    -
    Serial.print("> ");
    +
    Terminal.print("\e[32m#~\e[97m ");
    }
    void loop() {
    @@ -212,16 +235,18 @@

    // Read input from serial port
    String input = Serial.readString();
    // Echo input back to serial port
    -
    Serial.print(input);
    +
    Terminal.print("\e[93m");
    +
    Terminal.print(input);
    +
    Terminal.print("\r\e[97m");
    // Initialize Rishka virtual machine
    -
    rishka_vm_initialize(&vm, &Serial);
    +
    rishka_vm_initialize(&vm, &Terminal);
    // Attempt to load specified file into Rishka virtual machine
    if(!rishka_vm_loadfile(&vm, input.c_str())) {
    // If loading file fails, print error message and return
    -
    Serial.print("Failed to load specified file: " + input);
    -
    Serial.print("> ");
    +
    Terminal.print("Failed to \e[94mload\e[97m specified file: " + input);
    +
    Terminal.print("\r\e[32m#~\e[97m ");
    return;
    }
    @@ -231,8 +256,9 @@

    rishka_vm_reset(&vm);
    // Print prompt for next input
    -
    Serial.print("> ");
    +
    Terminal.print("\e[32m#~\e[97m ");
    }
    +
    Header file for SPI (Serial Peripheral Interface) communication in Rishka applications.

    Contributing

    Contributions to Rishka are highly encouraged and appreciated! To contribute new features, bug fixes, or enhancements, please adhere to the following guidelines:

    @@ -258,7 +284,6 @@

    You should have received a copy of the GNU General Public License
    along with this program. If not, see <http://www.gnu.org/licenses/>.

    -
    @@ -100,7 +97,7 @@
    Here is a list of all related documentation pages:
    - +
     Runtime System CallsRishka kernel-level system calls foundation under the hood and comprehensive list
     Runtime System CallsRishka kernel-level system calls foundation under the hood and comprehensive list
    diff --git a/docs/resize.js b/docs/resize.js index 6ad2ae8..aaeb6fc 100644 --- a/docs/resize.js +++ b/docs/resize.js @@ -22,21 +22,61 @@ @licend The above is the entire license notice for the JavaScript code in this file */ +var once=1; +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; -function initResizable() { - let sidenav,navtree,content,header,footer,barWidth=6; - const RESIZE_COOKIE_NAME = ''+'width'; + function readSetting(cookie) + { + if (window.chrome) { + var val = localStorage.getItem(cookie_namespace+'_width'); + if (val) return val; + } else { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + } + return 250; + } + + function writeSetting(cookie, val) + { + if (window.chrome) { + localStorage.setItem(cookie_namespace+"_width",val); + } else { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; + } + } - function resizeWidth() { - const sidenavWidth = $(sidenav).outerWidth(); + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); content.css({marginLeft:parseInt(sidenavWidth)+"px"}); if (typeof page_layout!=='undefined' && page_layout==1) { footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); } - Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + writeSetting('width',sidenavWidth-barWidth); } - function restoreWidth(navWidth) { + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); if (typeof page_layout!=='undefined' && page_layout==1) { footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); @@ -44,11 +84,12 @@ function initResizable() { sidenav.css({width:navWidth + "px"}); } - function resizeHeight() { - const headerHeight = header.outerHeight(); - const footerHeight = footer.outerHeight(); - const windowHeight = $(window).height(); - let contentHeight,navtreeHeight,sideNavHeight; + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ contentHeight = windowHeight - headerHeight - footerHeight; navtreeHeight = contentHeight; @@ -66,17 +107,19 @@ function initResizable() { } } - function collapseExpand() { - let newWidth; + function collapseExpand() + { + var newWidth; if (sidenav.width()>0) { newWidth=0; - } else { - const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + } + else { + var width = readSetting('width'); newWidth = (width>250 && width<$(window).width()) ? width : 250; } restoreWidth(newWidth); - const sidenavWidth = $(sidenav).outerWidth(); - Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); } header = $("#top"); @@ -84,26 +127,29 @@ function initResizable() { content = $("#doc-content"); navtree = $("#nav-tree"); footer = $("#nav-path"); - $(".side-nav-resizable").resizable({resize: () => resizeWidth() }); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); $(sidenav).resizable({ minWidth: 0 }); - $(window).resize(() => resizeHeight()); - const device = navigator.userAgent.toLowerCase(); - const touch_device = device.match(/(iphone|ipod|ipad|android)/); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); if (touch_device) { /* wider split bar for touch only devices */ $(sidenav).css({ paddingRight:'20px' }); $('.ui-resizable-e').css({ width:'20px' }); $('#nav-sync').css({ right:'34px' }); barWidth=20; } - const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + var width = readSetting('width'); if (width) { restoreWidth(width); } else { resizeWidth(); } resizeHeight(); - const url = location.href; - const i=url.indexOf("#"); + var url = location.href; + var i=url.indexOf("#"); if (i>=0) window.location.hash=url.substr(i); - const _preventDefault = (evt) => evt.preventDefault(); + var _preventDefault = function(evt) { evt.preventDefault(); }; $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - $(".ui-resizable-handle").dblclick(collapseExpand); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } $(window).on('load',resizeHeight); } /* @license-end */ diff --git a/docs/search/all_1.js b/docs/search/all_1.js index a5d3b10..18318e5 100644 --- a/docs/search/all_1.js +++ b/docs/search/all_1.js @@ -3,6 +3,5 @@ var searchData= ['begin_0',['begin',['../d4/d47/class_i2_c.html#a266efe334adb94bbdfb0754ef883f5eb',1,'I2C::begin()'],['../d3/dfe/class_s_p_i.html#a8564694e43e048db84186566421f20ff',1,'SPI::begin(u8 sck, u8 miso, u8 mosi, u8 ss)']]], ['begin_5ftransaction_1',['begin_transaction',['../d3/dfe/class_s_p_i.html#ad9d7ac423041fc2db1450f2825c0e776',1,'SPI']]], ['begin_5ftransmission_2',['begin_transmission',['../d4/d47/class_i2_c.html#a3be4609df2d72760b1985b9279a19f18',1,'I2C']]], - ['binaries_3',['Dumping Raw Binaries',['../index.html#autotoc_md6',1,'']]], - ['bufsize_4',['bufsize',['../d1/d31/class_file.html#a835489eb085092ad45009e523f17a7f8',1,'File']]] + ['bufsize_3',['bufsize',['../d1/d31/class_file.html#a835489eb085092ad45009e523f17a7f8',1,'File']]] ]; diff --git a/docs/search/all_10.js b/docs/search/all_10.js index ba5563e..6bfe720 100644 --- a/docs/search/all_10.js +++ b/docs/search/all_10.js @@ -1,12 +1,8 @@ var searchData= [ - ['tone_0',['tone',['../d1/dea/class_gpio.html#afb20af73d4a9f27fc55027f950693ab5',1,'Gpio']]], - ['tool_1',['Using rishka-cc tool',['../index.html#autotoc_md4',1,'']]], - ['transfer16_2',['transfer16',['../d3/dfe/class_s_p_i.html#a747d3de0d24155afeff9071b57fca47a',1,'SPI']]], - ['transfer32_3',['transfer32',['../d3/dfe/class_s_p_i.html#a7941fffa96ff21e0c047d0b8b3335b97',1,'SPI']]], - ['transfer8_4',['transfer8',['../d3/dfe/class_s_p_i.html#aeca87cf870578ed6639122474228c749',1,'SPI']]], - ['transfer_5fbits_5',['transfer_bits',['../d3/dfe/class_s_p_i.html#af9f279f68f6fa78ff5c5748eef25a8e0',1,'SPI']]], - ['transfer_5fbytes_6',['transfer_bytes',['../d3/dfe/class_s_p_i.html#a9a95bf4840cb3ca3caf5e0d4aa01f6c5',1,'SPI']]], - ['true_7',['true',['../d9/d49/types_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7',1,'types.h']]], - ['types_2eh_8',['types.h',['../d9/d49/types_8h.html',1,'']]] + ['u16_0',['u16',['../d9/d49/types_8h.html#a8aa9149a22317014c683c48cebd8cfef',1,'types.h']]], + ['u32_1',['u32',['../d9/d49/types_8h.html#a449a74b72ed931d627eca7efcc6f8c9d',1,'types.h']]], + ['u64_2',['u64',['../d9/d49/types_8h.html#ad9a16e74d880983f276dce5b0344b8bd',1,'types.h']]], + ['u8_3',['u8',['../d9/d49/types_8h.html#ab9f930ae0484417a1883fd3f7cdb490e',1,'types.h']]], + ['usize_4',['usize',['../d9/d49/types_8h.html#adcb5ace4cccb93f392414ee472be10bc',1,'types.h']]] ]; diff --git a/docs/search/all_11.js b/docs/search/all_11.js index 35c645f..f5b49e5 100644 --- a/docs/search/all_11.js +++ b/docs/search/all_11.js @@ -1,9 +1,4 @@ var searchData= [ - ['u16_0',['u16',['../d9/d49/types_8h.html#a8aa9149a22317014c683c48cebd8cfef',1,'types.h']]], - ['u32_1',['u32',['../d9/d49/types_8h.html#a449a74b72ed931d627eca7efcc6f8c9d',1,'types.h']]], - ['u64_2',['u64',['../d9/d49/types_8h.html#ad9a16e74d880983f276dce5b0344b8bd',1,'types.h']]], - ['u8_3',['u8',['../d9/d49/types_8h.html#ab9f930ae0484417a1883fd3f7cdb490e',1,'types.h']]], - ['using_20rishka_20cc_20tool_4',['Using rishka-cc tool',['../index.html#autotoc_md4',1,'']]], - ['usize_5',['usize',['../d9/d49/types_8h.html#adcb5ace4cccb93f392414ee472be10bc',1,'types.h']]] + ['value_0',['value',['../dc/dc6/class_args.html#a8d3219edcc471c045f3b43a03abe00ae',1,'Args']]] ]; diff --git a/docs/search/all_12.js b/docs/search/all_12.js index 0099beb..5f0fe98 100644 --- a/docs/search/all_12.js +++ b/docs/search/all_12.js @@ -1,5 +1,10 @@ var searchData= [ - ['value_0',['value',['../dc/dc6/class_args.html#a8d3219edcc471c045f3b43a03abe00ae',1,'Args']]], - ['vm_1',['Rishka VM',['../index.html#autotoc_md2',1,'']]] + ['write_0',['write',['../d1/d31/class_file.html#ac065242f8bd9d850b7f716a73b12e612',1,'File::write(u8 data)'],['../d1/d31/class_file.html#a84030c5504e3c43019b9cbf1921c5017',1,'File::write(string data)'],['../d4/d47/class_i2_c.html#aaafc8ae639dbffba5582b3e866428cca',1,'I2C::write()']]], + ['write16_1',['write16',['../d3/dfe/class_s_p_i.html#a514d09c6744846a3beaf68a389cbaa79',1,'SPI']]], + ['write32_2',['write32',['../d3/dfe/class_s_p_i.html#a4762b28367c8a6f7b39f4e4b17d35a1d',1,'SPI']]], + ['write8_3',['write8',['../d3/dfe/class_s_p_i.html#a16bea6aec6672d869b58e147996aa314',1,'SPI']]], + ['write_5fbytes_4',['write_bytes',['../d3/dfe/class_s_p_i.html#aacee3de15782f30fcda874828ebc7690',1,'SPI']]], + ['write_5fpattern_5',['write_pattern',['../d3/dfe/class_s_p_i.html#aeb75721e250fa96d856d793bd8c8e863',1,'SPI']]], + ['write_5fpixels_6',['write_pixels',['../d3/dfe/class_s_p_i.html#af8f5a3adb8db25d5255ffca805aa0e4e',1,'SPI']]] ]; diff --git a/docs/search/all_13.js b/docs/search/all_13.js index 5c0b323..f642893 100644 --- a/docs/search/all_13.js +++ b/docs/search/all_13.js @@ -1,11 +1,4 @@ var searchData= [ - ['work_0',['How Does It Work?',['../index.html#autotoc_md0',1,'']]], - ['write_1',['write',['../d1/d31/class_file.html#ac065242f8bd9d850b7f716a73b12e612',1,'File::write(u8 data)'],['../d1/d31/class_file.html#a84030c5504e3c43019b9cbf1921c5017',1,'File::write(string data)'],['../d4/d47/class_i2_c.html#aaafc8ae639dbffba5582b3e866428cca',1,'I2C::write()']]], - ['write16_2',['write16',['../d3/dfe/class_s_p_i.html#a514d09c6744846a3beaf68a389cbaa79',1,'SPI']]], - ['write32_3',['write32',['../d3/dfe/class_s_p_i.html#a4762b28367c8a6f7b39f4e4b17d35a1d',1,'SPI']]], - ['write8_4',['write8',['../d3/dfe/class_s_p_i.html#a16bea6aec6672d869b58e147996aa314',1,'SPI']]], - ['write_5fbytes_5',['write_bytes',['../d3/dfe/class_s_p_i.html#aacee3de15782f30fcda874828ebc7690',1,'SPI']]], - ['write_5fpattern_6',['write_pattern',['../d3/dfe/class_s_p_i.html#aeb75721e250fa96d856d793bd8c8e863',1,'SPI']]], - ['write_5fpixels_7',['write_pixels',['../d3/dfe/class_s_p_i.html#af8f5a3adb8db25d5255ffca805aa0e4e',1,'SPI']]] + ['yield_0',['yield',['../d3/df6/class_runtime.html#a8bb09010afe5ea0792d9a0f337c721e7',1,'Runtime']]] ]; diff --git a/docs/search/all_2.js b/docs/search/all_2.js index 83f8788..41d1fd3 100644 --- a/docs/search/all_2.js +++ b/docs/search/all_2.js @@ -1,12 +1,6 @@ var searchData= [ ['calloc_0',['calloc',['../d2/d01/class_memory.html#af8365b5845b980ce2ccc5b77369bc4a6',1,'Memory']]], - ['calls_1',['Calls',['../d6/db5/rt_syscalls.html#autotoc_md10',1,'Complete List of System Calls'],['../d6/db5/rt_syscalls.html',1,'Runtime System Calls']]], - ['cc_20tool_2',['Using rishka-cc tool',['../index.html#autotoc_md4',1,'']]], - ['close_3',['close',['../d1/d31/class_file.html#a83cbce54d6c3b8c2f417b51f6b3f488c',1,'File']]], - ['compiling_4',['Manually Compiling',['../index.html#autotoc_md5',1,'']]], - ['compiling_20examples_5',['Compiling Examples',['../index.html#autotoc_md3',1,'']]], - ['complete_20list_20of_20system_20calls_6',['Complete List of System Calls',['../d6/db5/rt_syscalls.html#autotoc_md10',1,'']]], - ['contributing_7',['Contributing',['../index.html#autotoc_md8',1,'']]], - ['count_8',['count',['../dc/dc6/class_args.html#a107b1f8ed9f9eaf269380e14f6668793',1,'Args']]] + ['close_1',['close',['../d1/d31/class_file.html#a83cbce54d6c3b8c2f417b51f6b3f488c',1,'File']]], + ['count_2',['count',['../dc/dc6/class_args.html#a107b1f8ed9f9eaf269380e14f6668793',1,'Args']]] ]; diff --git a/docs/search/all_3.js b/docs/search/all_3.js index 338b2d2..f28bc98 100644 --- a/docs/search/all_3.js +++ b/docs/search/all_3.js @@ -4,7 +4,5 @@ var searchData= ['detach_1',['detach',['../d8/dec/class_int.html#a48e45db27a68cd8f61599fc7a8682d9c',1,'Int']]], ['digital_5fread_2',['digital_read',['../d1/dea/class_gpio.html#a6cbd8fc2e5dabfd76389f78155643a39',1,'Gpio']]], ['digital_5fwrite_3',['digital_write',['../d1/dea/class_gpio.html#a823fe9134bbf4a359247e8018d01ff23',1,'Gpio']]], - ['disable_4',['disable',['../d8/dec/class_int.html#a68ab519107cb53ab894235d0dd417f2d',1,'Int']]], - ['does_20it_20work_5',['How Does It Work?',['../index.html#autotoc_md0',1,'']]], - ['dumping_20raw_20binaries_6',['Dumping Raw Binaries',['../index.html#autotoc_md6',1,'']]] + ['disable_4',['disable',['../d8/dec/class_int.html#a68ab519107cb53ab894235d0dd417f2d',1,'Int']]] ]; diff --git a/docs/search/all_4.js b/docs/search/all_4.js index e13d609..871183b 100644 --- a/docs/search/all_4.js +++ b/docs/search/all_4.js @@ -4,8 +4,6 @@ var searchData= ['end_1',['end',['../d4/d47/class_i2_c.html#ae18c572091ad6b0f34fe884fb6e6d77d',1,'I2C::end()'],['../d3/dfe/class_s_p_i.html#a1a633d65ca6a68bd947f58160ab73ee0',1,'SPI::end()']]], ['end_5ftransaction_2',['end_transaction',['../d3/dfe/class_s_p_i.html#a7be8e2f5c0228dcd7cb1948bacc47bb9',1,'SPI']]], ['end_5ftransmission_3',['end_transmission',['../d4/d47/class_i2_c.html#ab97f800da8984950786e25bb3438b2c3',1,'I2C']]], - ['example_4',['Example',['../index.html#autotoc_md7',1,'']]], - ['examples_5',['Compiling Examples',['../index.html#autotoc_md3',1,'']]], - ['exists_6',['exists',['../d3/da6/class_f_s.html#a50e58cb0b40d25d72664e7da9a3c2f02',1,'FS']]], - ['exit_7',['exit',['../d0/d04/class_sys.html#a37cb3000f2181139f80d856a5ee4577e',1,'Sys']]] + ['exists_4',['exists',['../d3/da6/class_f_s.html#a50e58cb0b40d25d72664e7da9a3c2f02',1,'FS']]], + ['exit_5',['exit',['../d0/d04/class_sys.html#a37cb3000f2181139f80d856a5ee4577e',1,'Sys']]] ]; diff --git a/docs/search/all_7.js b/docs/search/all_7.js index 720c159..1329590 100644 --- a/docs/search/all_7.js +++ b/docs/search/all_7.js @@ -1,4 +1,21 @@ var searchData= [ - ['how_20does_20it_20work_0',['How Does It Work?',['../index.html#autotoc_md0',1,'']]] + ['i16_0',['i16',['../d9/d49/types_8h.html#a4af6c64423d3a8691229135cb4356124',1,'types.h']]], + ['i2c_1',['I2C',['../d4/d47/class_i2_c.html',1,'']]], + ['i2c_2eh_2',['i2c.h',['../d5/daf/i2c_8h.html',1,'']]], + ['i32_3',['i32',['../d9/d49/types_8h.html#a3b1df617247dbb90f86c43c7e5a0504d',1,'types.h']]], + ['i64_4',['i64',['../d9/d49/types_8h.html#a6c95997324761b0f5e6aa06244f52d24',1,'types.h']]], + ['i8_5',['i8',['../d9/d49/types_8h.html#a10d539749f8a7b0e12af460edb3a40e6',1,'types.h']]], + ['info_5fnum_6',['info_num',['../d0/d04/class_sys.html#af9f480514351655ace2256653f1d7529',1,'Sys']]], + ['info_5fstr_7',['info_str',['../d0/d04/class_sys.html#a44fe8ecbb8edf7afa0dfcfedbbd645b5',1,'Sys']]], + ['int_8',['Int',['../d8/dec/class_int.html',1,'']]], + ['int_2eh_9',['int.h',['../d3/d7e/int_8h.html',1,'']]], + ['int_5fchange_10',['INT_CHANGE',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6a3a9f764a735d3c1e28a079a8fa7a44b9',1,'int.h']]], + ['int_5ffailing_11',['INT_FAILING',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6afbd86d52f8e1957fd82c632b6a4ec904',1,'int.h']]], + ['int_5fmode_5ft_12',['int_mode_t',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6',1,'int.h']]], + ['int_5frising_13',['INT_RISING',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6a594b9c1e1f3eba9e45d1b75d12e4800d',1,'int.h']]], + ['io_14',['IO',['../d8/d24/class_i_o.html',1,'']]], + ['io_2eh_15',['io.h',['../dc/dac/io_8h.html',1,'']]], + ['is_5fdir_16',['is_dir',['../d1/d31/class_file.html#a037f889ba642432d5565ce09684732cb',1,'File']]], + ['is_5ffile_17',['is_file',['../d1/d31/class_file.html#a2579cd0f5f7ad60c88a9395fc501f4cd',1,'File']]] ]; diff --git a/docs/search/all_8.js b/docs/search/all_8.js index 712edea..57b50f6 100644 --- a/docs/search/all_8.js +++ b/docs/search/all_8.js @@ -1,23 +1,5 @@ var searchData= [ - ['i16_0',['i16',['../d9/d49/types_8h.html#a4af6c64423d3a8691229135cb4356124',1,'types.h']]], - ['i2c_1',['I2C',['../d4/d47/class_i2_c.html',1,'']]], - ['i2c_2eh_2',['i2c.h',['../d5/daf/i2c_8h.html',1,'']]], - ['i32_3',['i32',['../d9/d49/types_8h.html#a3b1df617247dbb90f86c43c7e5a0504d',1,'types.h']]], - ['i64_4',['i64',['../d9/d49/types_8h.html#a6c95997324761b0f5e6aa06244f52d24',1,'types.h']]], - ['i8_5',['i8',['../d9/d49/types_8h.html#a10d539749f8a7b0e12af460edb3a40e6',1,'types.h']]], - ['info_5fnum_6',['info_num',['../d0/d04/class_sys.html#af9f480514351655ace2256653f1d7529',1,'Sys']]], - ['info_5fstr_7',['info_str',['../d0/d04/class_sys.html#a44fe8ecbb8edf7afa0dfcfedbbd645b5',1,'Sys']]], - ['installation_8',['Installation',['../index.html#autotoc_md1',1,'']]], - ['int_9',['Int',['../d8/dec/class_int.html',1,'']]], - ['int_2eh_10',['int.h',['../d3/d7e/int_8h.html',1,'']]], - ['int_5fchange_11',['INT_CHANGE',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6a3a9f764a735d3c1e28a079a8fa7a44b9',1,'int.h']]], - ['int_5ffailing_12',['INT_FAILING',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6afbd86d52f8e1957fd82c632b6a4ec904',1,'int.h']]], - ['int_5fmode_5ft_13',['int_mode_t',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6',1,'int.h']]], - ['int_5frising_14',['INT_RISING',['../d3/d7e/int_8h.html#a8c5d45f0ae61660e0c81111397dbbae6a594b9c1e1f3eba9e45d1b75d12e4800d',1,'int.h']]], - ['io_15',['IO',['../d8/d24/class_i_o.html',1,'']]], - ['io_2eh_16',['io.h',['../dc/dac/io_8h.html',1,'']]], - ['is_5fdir_17',['is_dir',['../d1/d31/class_file.html#a037f889ba642432d5565ce09684732cb',1,'File']]], - ['is_5ffile_18',['is_file',['../d1/d31/class_file.html#a2579cd0f5f7ad60c88a9395fc501f4cd',1,'File']]], - ['it_20work_19',['How Does It Work?',['../index.html#autotoc_md0',1,'']]] + ['lastwrite_0',['lastwrite',['../d1/d31/class_file.html#a75953d4d4e3993b6084323ea494a627f',1,'File']]], + ['librishka_2eh_1',['librishka.h',['../d6/de4/librishka_8h.html',1,'']]] ]; diff --git a/docs/search/all_9.js b/docs/search/all_9.js index ff1cb4c..411b3c1 100644 --- a/docs/search/all_9.js +++ b/docs/search/all_9.js @@ -1,7 +1,8 @@ var searchData= [ - ['lastwrite_0',['lastwrite',['../d1/d31/class_file.html#a75953d4d4e3993b6084323ea494a627f',1,'File']]], - ['librishka_2eh_1',['librishka.h',['../d6/de4/librishka_8h.html',1,'']]], - ['license_2',['License',['../index.html#autotoc_md9',1,'']]], - ['list_20of_20system_20calls_3',['Complete List of System Calls',['../d6/db5/rt_syscalls.html#autotoc_md10',1,'']]] + ['memory_0',['Memory',['../d2/d01/class_memory.html',1,'']]], + ['memory_2eh_1',['memory.h',['../dc/d18/memory_8h.html',1,'']]], + ['micros_2',['micros',['../d0/d04/class_sys.html#a9e9083c9abd766d90ae71ae9ba6bc28b',1,'Sys']]], + ['millis_3',['millis',['../d0/d04/class_sys.html#acfe1b7f4ea18cb985d2465d4f9bbebd3',1,'Sys']]], + ['mkdir_4',['mkdir',['../d3/da6/class_f_s.html#a60635712e457e5b4ebfe445e9b673bd4',1,'FS']]] ]; diff --git a/docs/search/all_a.js b/docs/search/all_a.js index 5cc7a37..7a8d226 100644 --- a/docs/search/all_a.js +++ b/docs/search/all_a.js @@ -1,9 +1,8 @@ var searchData= [ - ['manually_20compiling_0',['Manually Compiling',['../index.html#autotoc_md5',1,'']]], - ['memory_1',['Memory',['../d2/d01/class_memory.html',1,'']]], - ['memory_2eh_2',['memory.h',['../dc/d18/memory_8h.html',1,'']]], - ['micros_3',['micros',['../d0/d04/class_sys.html#a9e9083c9abd766d90ae71ae9ba6bc28b',1,'Sys']]], - ['millis_4',['millis',['../d0/d04/class_sys.html#acfe1b7f4ea18cb985d2465d4f9bbebd3',1,'Sys']]], - ['mkdir_5',['mkdir',['../d3/da6/class_f_s.html#a60635712e457e5b4ebfe445e9b673bd4',1,'FS']]] + ['name_0',['name',['../d1/d31/class_file.html#ada67576556e0415df8bf213d0ce50991',1,'File']]], + ['next_1',['next',['../d1/d31/class_file.html#a917ad46d6bd35ad1cb8a428a9cf830b3',1,'File']]], + ['next_5fname_2',['next_name',['../d1/d31/class_file.html#aaf6db647fb94b0ea4a1ef2e9af9aee07',1,'File']]], + ['nil_3',['nil',['../d9/d49/types_8h.html#a7a7ca81d2a85873283b5ec82953b1b25',1,'types.h']]], + ['no_5ftone_4',['no_tone',['../d1/dea/class_gpio.html#a6512bdac9bebb453a3ba9073f24792cf',1,'Gpio']]] ]; diff --git a/docs/search/all_b.js b/docs/search/all_b.js index 7a8d226..cec0d24 100644 --- a/docs/search/all_b.js +++ b/docs/search/all_b.js @@ -1,8 +1,6 @@ var searchData= [ - ['name_0',['name',['../d1/d31/class_file.html#ada67576556e0415df8bf213d0ce50991',1,'File']]], - ['next_1',['next',['../d1/d31/class_file.html#a917ad46d6bd35ad1cb8a428a9cf830b3',1,'File']]], - ['next_5fname_2',['next_name',['../d1/d31/class_file.html#aaf6db647fb94b0ea4a1ef2e9af9aee07',1,'File']]], - ['nil_3',['nil',['../d9/d49/types_8h.html#a7a7ca81d2a85873283b5ec82953b1b25',1,'types.h']]], - ['no_5ftone_4',['no_tone',['../d1/dea/class_gpio.html#a6512bdac9bebb453a3ba9073f24792cf',1,'Gpio']]] + ['on_5freceive_0',['on_receive',['../d4/d47/class_i2_c.html#af9ff84397093ccd077543fe01961cd5d',1,'I2C']]], + ['on_5frequest_1',['on_request',['../d4/d47/class_i2_c.html#a390ff0ee890ab39ab28cd4c543af8e9e',1,'I2C']]], + ['open_2',['open',['../d1/d31/class_file.html#a02bd0d435a62edd38c7d740d78b0e2b2',1,'File']]] ]; diff --git a/docs/search/all_c.js b/docs/search/all_c.js index 8641a7d..0b02433 100644 --- a/docs/search/all_c.js +++ b/docs/search/all_c.js @@ -1,7 +1,11 @@ var searchData= [ - ['of_20system_20calls_0',['Complete List of System Calls',['../d6/db5/rt_syscalls.html#autotoc_md10',1,'']]], - ['on_5freceive_1',['on_receive',['../d4/d47/class_i2_c.html#af9ff84397093ccd077543fe01961cd5d',1,'I2C']]], - ['on_5frequest_2',['on_request',['../d4/d47/class_i2_c.html#a390ff0ee890ab39ab28cd4c543af8e9e',1,'I2C']]], - ['open_3',['open',['../d1/d31/class_file.html#a02bd0d435a62edd38c7d740d78b0e2b2',1,'File']]] + ['path_0',['path',['../d1/d31/class_file.html#a413be02c456128dd068f13f40512082c',1,'File']]], + ['peek_1',['peek',['../d1/d31/class_file.html#a77d372dc30a7787ecf206c03e391ce0f',1,'File::peek()'],['../d4/d47/class_i2_c.html#a99eabb6ab690da04d49b9a6a4b1aa459',1,'I2C::peek()'],['../d8/d24/class_i_o.html#ab56c95632078c4b39f47c77f0f103ab7',1,'IO::peek()']]], + ['pin_5fmode_2',['pin_mode',['../d1/dea/class_gpio.html#a956f98807a132fe5be3b6abc6555ff57',1,'Gpio']]], + ['pins_3',['pins',['../d4/d47/class_i2_c.html#a351469c338e1b8ed55c596480beb58af',1,'I2C']]], + ['position_4',['position',['../d1/d31/class_file.html#a5be995865298178e97b6384b77c8e5c9',1,'File']]], + ['print_5',['print',['../d8/d24/class_i_o.html#af67b36507b53221d03a5b7f1fd6638f0',1,'IO::print(const string text)'],['../d8/d24/class_i_o.html#a30f60dd764ba3cb47b19849297dbb7d5',1,'IO::print(i64 number)'],['../d8/d24/class_i_o.html#a60ac760446a47d3e1926ffe0120ff854',1,'IO::print(double number)']]], + ['pulse_5fin_6',['pulse_in',['../d1/dea/class_gpio.html#a56c27badbd92bb18593987e5cdd0fade',1,'Gpio']]], + ['pulse_5fin_5flong_7',['pulse_in_long',['../d1/dea/class_gpio.html#a065fa69ac324fe76e67d47db841c4799',1,'Gpio']]] ]; diff --git a/docs/search/all_d.js b/docs/search/all_d.js index 0b02433..ffc31e3 100644 --- a/docs/search/all_d.js +++ b/docs/search/all_d.js @@ -1,11 +1,17 @@ var searchData= [ - ['path_0',['path',['../d1/d31/class_file.html#a413be02c456128dd068f13f40512082c',1,'File']]], - ['peek_1',['peek',['../d1/d31/class_file.html#a77d372dc30a7787ecf206c03e391ce0f',1,'File::peek()'],['../d4/d47/class_i2_c.html#a99eabb6ab690da04d49b9a6a4b1aa459',1,'I2C::peek()'],['../d8/d24/class_i_o.html#ab56c95632078c4b39f47c77f0f103ab7',1,'IO::peek()']]], - ['pin_5fmode_2',['pin_mode',['../d1/dea/class_gpio.html#a956f98807a132fe5be3b6abc6555ff57',1,'Gpio']]], - ['pins_3',['pins',['../d4/d47/class_i2_c.html#a351469c338e1b8ed55c596480beb58af',1,'I2C']]], - ['position_4',['position',['../d1/d31/class_file.html#a5be995865298178e97b6384b77c8e5c9',1,'File']]], - ['print_5',['print',['../d8/d24/class_i_o.html#af67b36507b53221d03a5b7f1fd6638f0',1,'IO::print(const string text)'],['../d8/d24/class_i_o.html#a30f60dd764ba3cb47b19849297dbb7d5',1,'IO::print(i64 number)'],['../d8/d24/class_i_o.html#a60ac760446a47d3e1926ffe0120ff854',1,'IO::print(double number)']]], - ['pulse_5fin_6',['pulse_in',['../d1/dea/class_gpio.html#a56c27badbd92bb18593987e5cdd0fade',1,'Gpio']]], - ['pulse_5fin_5flong_7',['pulse_in_long',['../d1/dea/class_gpio.html#a065fa69ac324fe76e67d47db841c4799',1,'Gpio']]] + ['random_0',['random',['../d0/d04/class_sys.html#a3cc8c3d6432a431ea7655ddc272d2531',1,'Sys']]], + ['read_1',['read',['../d1/d31/class_file.html#a71de4839522ca512a4ffa01ba208c862',1,'File::read()'],['../d4/d47/class_i2_c.html#a7df78c7394b3f304235ca4e0b74dee1e',1,'I2C::read()'],['../d8/d24/class_i_o.html#a45dfb01a4ebfa134227a51f7be20d214',1,'IO::read()']]], + ['readch_2',['readch',['../d8/d24/class_i_o.html#abd2fd0dfb704cad591e256cb8074f5b2',1,'IO']]], + ['readline_3',['readline',['../d8/d24/class_i_o.html#a9d4ca0746e40c8b8f37c1c06c3c5d411',1,'IO']]], + ['realloc_4',['realloc',['../d2/d01/class_memory.html#aa2eab9d0b939b163aa535000e0b342ef',1,'Memory']]], + ['remove_5',['remove',['../d3/da6/class_f_s.html#a56dffad802b44bcfee0fa5a571268ded',1,'FS']]], + ['request_6',['request',['../d4/d47/class_i2_c.html#adc8abfb1f98c8c43ef5cd8f1f944fcb2',1,'I2C']]], + ['rewind_7',['rewind',['../d1/d31/class_file.html#a80c6611e0e9e89f45307f7606e643cfa',1,'File']]], + ['rishka_20sdk_8',['Rishka SDK',['../index.html',1,'(Global Namespace)'],['../d5/d65/group___rishka___s_d_k.html',1,'(Global Namespace)']]], + ['rmdir_9',['rmdir',['../d3/da6/class_f_s.html#a24f4d7fe44e698f6467ce673be778de5',1,'FS']]], + ['rune_10',['rune',['../d9/d49/types_8h.html#a405b10d09d9298aac12e28a2e92c4641',1,'types.h']]], + ['runtime_11',['Runtime',['../d3/df6/class_runtime.html',1,'']]], + ['runtime_20system_20calls_12',['Runtime System Calls',['../d6/db5/rt_syscalls.html',1,'']]], + ['runtime_2eh_13',['runtime.h',['../d3/d51/runtime_8h.html',1,'']]] ]; diff --git a/docs/search/all_e.js b/docs/search/all_e.js index 5499ebf..e49effd 100644 --- a/docs/search/all_e.js +++ b/docs/search/all_e.js @@ -1,20 +1,61 @@ var searchData= [ - ['random_0',['random',['../d0/d04/class_sys.html#a3cc8c3d6432a431ea7655ddc272d2531',1,'Sys']]], - ['raw_20binaries_1',['Dumping Raw Binaries',['../index.html#autotoc_md6',1,'']]], - ['read_2',['read',['../d1/d31/class_file.html#a71de4839522ca512a4ffa01ba208c862',1,'File::read()'],['../d4/d47/class_i2_c.html#a7df78c7394b3f304235ca4e0b74dee1e',1,'I2C::read()'],['../d8/d24/class_i_o.html#a45dfb01a4ebfa134227a51f7be20d214',1,'IO::read()']]], - ['readch_3',['readch',['../d8/d24/class_i_o.html#abd2fd0dfb704cad591e256cb8074f5b2',1,'IO']]], - ['readline_4',['readline',['../d8/d24/class_i_o.html#a9d4ca0746e40c8b8f37c1c06c3c5d411',1,'IO']]], - ['realloc_5',['realloc',['../d2/d01/class_memory.html#aa2eab9d0b939b163aa535000e0b342ef',1,'Memory']]], - ['remove_6',['remove',['../d3/da6/class_f_s.html#a56dffad802b44bcfee0fa5a571268ded',1,'FS']]], - ['request_7',['request',['../d4/d47/class_i2_c.html#adc8abfb1f98c8c43ef5cd8f1f944fcb2',1,'I2C']]], - ['rewind_8',['rewind',['../d1/d31/class_file.html#a80c6611e0e9e89f45307f7606e643cfa',1,'File']]], - ['rishka_20cc_20tool_9',['Using rishka-cc tool',['../index.html#autotoc_md4',1,'']]], - ['rishka_20sdk_10',['Rishka SDK',['../d5/d65/group___rishka___s_d_k.html',1,'Rishka SDK'],['../index.html',1,'Rishka SDK']]], - ['rishka_20vm_11',['Rishka VM',['../index.html#autotoc_md2',1,'']]], - ['rmdir_12',['rmdir',['../d3/da6/class_f_s.html#a24f4d7fe44e698f6467ce673be778de5',1,'FS']]], - ['rune_13',['rune',['../d9/d49/types_8h.html#a405b10d09d9298aac12e28a2e92c4641',1,'types.h']]], - ['runtime_14',['Runtime',['../d3/df6/class_runtime.html',1,'']]], - ['runtime_20system_20calls_15',['Runtime System Calls',['../d6/db5/rt_syscalls.html',1,'']]], - ['runtime_2eh_16',['runtime.h',['../d3/d51/runtime_8h.html',1,'']]] + ['sd_5fcard_5fmmc_0',['SD_CARD_MMC',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68af6432f3859bac8d5d680c7df8401c26b',1,'sys.h']]], + ['sd_5fcard_5fnone_1',['SD_CARD_NONE',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a99bc00e783d2d7f3e784c5cd0d501663',1,'sys.h']]], + ['sd_5fcard_5fsd_2',['SD_CARD_SD',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a847b32edadf6dfe8b1240a2f1f6c18e0',1,'sys.h']]], + ['sd_5fcard_5fsdhc_3',['SD_CARD_SDHC',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a49db296c95379cff543beacb875f0ed5',1,'sys.h']]], + ['sd_5fcard_5funknown_4',['SD_CARD_UNKNOWN',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a4c8b94bf48c38a36900d6f0adf0fa027',1,'sys.h']]], + ['sdcard_5ft_5',['sdcard_t',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68',1,'sys.h']]], + ['seek_6',['seek',['../d1/d31/class_file.html#abaa31b65c2c9f41d53f9909582b83f86',1,'File']]], + ['seek_5fdir_7',['seek_dir',['../d1/d31/class_file.html#a726ebe1b8042e45f9dfd64ea9aad43e9',1,'File']]], + ['set_8',['set',['../d2/d01/class_memory.html#a7071f7c8ffebaddbc546417993ede88c',1,'Memory']]], + ['set_5fbit_5forder_9',['set_bit_order',['../d3/dfe/class_s_p_i.html#ad2ec9b7629487a2c4cde2c1cbb737677',1,'SPI']]], + ['set_5fbuffersize_10',['set_buffersize',['../d4/d47/class_i2_c.html#a22d588d4381ff381e93f395d2b3d2f9f',1,'I2C']]], + ['set_5fclock_11',['set_clock',['../d4/d47/class_i2_c.html#a67e0e3ea2b1fa1715685f91f652c5b01',1,'I2C']]], + ['set_5fclock_5fdiv_12',['set_clock_div',['../d3/dfe/class_s_p_i.html#ade35b762242af604349cc7d98d34b5b3',1,'SPI']]], + ['set_5fdata_5fmode_13',['set_data_mode',['../d3/dfe/class_s_p_i.html#a9f4bcc89c03ebc884846064198db2c2b',1,'SPI']]], + ['set_5ffrequency_14',['set_frequency',['../d3/dfe/class_s_p_i.html#a7520ff58e5a957807125dfb0745ad195',1,'SPI']]], + ['set_5fhwcs_15',['set_hwcs',['../d3/dfe/class_s_p_i.html#a41e7a6d99a54213614ef1311f84e51e9',1,'SPI']]], + ['set_5ftimeout_16',['set_timeout',['../d8/d24/class_i_o.html#ac77c1571a9789636cc913425bb235bd4',1,'IO::set_timeout()'],['../d4/d47/class_i2_c.html#adddc140b7dfff94a968b30d9496343f2',1,'I2C::set_timeout()']]], + ['shellexec_17',['shellexec',['../d0/d04/class_sys.html#a6135c737a70dc11ee6667229f8d0153a',1,'Sys']]], + ['shift_5fin_18',['shift_in',['../d1/dea/class_gpio.html#a277cdf4dac5cc5304ccc776d76cc7229',1,'Gpio']]], + ['shift_5fout_19',['shift_out',['../d1/dea/class_gpio.html#a46c2e1f0fc7e212f8e7415df769258b0',1,'Gpio']]], + ['size_20',['size',['../d1/d31/class_file.html#a2527cd9f72a210a84d2c287439bb494a',1,'File']]], + ['slave_5fwrite_21',['slave_write',['../d4/d47/class_i2_c.html#ab152c51b023ff2c4e7b5f1512d8aee48',1,'I2C']]], + ['spi_22',['SPI',['../d3/dfe/class_s_p_i.html',1,'']]], + ['spi_2eh_23',['spi.h',['../da/d87/spi_8h.html',1,'']]], + ['spi_5fmode0_24',['SPI_MODE0',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cbaacf2eef6aadb9f0de11862660cd9ade6',1,'spi.h']]], + ['spi_5fmode1_25',['SPI_MODE1',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cbabd92ab028fcac05cf2ed27b4838d1590',1,'spi.h']]], + ['spi_5fmode2_26',['SPI_MODE2',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cba2607e91fc0c8ae3334284808d7f94cf5',1,'spi.h']]], + ['spi_5fmode3_27',['SPI_MODE3',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cbad9636eac0759655110aa77dd6c22da6c',1,'spi.h']]], + ['spi_5fmode_5ft_28',['spi_mode_t',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cb',1,'spi.h']]], + ['string_29',['string',['../d9/d49/types_8h.html#a338951b7e7607b65262fb051e7804d91',1,'types.h']]], + ['sys_30',['Sys',['../d0/d04/class_sys.html',1,'']]], + ['sys_2eh_31',['sys.h',['../d9/d87/sys_8h.html',1,'']]], + ['sysinfo_5fcard_5fsize_32',['SYSINFO_CARD_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10baf28803f12ba7d5809888df74f31d5ceb',1,'sys.h']]], + ['sysinfo_5fcard_5ftype_33',['SYSINFO_CARD_TYPE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba69666cc87f50f86d8c940b935bb7b1d3',1,'sys.h']]], + ['sysinfo_5fchip_5frev_34',['SYSINFO_CHIP_REV',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba5657cc922316a16795ae9133b3dc9c8a',1,'sys.h']]], + ['sysinfo_5fchipcores_35',['SYSINFO_CHIPCORES',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10badf077b49ad8b72ea6140e312bcb3d646',1,'sys.h']]], + ['sysinfo_5fchipmodel_36',['SYSINFO_CHIPMODEL',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59a69822054d2e2920193693e91ff626f3b',1,'sys.h']]], + ['sysinfo_5fcpu_5ffreq_37',['SYSINFO_CPU_FREQ',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10bae061c78836513fe2d1d2c22d8715a833',1,'sys.h']]], + ['sysinfo_5fcycle_5fcount_38',['SYSINFO_CYCLE_COUNT',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba6fac3cd9438ab8a9451177e27cd2075d',1,'sys.h']]], + ['sysinfo_5fefuse_5fmac_39',['SYSINFO_EFUSE_MAC',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba9d502a394e1541e2eb013d26d14e8643',1,'sys.h']]], + ['sysinfo_5fflash_5fmode_40',['SYSINFO_FLASH_MODE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba63e2baf2b24e421d3b18f586178b3c21',1,'sys.h']]], + ['sysinfo_5fflash_5fspeed_41',['SYSINFO_FLASH_SPEED',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba7a1e8d8fa32776a9b3a81f1866befd93',1,'sys.h']]], + ['sysinfo_5ffree_5fheap_42',['SYSINFO_FREE_HEAP',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba29bec348ff71b3a5a08bd623778facf7',1,'sys.h']]], + ['sysinfo_5ffree_5fpsram_43',['SYSINFO_FREE_PSRAM',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba759030005f19dc9c959296a45e6a5813',1,'sys.h']]], + ['sysinfo_5fheap_5fsize_44',['SYSINFO_HEAP_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10bab83a06ddc05404fc0fd64155b710dcbd',1,'sys.h']]], + ['sysinfo_5fmax_5falloc_5fheap_45',['SYSINFO_MAX_ALLOC_HEAP',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba1e410edb810f0b62d5829a589c23b738',1,'sys.h']]], + ['sysinfo_5fmin_5ffree_5fheap_46',['SYSINFO_MIN_FREE_HEAP',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba076c84539917ff910a10a9f8615986ca',1,'sys.h']]], + ['sysinfo_5fmin_5ffree_5fpsram_47',['SYSINFO_MIN_FREE_PSRAM',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba16fc78eb4ceeeb0178e6e60a8583f956',1,'sys.h']]], + ['sysinfo_5fnum_5fsectors_48',['SYSINFO_NUM_SECTORS',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba53cfa9753213ed739ac9cedc69b830ce',1,'sys.h']]], + ['sysinfo_5fpsram_5fsize_49',['SYSINFO_PSRAM_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba97ab4fb86a66cfa417e7fdaf6edf1969',1,'sys.h']]], + ['sysinfo_5fsdk_5fversion_50',['SYSINFO_SDK_VERSION',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59af968d48196de0dbdd3710a14d3084fad',1,'sys.h']]], + ['sysinfo_5fsector_5fsize_51',['SYSINFO_SECTOR_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba964997c4d1adfeef3fad2c8b39481577',1,'sys.h']]], + ['sysinfo_5fsketch_5fmd5_52',['SYSINFO_SKETCH_MD5',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59a21f0511aa14dd5c93038d5cebb9fb346',1,'sys.h']]], + ['sysinfo_5ftemp_5fval_53',['SYSINFO_TEMP_VAL',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba6beb572a3a60865e1d7c8bda2e57d954',1,'sys.h']]], + ['sysinfo_5ftotal_5fstorage_54',['SYSINFO_TOTAL_STORAGE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba4facfe6fadaafc0b573a75f98836697e',1,'sys.h']]], + ['sysinfo_5fused_5fstorage_55',['SYSINFO_USED_STORAGE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba1f657fe1becd20e68b837bb455ab4870',1,'sys.h']]], + ['sysinfon_5ft_56',['sysinfon_t',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10b',1,'sys.h']]], + ['sysinfos_5ft_57',['sysinfos_t',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59',1,'sys.h']]] ]; diff --git a/docs/search/all_f.js b/docs/search/all_f.js index 28512d5..6569e4f 100644 --- a/docs/search/all_f.js +++ b/docs/search/all_f.js @@ -1,63 +1,11 @@ var searchData= [ - ['sd_5fcard_5fmmc_0',['SD_CARD_MMC',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68af6432f3859bac8d5d680c7df8401c26b',1,'sys.h']]], - ['sd_5fcard_5fnone_1',['SD_CARD_NONE',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a99bc00e783d2d7f3e784c5cd0d501663',1,'sys.h']]], - ['sd_5fcard_5fsd_2',['SD_CARD_SD',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a847b32edadf6dfe8b1240a2f1f6c18e0',1,'sys.h']]], - ['sd_5fcard_5fsdhc_3',['SD_CARD_SDHC',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a49db296c95379cff543beacb875f0ed5',1,'sys.h']]], - ['sd_5fcard_5funknown_4',['SD_CARD_UNKNOWN',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68a4c8b94bf48c38a36900d6f0adf0fa027',1,'sys.h']]], - ['sdcard_5ft_5',['sdcard_t',['../d9/d87/sys_8h.html#ab141029b44d535a6f942e3be47e0bc68',1,'sys.h']]], - ['sdk_6',['SDK',['../d5/d65/group___rishka___s_d_k.html',1,'Rishka SDK'],['../index.html',1,'Rishka SDK']]], - ['seek_7',['seek',['../d1/d31/class_file.html#abaa31b65c2c9f41d53f9909582b83f86',1,'File']]], - ['seek_5fdir_8',['seek_dir',['../d1/d31/class_file.html#a726ebe1b8042e45f9dfd64ea9aad43e9',1,'File']]], - ['set_9',['set',['../d2/d01/class_memory.html#a7071f7c8ffebaddbc546417993ede88c',1,'Memory']]], - ['set_5fbit_5forder_10',['set_bit_order',['../d3/dfe/class_s_p_i.html#ad2ec9b7629487a2c4cde2c1cbb737677',1,'SPI']]], - ['set_5fbuffersize_11',['set_buffersize',['../d4/d47/class_i2_c.html#a22d588d4381ff381e93f395d2b3d2f9f',1,'I2C']]], - ['set_5fclock_12',['set_clock',['../d4/d47/class_i2_c.html#a67e0e3ea2b1fa1715685f91f652c5b01',1,'I2C']]], - ['set_5fclock_5fdiv_13',['set_clock_div',['../d3/dfe/class_s_p_i.html#ade35b762242af604349cc7d98d34b5b3',1,'SPI']]], - ['set_5fdata_5fmode_14',['set_data_mode',['../d3/dfe/class_s_p_i.html#a9f4bcc89c03ebc884846064198db2c2b',1,'SPI']]], - ['set_5ffrequency_15',['set_frequency',['../d3/dfe/class_s_p_i.html#a7520ff58e5a957807125dfb0745ad195',1,'SPI']]], - ['set_5fhwcs_16',['set_hwcs',['../d3/dfe/class_s_p_i.html#a41e7a6d99a54213614ef1311f84e51e9',1,'SPI']]], - ['set_5ftimeout_17',['set_timeout',['../d4/d47/class_i2_c.html#adddc140b7dfff94a968b30d9496343f2',1,'I2C::set_timeout()'],['../d8/d24/class_i_o.html#ac77c1571a9789636cc913425bb235bd4',1,'IO::set_timeout()']]], - ['shellexec_18',['shellexec',['../d0/d04/class_sys.html#a6135c737a70dc11ee6667229f8d0153a',1,'Sys']]], - ['shift_5fin_19',['shift_in',['../d1/dea/class_gpio.html#a277cdf4dac5cc5304ccc776d76cc7229',1,'Gpio']]], - ['shift_5fout_20',['shift_out',['../d1/dea/class_gpio.html#a46c2e1f0fc7e212f8e7415df769258b0',1,'Gpio']]], - ['size_21',['size',['../d1/d31/class_file.html#a2527cd9f72a210a84d2c287439bb494a',1,'File']]], - ['slave_5fwrite_22',['slave_write',['../d4/d47/class_i2_c.html#ab152c51b023ff2c4e7b5f1512d8aee48',1,'I2C']]], - ['spi_23',['SPI',['../d3/dfe/class_s_p_i.html',1,'']]], - ['spi_2eh_24',['spi.h',['../da/d87/spi_8h.html',1,'']]], - ['spi_5fmode0_25',['SPI_MODE0',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cbaacf2eef6aadb9f0de11862660cd9ade6',1,'spi.h']]], - ['spi_5fmode1_26',['SPI_MODE1',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cbabd92ab028fcac05cf2ed27b4838d1590',1,'spi.h']]], - ['spi_5fmode2_27',['SPI_MODE2',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cba2607e91fc0c8ae3334284808d7f94cf5',1,'spi.h']]], - ['spi_5fmode3_28',['SPI_MODE3',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cbad9636eac0759655110aa77dd6c22da6c',1,'spi.h']]], - ['spi_5fmode_5ft_29',['spi_mode_t',['../da/d87/spi_8h.html#ac4b206a51636d91c5cffcbcee458c3cb',1,'spi.h']]], - ['string_30',['string',['../d9/d49/types_8h.html#a338951b7e7607b65262fb051e7804d91',1,'types.h']]], - ['sys_31',['Sys',['../d0/d04/class_sys.html',1,'']]], - ['sys_2eh_32',['sys.h',['../d9/d87/sys_8h.html',1,'']]], - ['sysinfo_5fcard_5fsize_33',['SYSINFO_CARD_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10baf28803f12ba7d5809888df74f31d5ceb',1,'sys.h']]], - ['sysinfo_5fcard_5ftype_34',['SYSINFO_CARD_TYPE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba69666cc87f50f86d8c940b935bb7b1d3',1,'sys.h']]], - ['sysinfo_5fchip_5frev_35',['SYSINFO_CHIP_REV',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba5657cc922316a16795ae9133b3dc9c8a',1,'sys.h']]], - ['sysinfo_5fchipcores_36',['SYSINFO_CHIPCORES',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10badf077b49ad8b72ea6140e312bcb3d646',1,'sys.h']]], - ['sysinfo_5fchipmodel_37',['SYSINFO_CHIPMODEL',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59a69822054d2e2920193693e91ff626f3b',1,'sys.h']]], - ['sysinfo_5fcpu_5ffreq_38',['SYSINFO_CPU_FREQ',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10bae061c78836513fe2d1d2c22d8715a833',1,'sys.h']]], - ['sysinfo_5fcycle_5fcount_39',['SYSINFO_CYCLE_COUNT',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba6fac3cd9438ab8a9451177e27cd2075d',1,'sys.h']]], - ['sysinfo_5fefuse_5fmac_40',['SYSINFO_EFUSE_MAC',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba9d502a394e1541e2eb013d26d14e8643',1,'sys.h']]], - ['sysinfo_5fflash_5fmode_41',['SYSINFO_FLASH_MODE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba63e2baf2b24e421d3b18f586178b3c21',1,'sys.h']]], - ['sysinfo_5fflash_5fspeed_42',['SYSINFO_FLASH_SPEED',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba7a1e8d8fa32776a9b3a81f1866befd93',1,'sys.h']]], - ['sysinfo_5ffree_5fheap_43',['SYSINFO_FREE_HEAP',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba29bec348ff71b3a5a08bd623778facf7',1,'sys.h']]], - ['sysinfo_5ffree_5fpsram_44',['SYSINFO_FREE_PSRAM',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba759030005f19dc9c959296a45e6a5813',1,'sys.h']]], - ['sysinfo_5fheap_5fsize_45',['SYSINFO_HEAP_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10bab83a06ddc05404fc0fd64155b710dcbd',1,'sys.h']]], - ['sysinfo_5fmax_5falloc_5fheap_46',['SYSINFO_MAX_ALLOC_HEAP',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba1e410edb810f0b62d5829a589c23b738',1,'sys.h']]], - ['sysinfo_5fmin_5ffree_5fheap_47',['SYSINFO_MIN_FREE_HEAP',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba076c84539917ff910a10a9f8615986ca',1,'sys.h']]], - ['sysinfo_5fmin_5ffree_5fpsram_48',['SYSINFO_MIN_FREE_PSRAM',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba16fc78eb4ceeeb0178e6e60a8583f956',1,'sys.h']]], - ['sysinfo_5fnum_5fsectors_49',['SYSINFO_NUM_SECTORS',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba53cfa9753213ed739ac9cedc69b830ce',1,'sys.h']]], - ['sysinfo_5fpsram_5fsize_50',['SYSINFO_PSRAM_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba97ab4fb86a66cfa417e7fdaf6edf1969',1,'sys.h']]], - ['sysinfo_5fsdk_5fversion_51',['SYSINFO_SDK_VERSION',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59af968d48196de0dbdd3710a14d3084fad',1,'sys.h']]], - ['sysinfo_5fsector_5fsize_52',['SYSINFO_SECTOR_SIZE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba964997c4d1adfeef3fad2c8b39481577',1,'sys.h']]], - ['sysinfo_5fsketch_5fmd5_53',['SYSINFO_SKETCH_MD5',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59a21f0511aa14dd5c93038d5cebb9fb346',1,'sys.h']]], - ['sysinfo_5ftemp_5fval_54',['SYSINFO_TEMP_VAL',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba6beb572a3a60865e1d7c8bda2e57d954',1,'sys.h']]], - ['sysinfo_5ftotal_5fstorage_55',['SYSINFO_TOTAL_STORAGE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba4facfe6fadaafc0b573a75f98836697e',1,'sys.h']]], - ['sysinfo_5fused_5fstorage_56',['SYSINFO_USED_STORAGE',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10ba1f657fe1becd20e68b837bb455ab4870',1,'sys.h']]], - ['sysinfon_5ft_57',['sysinfon_t',['../d9/d87/sys_8h.html#a4a8640ae0f6132db18ae385f6db1b10b',1,'sys.h']]], - ['sysinfos_5ft_58',['sysinfos_t',['../d9/d87/sys_8h.html#a67c094132a933dd7d7a79054800fce59',1,'sys.h']]], - ['system_20calls_59',['System Calls',['../d6/db5/rt_syscalls.html#autotoc_md10',1,'Complete List of System Calls'],['../d6/db5/rt_syscalls.html',1,'Runtime System Calls']]] + ['tone_0',['tone',['../d1/dea/class_gpio.html#afb20af73d4a9f27fc55027f950693ab5',1,'Gpio']]], + ['transfer16_1',['transfer16',['../d3/dfe/class_s_p_i.html#a747d3de0d24155afeff9071b57fca47a',1,'SPI']]], + ['transfer32_2',['transfer32',['../d3/dfe/class_s_p_i.html#a7941fffa96ff21e0c047d0b8b3335b97',1,'SPI']]], + ['transfer8_3',['transfer8',['../d3/dfe/class_s_p_i.html#aeca87cf870578ed6639122474228c749',1,'SPI']]], + ['transfer_5fbits_4',['transfer_bits',['../d3/dfe/class_s_p_i.html#af9f279f68f6fa78ff5c5748eef25a8e0',1,'SPI']]], + ['transfer_5fbytes_5',['transfer_bytes',['../d3/dfe/class_s_p_i.html#a9a95bf4840cb3ca3caf5e0d4aa01f6c5',1,'SPI']]], + ['true_6',['true',['../d9/d49/types_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7',1,'types.h']]], + ['types_2eh_7',['types.h',['../d9/d49/types_8h.html',1,'']]] ]; diff --git a/docs/search/pages_0.js b/docs/search/pages_0.js index 2c8d961..9b2c92b 100644 --- a/docs/search/pages_0.js +++ b/docs/search/pages_0.js @@ -1,4 +1,5 @@ var searchData= [ - ['calls_0',['Runtime System Calls',['../d6/db5/rt_syscalls.html',1,'']]] + ['rishka_20sdk_0',['Rishka SDK',['../index.html',1,'']]], + ['runtime_20system_20calls_1',['Runtime System Calls',['../d6/db5/rt_syscalls.html',1,'']]] ]; diff --git a/docs/search/search.js b/docs/search/search.js index 666af01..9b7a52a 100644 --- a/docs/search/search.js +++ b/docs/search/search.js @@ -22,9 +22,58 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -const SEARCH_COOKIE_NAME = ''+'search_grp'; +function convertToId(search) +{ + var result = ''; + for (i=0;i document.getElementById("MSearchField"); - this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); - this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); - this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); - this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); - this.DOMSearchClose = () => document.getElementById("MSearchClose"); - this.DOMSearchBox = () => document.getElementById("MSearchBox"); + this.DOMSearchField = function() + { return document.getElementById("MSearchField"); } + + this.DOMSearchSelect = function() + { return document.getElementById("MSearchSelect"); } + + this.DOMSearchSelectWindow = function() + { return document.getElementById("MSearchSelectWindow"); } + + this.DOMPopupSearchResults = function() + { return document.getElementById("MSearchResults"); } + + this.DOMPopupSearchResultsWindow = function() + { return document.getElementById("MSearchResultsWindow"); } + + this.DOMSearchClose = function() + { return document.getElementById("MSearchClose"); } + + this.DOMSearchBox = function() + { return document.getElementById("MSearchBox"); } // ------------ Event Handlers // Called when focus is added or removed from the search field. - this.OnSearchFieldFocus = function(isActive) { + this.OnSearchFieldFocus = function(isActive) + { this.Activate(isActive); } - this.OnSearchSelectShow = function() { - const searchSelectWindow = this.DOMSearchSelectWindow(); - const searchField = this.DOMSearchSelect(); + this.OnSearchSelectShow = function() + { + var searchSelectWindow = this.DOMSearchSelectWindow(); + var searchField = this.DOMSearchSelect(); - const left = getXPos(searchField); - const top = getYPos(searchField) + searchField.offsetHeight; + var left = getXPos(searchField); + var top = getYPos(searchField); + top += searchField.offsetHeight; // show search selection popup searchSelectWindow.style.display='block'; @@ -102,44 +146,55 @@ function SearchBox(name, resultsPath, extension) { searchSelectWindow.style.top = top + 'px'; // stop selection hide timer - if (this.hideTimeout) { + if (this.hideTimeout) + { clearTimeout(this.hideTimeout); this.hideTimeout=0; } return false; // to avoid "image drag" default event } - this.OnSearchSelectHide = function() { + this.OnSearchSelectHide = function() + { this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), this.closeSelectionTimeout); } // Called when the content of the search field is changed. - this.OnSearchFieldChange = function(evt) { - if (this.keyTimeout) { // kill running timer + this.OnSearchFieldChange = function(evt) + { + if (this.keyTimeout) // kill running timer + { clearTimeout(this.keyTimeout); this.keyTimeout = 0; } - const e = evt ? evt : window.event; // for IE - if (e.keyCode==40 || e.keyCode==13) { - if (e.shiftKey==1) { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) + { + if (e.shiftKey==1) + { this.OnSearchSelectShow(); - const win=this.DOMSearchSelectWindow(); - for (let i=0;i do a search + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + if (searchValue!="" && this.searchActive) // something was found -> do a search + { this.Search(); } } - this.OnSearchSelectKey = function(evt) { - const e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) { // Up + } + else if (e.keyCode==38 && this.searchIndex>0) // Up + { this.searchIndex--; this.OnSelectItem(this.searchIndex); - } else if (e.keyCode==13 || e.keyCode==27) { - e.stopPropagation(); + } + else if (e.keyCode==13 || e.keyCode==27) + { this.OnSelectItem(this.searchIndex); this.CloseSelectionWindow(); this.DOMSearchField().focus(); @@ -239,75 +299,82 @@ function SearchBox(name, resultsPath, extension) { // --------- Actions // Closes the results window. - this.CloseResultsWindow = function() { + this.CloseResultsWindow = function() + { this.DOMPopupSearchResultsWindow().style.display = 'none'; this.DOMSearchClose().style.display = 'none'; this.Activate(false); } - this.CloseSelectionWindow = function() { + this.CloseSelectionWindow = function() + { this.DOMSearchSelectWindow().style.display = 'none'; } // Performs a search. - this.Search = function() { + this.Search = function() + { this.keyTimeout = 0; // strip leading whitespace - const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - const code = searchValue.toLowerCase().charCodeAt(0); - let idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { idxChar = searchValue.substr(0, 2); } - let jsFile; - let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) { - const hexCode=idx.toString(16); - jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; } - const loadJS = function(url, impl, loc) { - const scriptTag = document.createElement('script'); + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); scriptTag.src = url; scriptTag.onload = impl; scriptTag.onreadystatechange = impl; loc.appendChild(scriptTag); } - const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - const domSearchBox = this.DOMSearchBox(); - const domPopupSearchResults = this.DOMPopupSearchResults(); - const domSearchClose = this.DOMSearchClose(); - const resultsPath = this.resultsPath; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; - const handleResults = function() { + var handleResults = function() { document.getElementById("Loading").style.display="none"; if (typeof searchData !== 'undefined') { createResults(resultsPath); document.getElementById("NoMatches").style.display="none"; } - + if (idx!=-1) { searchResults.Search(searchValue); } else { // no file with search results => force empty search results searchResults.Search('===='); } - if (domPopupSearchResultsWindow.style.display!='block') { + if (domPopupSearchResultsWindow.style.display!='block') + { domSearchClose.style.display = 'inline-block'; - let left = getXPos(domSearchBox) + 150; - let top = getYPos(domSearchBox) + 20; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; domPopupSearchResultsWindow.style.display = 'block'; left -= domPopupSearchResults.offsetWidth; - const maxWidth = document.body.clientWidth; - const maxHeight = document.body.clientHeight; - let width = 300; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; if (left<10) left=10; if (width+left+8>maxWidth) width=maxWidth-left-8; - let height = 400; + var height = 400; if (height+top+8>maxHeight) height=maxHeight-top-8; domPopupSearchResultsWindow.style.top = top + 'px'; domPopupSearchResultsWindow.style.left = left + 'px'; @@ -329,13 +396,17 @@ function SearchBox(name, resultsPath, extension) { // Activates or deactivates the search panel, resetting things to // their default values if necessary. - this.Activate = function(isActive) { + this.Activate = function(isActive) + { if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) { + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { this.DOMSearchBox().className = 'MSearchBoxActive'; this.searchActive = true; - } else if (!isActive) { // directly remove the panel + } + else if (!isActive) // directly remove the panel + { this.DOMSearchBox().className = 'MSearchBoxInactive'; this.searchActive = false; this.lastSearchValue = '' @@ -348,347 +419,402 @@ function SearchBox(name, resultsPath, extension) { // ----------------------------------------------------------------------- // The class that handles everything on the search results page. -function SearchResults() { - - function convertToId(search) { - let result = ''; - for (let i=0;i. - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) { - const parentElement = document.getElementById(id); - let element = parentElement.firstChild; + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); - while (element && element!=parentElement) { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { - return element; + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } } + } - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { - element = element.firstChild; - } else if (element.nextSibling) { - element = element.nextSibling; - } else { - do { - element = element.parentNode; + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) { - element = element.nextSibling; + else + { + element.style.display = 'block'; } } } - } - this.Toggle = function(id) { - const element = this.FindChildElement(id); - if (element) { - if (element.style.display == 'block') { - element.style.display = 'none'; - } else { - element.style.display = 'block'; + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); } - } - } - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) { - if (!search) { // get search word from URL - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - const resultRows = document.getElementsByTagName("div"); - let matches = 0; - - let i = 0; - while (i < resultRows.length) { - const row = resultRows.item(i); - if (row.className == "SRResult") { - let rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) { - row.style.display = 'block'; - matches++; - } else { - row.style.display = 'none'; + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } } + i++; } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) { // no results - document.getElementById("NoMatches").style.display='block'; - } else { // at least one result - document.getElementById("NoMatches").style.display='none'; + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; } - this.lastMatchCount = matches; - return true; - } - // return the first item with index index or higher that is visible - this.NavNext = function(index) { - let focusItem; - for (;;) { - const focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { - break; - } else if (!focusItem) { // last element - break; - } - focusItem=null; - index++; - } - return focusItem; - } + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } - this.NavPrev = function(index) { - let focusItem; - for (;;) { - const focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { - break; - } else if (!focusItem) { // last element - break; + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; } - focusItem=null; - index--; + return focusItem; } - return focusItem; - } - this.ProcessKeys = function(e) { - if (e.type == "keydown") { - this.repeatOn = false; - this.lastKey = e.keyCode; - } else if (e.type == "keypress") { - if (!this.repeatOn) { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } } - } else if (e.type == "keyup") { - this.lastKey = 0; - this.repeatOn = false; + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; } - return this.lastKey!=0; - } - this.Nav = function(evt,itemIndex) { - const e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) { // Up - const newIndex = itemIndex-1; - let focusItem = this.NavPrev(newIndex); - if (focusItem) { - let child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') { // children visible - let n=0; - let tmpElem; - for (;;) { // search for last child - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) { - focusItem = tmpElem; - } else { // found it! - break; + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; } - n++; } } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); } - if (focusItem) { - focusItem.focus(); - } else { // return focus to search field + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); document.getElementById("MSearchField").focus(); } - } else if (this.lastKey==40) { // Down - const newIndex = itemIndex+1; - let focusItem; - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') { // children visible - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } else if (this.lastKey==39) { // Right - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } else if (this.lastKey==37) { // Left - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } else if (this.lastKey==27) { // Escape - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } else if (this.lastKey==13) { // Enter - return true; + else if (this.lastKey==13) // Enter + { + return true; + } + return false; } - return false; - } - this.NavChild = function(evt,itemIndex,childIndex) { - const e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) { // Up - if (childIndex>0) { - const newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } else { // already at first child, jump to parent - document.getElementById('Item'+itemIndex).focus(); - } - } else if (this.lastKey==40) { // Down - const newIndex = childIndex+1; - let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) { // last child, jump to parent next parent - elem = this.NavNext(itemIndex+1); - } - if (elem) { - elem.focus(); - } - } else if (this.lastKey==27) { // Escape - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } else if (this.lastKey==13) { // Enter - return true; + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; } - return false; - } } -function createResults(resultsPath) { - - function setKeyActions(elem,action) { - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); - } +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} - function setClassAttr(elem,attr) { - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); - } +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} - const results = document.getElementById("SRResults"); +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); results.innerHTML = ''; - searchData.forEach((elem,index) => { - const id = elem[0]; - const srResult = document.createElement('div'); + for (var e=0; eli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/misc/main_page.md b/misc/main_page.md index c78655a..b75790d 100644 --- a/misc/main_page.md +++ b/misc/main_page.md @@ -116,33 +116,59 @@ qrepo run dump This example demonstrates the usage of Rishka virtual machine on an ESP32-WROVER microcontroller. It initializes serial communication and SD card, waits for user input via serial port, loads the specified file into the Rishka VM, executes it, and then waits for the next input. ```cpp +#include #include +#include +#include +#define TFT_SCK 18 // TFT SPI clock pin +#define TFT_MOSI 23 // TFT SPI MOSI pin +#define TFT_DC 2 // TFT data/command pin +#define TFT_RESET 4 // TFT reset pin +#define TFT_SPIBUS VSPI_HOST // TFT SPI bus + +#define SD_CS 15 // SD card chip select pin +#define SD_SCK 14 // SD card SPI clock pin +#define SD_MOSI 13 // SD card SPI MOSI pin +#define SD_MISO 12 // SD card SPI MISO pin + +// TFT display controller and Terminal instance +fabgl::ILI9341Controller DisplayController; +fabgl::Terminal Terminal; + +// Rishka virtual machine instance rishka_virtual_machine vm; +// SPI instance for SD card +SPIClass sdSpi(HSPI); void setup() { - // Begin serial communication at 115200 baud rate Serial.begin(115200); - // Wait until serial connection is established - while(!Serial); - // Initialize SD card on pin 5 - if(!SD.begin(5)) { - // If SD card initialization fails, - // print error message and halt execution - Serial.println("Failed to initialize SD card."); - while(true); + // Initialize TFT display + DisplayController.begin(TFT_SCK, TFT_MOSI, TFT_DC, TFT_RESET, 5, TFT_SPIBUS); + DisplayController.setResolution("\"TFT_320x240\" 320 240"); + + // Initialize terminal + Terminal.begin(&DisplayController); + Terminal.loadFont(&fabgl::FONT_8x14); + Terminal.enableCursor(true); + + // Initialize SD card + sdSpi.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS); + if(!SD.begin(SD_CS, sdSpi, 80000000)) { + Terminal.println("Card \e[94mMount\e[97m Failed"); + return; } if(!psramInit()) { // If PSRAM initialization fails, // print error message and halt execution - Serial.println("Cannot initialize PSRAM."); + Serial.println("\e[94mCannot\e[97m initialize PSRAM."); while(true); } // Print prompt - Serial.print("> "); + Terminal.print("\e[32m#~\e[97m "); } void loop() { @@ -153,16 +179,18 @@ void loop() { // Read input from serial port String input = Serial.readString(); // Echo input back to serial port - Serial.print(input); + Terminal.print("\e[93m"); + Terminal.print(input); + Terminal.print("\r\e[97m"); // Initialize Rishka virtual machine - rishka_vm_initialize(&vm, &Serial); + rishka_vm_initialize(&vm, &Terminal); // Attempt to load specified file into Rishka virtual machine if(!rishka_vm_loadfile(&vm, input.c_str())) { // If loading file fails, print error message and return - Serial.print("Failed to load specified file: " + input); - Serial.print("> "); + Terminal.print("Failed to \e[94mload\e[97m specified file: " + input); + Terminal.print("\r\e[32m#~\e[97m "); return; } @@ -172,7 +200,7 @@ void loop() { rishka_vm_reset(&vm); // Print prompt for next input - Serial.print("> "); + Terminal.print("\e[32m#~\e[97m "); } ```