From ec69c6a8660d325b4c10299a5c419654ffd26dc3 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 14 Dec 2015 13:45:56 -0500 Subject: [PATCH] Fix Solenoid Resource object creation. Fixes artf4758. Change-Id: I8b40d6606d7091fa6e8bf95b75f820e6b524ae06 --- wpilibc/Athena/src/DoubleSolenoid.cpp | 6 +----- wpilibc/Athena/src/Solenoid.cpp | 3 +-- wpilibc/Athena/src/SolenoidBase.cpp | 2 ++ 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/wpilibc/Athena/src/DoubleSolenoid.cpp b/wpilibc/Athena/src/DoubleSolenoid.cpp index 6a669fb1d3..4fb2943117 100644 --- a/wpilibc/Athena/src/DoubleSolenoid.cpp +++ b/wpilibc/Athena/src/DoubleSolenoid.cpp @@ -10,10 +10,6 @@ #include -std::unique_ptr SolenoidBase::m_allocated = - std::make_unique(solenoid_kNumDO7_0Elements * - kSolenoidChannels); - /** * Constructor. * Uses the default PCM ID of 0 @@ -52,7 +48,7 @@ DoubleSolenoid::DoubleSolenoid(uint8_t moduleNumber, uint32_t forwardChannel, return; } Resource::CreateResourceObject( - m_allocated, solenoid_kNumDO7_0Elements * kSolenoidChannels); + m_allocated, m_maxModules * m_maxPorts); buf << "Solenoid " << m_forwardChannel << " (Module: " << m_moduleNumber << ")"; diff --git a/wpilibc/Athena/src/Solenoid.cpp b/wpilibc/Athena/src/Solenoid.cpp index 9d106b2356..5174f987e0 100644 --- a/wpilibc/Athena/src/Solenoid.cpp +++ b/wpilibc/Athena/src/Solenoid.cpp @@ -38,8 +38,7 @@ Solenoid::Solenoid(uint8_t moduleNumber, uint32_t channel) wpi_setWPIErrorWithContext(ChannelIndexOutOfRange, buf.str()); return; } - Resource::CreateResourceObject(m_allocated, kSolenoidChannels * 63); - + Resource::CreateResourceObject(m_allocated, m_maxModules * m_maxPorts); buf << "Solenoid " << m_channel << " (Module: " << m_moduleNumber << ")"; if (m_allocated->Allocate(m_moduleNumber * kSolenoidChannels + m_channel, buf.str()) == diff --git a/wpilibc/Athena/src/SolenoidBase.cpp b/wpilibc/Athena/src/SolenoidBase.cpp index e063c8e539..dfdf1eb8b7 100644 --- a/wpilibc/Athena/src/SolenoidBase.cpp +++ b/wpilibc/Athena/src/SolenoidBase.cpp @@ -8,6 +8,8 @@ #include "SolenoidBase.h" void* SolenoidBase::m_ports[m_maxModules][m_maxPorts]; +std::unique_ptr SolenoidBase::m_allocated; + /** * Constructor *