Compare commits

..

2 Commits

Author SHA1 Message Date
Yasser Yassine ea5f11268c RADMoon2: Enable communication for MDIO 2025-02-26 02:40:01 +00:00
Yasser Yassine 759cb2436d Device: RM2 & RM3: Update settings 2025-02-25 22:45:08 +00:00
5 changed files with 19 additions and 19 deletions

View File

@ -848,6 +848,13 @@ protected:
neodevice_t& getWritableNeoDevice() { return data; } neodevice_t& getWritableNeoDevice() { return data; }
enum class LEDState : uint8_t {
Offline = 0x04,
CoreMiniRunning = 0x08, // This should override "offline" if the CoreMini is running
Online = 0x10
};
LEDState ledState;
void updateLEDState();
private: private:
neodevice_t data; neodevice_t data;
std::shared_ptr<ResetStatusMessage> latestResetStatus; std::shared_ptr<ResetStatusMessage> latestResetStatus;
@ -876,14 +883,6 @@ private:
APIEvent::Type getCommunicationNotEstablishedError(); APIEvent::Type getCommunicationNotEstablishedError();
enum class LEDState : uint8_t {
Offline = 0x04,
CoreMiniRunning = 0x08, // This should override "offline" if the CoreMini is running
Online = 0x10
};
LEDState ledState;
void updateLEDState();
size_t pollingMessageLimit = 20000; size_t pollingMessageLimit = 20000;
moodycamel::BlockingConcurrentQueue<std::shared_ptr<Message>> pollingContainer; moodycamel::BlockingConcurrentQueue<std::shared_ptr<Message>> pollingContainer;
void enforcePollingMessageLimit(); void enforcePollingMessageLimit();

View File

@ -48,24 +48,19 @@ public:
return Device::getProductName(); return Device::getProductName();
} }
// RADMoon 2 does not go online, you can only set settings and
// view PHY information (when supported)
bool goOnline() override { bool goOnline() override {
report(APIEvent::Type::OnlineNotSupported, APIEvent::Severity::Error); if(!com->sendCommand(Command::EnableNetworkCommunication, true))
return false; return false;
}
updateLEDState();
bool goOffline() override { online = true;
report(APIEvent::Type::OnlineNotSupported, APIEvent::Severity::Error); return true;
return false;
} }
bool getEthPhyRegControlSupported() const override { return true; } bool getEthPhyRegControlSupported() const override { return true; }
virtual uint8_t getPhyAddrOrPort() const = 0; virtual uint8_t getPhyAddrOrPort() const = 0;
bool isOnlineSupported() const override { return false; }
protected: protected:
using Device::Device; using Device::Device;

View File

@ -27,6 +27,10 @@ typedef struct {
uint16_t pc_com_mode; uint16_t pc_com_mode;
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings;
uint16_t hwComLatencyTestEn; uint16_t hwComLatencyTestEn;
RAD_GPTP_SETTINGS gPTP;
uint64_t network_enables_5;
} radmoon2_settings_t; } radmoon2_settings_t;
#pragma pack(pop) #pragma pack(pop)

View File

@ -19,6 +19,7 @@ public:
static std::vector<Network> supportedNetworks = { static std::vector<Network> supportedNetworks = {
Network::NetID::Ethernet, Network::NetID::Ethernet,
Network::NetID::OP_Ethernet1, Network::NetID::OP_Ethernet1,
Network::NetID::MDIO1
}; };
return supportedNetworks; return supportedNetworks;
} }

View File

@ -27,6 +27,7 @@ typedef struct {
uint16_t enableLatencyTest : 1; uint16_t enableLatencyTest : 1;
uint16_t reserved : 15; uint16_t reserved : 15;
} flags; // 2 } flags; // 2
uint64_t network_enables_5;
} radmoon3_settings_t; } radmoon3_settings_t;
#pragma pack(pop) #pragma pack(pop)