//+------------------------------------------------------------------+ //| 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 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ //--- 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: void SendMessageToTlg(const string& res, const string& tool_name, const string& tool_id); void OnBeforeSetTools(CLLmToolsManager* manager) override final; public: CChatTelegramBaseFully(const string& sys_promt) : CChatTelegramBase(sys_promt) {} ~CChatTelegramBaseFully(void) {} //--- void ChartEvent(const int32_t id, const long& lparam, const double& dparam, const string& sparam); }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CChatTelegramBaseFully::SendMessageToTlg(const string &res, const string& tool_name, const string& tool_id) { SendMessage(StringFormat("AiDataTaskRunner\n[Tool: %s][Tool id: %s]: %s", tool_name, tool_id, res), NULL, TELEGRAM_PARSE_MODE_HTML); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ 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)); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ 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); return; } //--- const int8_t event_id = int8_t(lparam - TLG_RECIBER_BASE_MAX_LPARAM) - 1; //--- static string id_tool, val; if(!TlgLlmProtocolDesempaquetar(sparam, id_tool, val)) { FastLog(FUNCION_ACTUAL, FATAL_ERROR_TEXT, StringFormat("Formato invalido de empauqetacion de telegram [lparam=%I64d], mensaje recibido por UI Panel:\n%s", lparam, sparam)); return; } else { FastLog(FUNCION_ACTUAL, WARNING_TEXT, StringFormat("lparm=%I64d|sparam='%s'", lparam, sparam)); } //--- SendMessageToTlg(val, g_aidatatask_runner_tools_tlg_names[event_id], id_tool); } } #endif // AIDATATASKRUNNER_BACKEND_TLGM_SENDER_MQH //+------------------------------------------------------------------+