2020-09-30 17:17:01 +02:00
|
|
|
#include "ObjectFactory.h"
|
2021-02-22 17:36:44 +01:00
|
|
|
#include <bsp_rpi/gpio/GPIORPi.h>
|
2020-09-30 17:17:01 +02:00
|
|
|
|
2020-11-20 18:27:07 +01:00
|
|
|
#include <objects/systemObjectList.h>
|
2021-02-22 17:36:44 +01:00
|
|
|
#include <devices/gpioIds.h>
|
2020-11-20 18:27:07 +01:00
|
|
|
#include <OBSWConfig.h>
|
|
|
|
#include <tmtc/apid.h>
|
|
|
|
#include <tmtc/pusIds.h>
|
2020-09-30 17:17:01 +02:00
|
|
|
|
2021-02-22 12:57:41 +01:00
|
|
|
#include <linux/boardtest/LibgpiodTest.h>
|
2021-02-22 18:46:45 +01:00
|
|
|
#include <linux/boardtest/SpiTestClass.h>
|
2021-02-22 12:57:41 +01:00
|
|
|
#include <linux/gpio/GpioCookie.h>
|
|
|
|
#include <linux/gpio/LinuxLibgpioIF.h>
|
2020-09-30 17:17:01 +02:00
|
|
|
|
2020-11-20 18:27:07 +01:00
|
|
|
#include <mission/core/GenericFactory.h>
|
|
|
|
#include <mission/utility/TmFunnel.h>
|
2020-09-30 17:17:01 +02:00
|
|
|
|
2021-02-22 18:46:45 +01:00
|
|
|
#include <fsfw/datapoollocal/LocalDataPoolManager.h>
|
|
|
|
#include <fsfw/tmtcservices/CommandingServiceBase.h>
|
|
|
|
#include <fsfw/tmtcservices/PusServiceBase.h>
|
|
|
|
#include <fsfw/osal/linux/TmTcUnixUdpBridge.h>
|
|
|
|
#include <fsfw/tmtcpacket/pus/TmPacketStored.h>
|
|
|
|
#include <fsfw/osal/linux/TcUnixUdpPollingTask.h>
|
|
|
|
#include <fsfw/tasks/TaskFactory.h>
|
|
|
|
|
2020-11-20 18:27:07 +01:00
|
|
|
void Factory::setStaticFrameworkObjectIds() {
|
2020-09-30 17:17:01 +02:00
|
|
|
PusServiceBase::packetSource = objects::PUS_PACKET_DISTRIBUTOR;
|
|
|
|
PusServiceBase::packetDestination = objects::TM_FUNNEL;
|
|
|
|
|
|
|
|
CommandingServiceBase::defaultPacketSource = objects::PUS_PACKET_DISTRIBUTOR;
|
|
|
|
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
|
|
|
|
|
|
|
|
TmFunnel::downlinkDestination = objects::UDP_BRIDGE;
|
|
|
|
// No storage object for now.
|
|
|
|
TmFunnel::storageDestination = objects::NO_OBJECT;
|
|
|
|
|
2020-12-29 02:16:39 +01:00
|
|
|
LocalDataPoolManager::defaultHkDestination = objects::NO_OBJECT;
|
|
|
|
|
2020-09-30 17:17:01 +02:00
|
|
|
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
|
|
|
|
TmPacketStored::timeStamperId = objects::TIME_STAMPER;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ObjectFactory::produce(){
|
|
|
|
Factory::setStaticFrameworkObjectIds();
|
2020-11-20 18:27:07 +01:00
|
|
|
ObjectFactory::produceGenericObjects();
|
2020-09-30 17:17:01 +02:00
|
|
|
|
|
|
|
new TmTcUnixUdpBridge(objects::UDP_BRIDGE,
|
|
|
|
objects::CCSDS_PACKET_DISTRIBUTOR,
|
|
|
|
objects::TM_STORE, objects::TC_STORE);
|
|
|
|
new TcUnixUdpPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE);
|
2021-01-14 00:40:30 +01:00
|
|
|
|
2021-02-23 16:47:34 +01:00
|
|
|
GpioIF* gpioIF = new LinuxLibgpioIF(objects::GPIO_IF);
|
2021-02-22 17:36:44 +01:00
|
|
|
|
|
|
|
#if RPI_ADD_SPI_TEST == 1
|
2021-02-23 16:47:34 +01:00
|
|
|
new SpiTestClass(objects::SPI_TEST, gpioIF);
|
2021-02-22 17:36:44 +01:00
|
|
|
#endif
|
2021-02-22 12:57:41 +01:00
|
|
|
|
2021-02-22 17:36:44 +01:00
|
|
|
#if RPI_LOOPBACK_TEST_GPIO == 1
|
2021-02-22 12:57:41 +01:00
|
|
|
GpioCookie* gpioCookie = new GpioCookie();
|
2021-02-22 17:36:44 +01:00
|
|
|
/* Loopback pins. Adapt according to setup */
|
|
|
|
gpioId_t gpioIdSender = gpioIds::TEST_ID_0;
|
|
|
|
int bcmPinSender = 26;
|
|
|
|
gpioId_t gpioIdReader = gpioIds::TEST_ID_1;
|
|
|
|
int bcmPinReader = 16;
|
|
|
|
gpio::createRpiGpioConfig(gpioCookie, gpioIdSender, bcmPinSender, "GPIO_LB_SENDER",
|
|
|
|
gpio::Direction::OUT, 0);
|
|
|
|
gpio::createRpiGpioConfig(gpioCookie, gpioIdReader, bcmPinReader, "GPIO_LB_READER",
|
|
|
|
gpio::Direction::IN, 0);
|
2021-02-22 12:57:41 +01:00
|
|
|
new LibgpiodTest(objects::LIBGPIOD_TEST, objects::GPIO_IF, gpioCookie);
|
|
|
|
#endif
|
2020-09-30 17:17:01 +02:00
|
|
|
}
|