logicanalyzer

24 channel, 100Msps logic analyzer hardware and software


#ifndef __ANALYZER_STRUCTS__
    #define __ANALYZER_STRUCTS__

    #include "LogicAnalyzer_Build_Settings.h"
    #include "pico/stdlib.h"


    //Capture request issued by the host computer
    typedef struct _CAPTURE_REQUEST
    {
        //Indicates tthe trigger type: 0 = edge, 1 = pattern (complex), 2 = pattern (fast)
        uint8_t triggerType;
        //Trigger channel (or base channel for pattern trigger)
        uint8_t trigger;
        
        //Union of the trigger characteristics (inverted or pin count)
        union
        {
            uint8_t inverted;
            uint8_t count;
        };

        //Trigger value of the pattern trigger
        uint16_t triggerValue;
        //Channels to capture
        uint8_t channels[24];
        //Channel count
        uint8_t channelCount;
        //Sampling frequency
        uint32_t frequency;
        //Number of samples stored before the trigger
        uint32_t preSamples;
        //Number of samples stored after the trigger
        uint32_t postSamples;
        //Capture mode (0 = 8 channel, 1 = 16 channel, 2 = 24 channel)
        uint8_t captureMode;

    }CAPTURE_REQUEST;

    #ifdef USE_CYGW_WIFI

        typedef struct _WIFI_SETTINGS
        {
            char apName[33];
            char passwd[64];
            char ipAddress[16];
            uint16_t port;
            uint16_t checksum;

        } WIFI_SETTINGS;

        typedef struct _WIFI_SETTINGS_REQUEST
        {
            char apName[33];
            char passwd[64];
            char ipAddress[16];
            uint16_t port;

        } WIFI_SETTINGS_REQUEST;

        typedef enum
        {
            CYW_READY,
            CONNECTED,
            DISCONNECTED,
            DATA_RECEIVED

        } WIFI_EVENT;

        typedef enum
        {
            LED_ON,
            LED_OFF,
            CONFIG_RECEIVED,
            SEND_DATA

        } FRONTEND_EVENT;

        typedef struct _EVENT_FROM_WIFI
        {
            WIFI_EVENT event;
            char data[128];
            uint8_t dataLength;

        } EVENT_FROM_WIFI;

        typedef struct _EVENT_FROM_FRONTEND
        {
            FRONTEND_EVENT event;
            char data[32];
            uint8_t dataLength;

        } EVENT_FROM_FRONTEND;

    #endif

#endif