Untitled
plain_text
a month ago
2.6 kB
0
Indexable
Never
#include "iso15118_20_states.h" #include "../../shared/messages/iso15118-20/timeouts.h" #include "../../shared/messages/iso15118-20/common_messages.h" #include <iostream> #include "../transport/tcp_client.h" #include <nlohmann/json.hpp> #include <typeinfo> #include "../../secc/transport/tcp_server.h" #include "../../secc/states/iso15118_20_states.h" #include <fcntl.h> #include <thread> #include <cerrno> //#include "../main.cpp" #include <sys/select.h> #include <sys/socket.h> #include <sys/types.h> #include <unistd.h> int global_sock_fd; Timeouts timeouts; EVCCSessionSetup::EVCCSessionSetup(void* comm_session , int sockfd): StateEVCC(comm_session, timeouts.V2G_EVCC_COMMUNICATION_SETUP_TIMEOUT,"EVCCSessionSetup"),sock_fd(sockfd) { global_sock_fd = sock_fd; }; void EVCCSessionSetup::process_message(void* message) { std::cout << "EVCCSessionSetup sockfd " << << std::endl; AuthorizationSetupReq auth_setup_req("777777777877777777", 10); nlohmann::json j; j["SessionID"] = auth_setup_req.Header.SessionID; j["Timestamp"] = auth_setup_req.Header.Timestamp; j["Sockfd"] = sock_fd; std::string serialized_data = j.dump(); clientsend(sock_fd,serialized_data.c_str()); //send_data(sock_fd, serialized_data.c_str()); this->create_next_message(nullptr, &auth_setup_req, timeouts.AUTHORIZATION_SETUP_REQ); //EVCCAuthorizationSetup evccauthorizationsetup(nullptr,sock_fd,4); }; EVCCAuthorizationSetup::EVCCAuthorizationSetup(void* comm_session): StateEVCC(comm_session, timeouts.AUTHORIZATION_SETUP_REQ, "EVCCAuthorizationSetup") { }; void EVCCAuthorizationSetup::process_message(void* message) { char buffer[1024]; try { std::cout << "EVCCAuthorizationSetup sockfd " << global_sock_fd << std::endl; while(true) { int received_bytes = clientrecv(global_sock_fd, buffer, sizeof(buffer)); std::cout << "Received bytes: " << received_bytes << std::endl; if(received_bytes > 0) { std::cout << "received_bytes > 0" << std::endl; break; } else if(received_bytes == 0) { std::cout << "Connection closed by the other end." << std::endl; } else { std::cerr << "Error in receiving data: " << strerror(errno) << std::endl; } } } catch(const std::exception& e) { std::cerr << "Exception caught: " << e.what() << std::endl; } };