/// /// @file hamlib.cpp /// @copyright Christian Obersteiner, Andreas Müller - CC-BY-SA 4.0 /// /// @brief Contains all kind of hamlib functions /// #include "hamlib.h" /// /// @brief Constructor /// CHamlib::CHamlib() { } /// /// @brief Initialize Hamlib /// void CHamlib::initHamlib(EthernetUDP *udp, CRotor *rotor) { udp_ = udp; rotor_ = rotor; } /// /// @brief /// void CHamlib::receiveHamlibPacket() { if (packet_received_ == false) { int packet_size = udp_->parsePacket(); if (packet_size) { packet_received_ = true; udp_->read(received_packet_, UDP_TX_PACKET_MAX_SIZE); parse_error_ = parseHamlibPacket(); } } } /// /// @brief /// void CHamlib::sendHamlibPacket() { if (packet_parsed_) { udp_->beginPacket(udp_->remoteIP(), udp_->remotePort()); udp_->write(tx_packet_); udp_->endPacket(); packet_parsed_ = false; } } /// /// @brief /// CHamlib::hamlibError CHamlib::parseHamlibPacket() { packet_received_ = false; if ( received_packet_ == "rotor state\n" ) { // Answer with max rotor values sprintf(tx_packet_, "%f/%f %f/%f", AZIM_MIN, AZIM_MAX, ELEV_MIN, ELEV_MAX); packet_parsed_ = true; sendHamlibPacket(); return HAMLIB_OK; } return HAMLIB_NOK; } /// /// @brief Serial Debug output Function /// void CHamlib::debugOut() { Serial.print("Contents: "); Serial.println(received_packet_); }