mirror of
				https://github.com/s00500/ESPUI.git
				synced 2025-11-03 23:03:23 +00:00 
			
		
		
		
	Added a client transfer context for use by the control marshaling function
This commit is contained in:
		@@ -307,7 +307,7 @@ uint32_t ESPUIclient::prepareJSONChunk(uint16_t startindex,
 | 
			
		||||
 | 
			
		||||
            JsonObject item = items.createNestedObject();
 | 
			
		||||
            elementcount++;
 | 
			
		||||
            control->MarshalControl(item, InUpdateMode);
 | 
			
		||||
            control->MarshalControl(item, InUpdateMode, ClientTransferContext);
 | 
			
		||||
            
 | 
			
		||||
            if (rootDoc.overflowed())
 | 
			
		||||
            {
 | 
			
		||||
@@ -315,6 +315,7 @@ uint32_t ESPUIclient::prepareJSONChunk(uint16_t startindex,
 | 
			
		||||
                if (1 == elementcount)
 | 
			
		||||
                {
 | 
			
		||||
                    Serial.println(String(F("ERROR: prepareJSONChunk: Control ")) + String(control->id) + F(" is too large to be sent to the browser."));
 | 
			
		||||
                    // Serial.println(String(F("ERROR: prepareJSONChunk: value: ")) + control->value);
 | 
			
		||||
                    rootDoc.clear();
 | 
			
		||||
                    item = items.createNestedObject();
 | 
			
		||||
                    control->MarshalErrorMessage(item);
 | 
			
		||||
@@ -330,7 +331,6 @@ uint32_t ESPUIclient::prepareJSONChunk(uint16_t startindex,
 | 
			
		||||
                }
 | 
			
		||||
                // exit the loop
 | 
			
		||||
                control = nullptr;
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,12 @@ public:
 | 
			
		||||
        ReloadNeeded    = 3,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    struct ClientTransferContext_t
 | 
			
		||||
    {
 | 
			
		||||
        void       *control = nullptr;
 | 
			
		||||
        uint16_t    Offset = 0;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    // bool HasBeenNotified      = false;  // Set when a notification has been sent and we are waiting for a reply
 | 
			
		||||
    // bool DelayedNotification  = false;  // set if a delayed notification is needed
 | 
			
		||||
@@ -39,6 +45,7 @@ protected:
 | 
			
		||||
    fsm_EspuiClient_state* pCurrentFsmState = &fsm_EspuiClient_state_Idle_imp;
 | 
			
		||||
 | 
			
		||||
    time_t      EspuiClientEndTime = 0;
 | 
			
		||||
    ClientTransferContext_t ClientTransferContext;
 | 
			
		||||
    
 | 
			
		||||
    // bool        NeedsNotification() { return pCurrentFsmState != &fsm_EspuiClient_state_Idle_imp; }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user