/*void NXPUart::UartCb(const struct device* dev, void* user_data)
{
    NXPUart* instance = static_cast<NXPUart*>(user_data);
    auto& logger = Logger::GetInstance();
    if (!instance->uart_dev_)
    {
        logger.Error("UART device not initialized");
        return;
    }
    uint8_t buffer[UART_FIFO_SIZE];
    std::lock_guard<std::mutex> lock(instance->data_mutex_);
    int total_bytes_read = 0;
    while (uart_irq_update(dev) && uart_irq_is_pending(dev))
    {
        // Check if RX IRQ is ready
        if (uart_irq_rx_ready(dev))
        {
            int l_num_bytes_read = 0;
            do
            {
                // Read data in chunks into the buffer
                l_num_bytes_read = uart_fifo_read(dev, buffer, UART_FIFO_SIZE);
                total_bytes_read += l_num_bytes_read;
                if (l_num_bytes_read > 0)
                {
                    // Insert the chunk of data into accumulated_data_
                    instance->accumulated_data_.insert(instance->accumulated_data_.end(), buffer, buffer + l_num_bytes_read);
                    logger.Info("Received chunk: %s", std::string(buffer, buffer + l_num_bytes_read).c_str());
                }
            } while (l_num_bytes_read > 0);
            // Debug: Check accumulated data
            logger.Info("Accumulated Data so far: %s", std::string(instance->accumulated_data_.begin(), instance->accumulated_data_.end()).c_str());
            // Check if accumulated data contains a complete response
            if (instance->is_complete_response_callback_)
            {
                bool is_complete = instance->is_complete_response_callback_(instance->accumulated_data_);
                if (is_complete)
                {
                    // If response is complete, process the accumulated data
                    if (instance->data_received_callback_)
                    {
                        instance->data_received_callback_(
                            instance->accumulated_data_.data(),
                            instance->accumulated_data_.size()
                        );
                    }
                    // Clear the accumulated data after processing the complete response
                    instance->accumulated_data_.clear();
                }
            }
        }