2026-03-18 12:10:30 -05:00
//+------------------------------------------------------------------+
2026-03-17 16:38:37 -05:00
//| Reciber.mqh |
//| Copyright 2025, Niquel Mendoza. |
//| https://www.mql5.com/es/users/nique_372 |
//+------------------------------------------------------------------+
# property copyright " Copyright 2025, Niquel Mendoza. "
# property link " https://www.mql5.com/es/users/nique_372 "
# property strict
# ifndef AIDATATASKRUNNER_BACKEND_TLGM_RECIBER_MQH
# define AIDATATASKRUNNER_BACKEND_TLGM_RECIBER_MQH
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-18 12:10:30 -05:00
//--- Tools especficas para la app (todas async)
# include "Tools\\Tools.mqh"
//--- Defines del procolo de comunicaicon
# include "Protocol\\Def.mqh"
// CChatTelegramBase
class CChatTelegramBaseFully : public CChatTelegramBase
{
private :
2026-03-18 12:55:47 -05:00
void SendMessageToTlg ( const string & res , const string & tool_name , const string & tool_id ) ;
2026-03-18 12:10:30 -05:00
void OnBeforeSetTools ( CLLmToolsManager * manager ) override final ;
public :
2026-03-18 12:43:15 -05:00
CChatTelegramBaseFully ( const string & sys_promt ) : CChatTelegramBase ( sys_promt ) { }
~ CChatTelegramBaseFully ( void ) { }
2026-03-18 12:10:30 -05:00
//---
void ChartEvent ( const int32_t id , const long & lparam , const double & dparam , const string & sparam ) ;
} ;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-18 12:55:47 -05:00
void CChatTelegramBaseFully : : SendMessageToTlg ( const string & res , const string & tool_name , const string & tool_id )
2026-03-18 12:10:30 -05:00
{
2026-03-18 12:55:47 -05:00
SendMessage ( StringFormat ( " <b>AiDataTaskRunner</b> \n <code>[Tool: %s][Tool id: %s]</code>: %s " ,
tool_name , tool_id , res ) , NULL , TELEGRAM_PARSE_MODE_HTML ) ;
2026-03-18 12:10:30 -05:00
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CChatTelegramBaseFully : : OnBeforeSetTools ( CLLmToolsManager * manager )
{
manager . AddItemFast ( new CAiTaskRunnerToolAddTask ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolSaveTasksToFile ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolLoadTasksFromFile ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolGetTaskTotal ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolGetTaskByIndex ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolCleanAllTasks ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolExecuteAllTasks ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolLoadConfig ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolSaveConfig ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolGetMainFolder ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolGetTaskFolder ( m_chart_id_padre , m_key ) ) ;
manager . AddItemFast ( new CAiTaskRunnerToolIsInCommonFolder ( m_chart_id_padre , m_key ) ) ;
}
2026-03-17 16:38:37 -05:00
2026-03-18 12:10:30 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CChatTelegramBaseFully : : ChartEvent ( const int32_t id , const long & lparam , const double & dparam , const string & sparam )
{
//---
//dparam = key
//soaram = valor
//lparam = parametro
if ( id = = CHARTEVENT_CUSTOM + CHATELGRAM_E_ON_CHANGE_PARAM & & fabs ( dparam - m_key ) < 0.10 )
{
if ( lparam < = TLG_RECIBER_BASE_MAX_LPARAM )
{
CChatTelegramBase : : ChartEvent ( id , lparam , dparam , sparam ) ;
2026-03-18 13:28:52 -05:00
return ;
2026-03-18 12:10:30 -05:00
}
2026-03-18 13:28:52 -05:00
2026-03-18 12:10:30 -05:00
//---
const int8_t event_id = int8_t ( lparam - TLG_RECIBER_BASE_MAX_LPARAM ) - 1 ;
2026-03-18 13:28:52 -05:00
2026-03-18 12:10:30 -05:00
//---
static string id_tool , val ;
if ( ! TlgLlmProtocolDesempaquetar ( sparam , id_tool , val ) )
{
2026-03-18 13:28:52 -05:00
FastLog ( FUNCION_ACTUAL , FATAL_ERROR_TEXT , StringFormat ( " Formato invalido de empauqetacion de telegram [lparam=%I64d], mensaje recibido por UI Panel: \n %s " ,
lparam , sparam ) ) ;
2026-03-18 12:10:30 -05:00
return ;
}
2026-03-18 13:28:52 -05:00
else
{
FastLog ( FUNCION_ACTUAL , WARNING_TEXT , StringFormat ( " lparm=%I64d|sparam='%s' " , lparam , sparam ) ) ;
}
2026-03-18 12:10:30 -05:00
//---
2026-03-18 12:55:47 -05:00
SendMessageToTlg ( val , g_aidatatask_runner_tools_tlg_names [ event_id ] , id_tool ) ;
2026-03-18 12:10:30 -05:00
}
}
# endif // AIDATATASKRUNNER_BACKEND_TLGM_SENDER_MQH
//+------------------------------------------------------------------+