Todo List
- Class device::nic::CAN::avrCANARY
Use the supported features of the avr CAN hardware e.g. more message objects, transmit interrupt, ...
- Global device::nic::ieee802_15_4::DRV802_15_4::send (const uint8_t *buffer, uint8_t size)
determin the destination adress/route if message is not broadcasted
use enum parameter for sanity check of maximal payload
- Global device::nic::ieee802_15_4::DRV802_15_4::tx_Interrupt
- Provide functionality of using tx_interrupt
- Class device::nic::ieee802_15_4::DRV802_15_4< RFLayer >
standard error handling
use actual size of availeble payload during compile time
use MOB as provided by the communication layer (template parameter)
- Global device::nic::serial::AsioSerialDriver::onReady
- provide functionality for the onReady() interrupt
- Class device::nic::serial::AsioSerialDriver< PL, SFD >
separate hardware management from package format management
use same framing/stuffing implementation as the AtmelDriver
- Global device::nic::serial::AtmelSerialDriver::onReady
- provide functionality for the onReady() interrupt
- Class device::nic::serial::AtmelSerialDriver< DEV, PL, BR, SFD >
minimize number of delegates used
move implementation of CFrame to FAMOUSO
use same framing/stuffing implementation as the AsioDriver
- Global famouso::init ()
- allow initialization of a GW only in case of more then one network layer available. This can be determind with the help of a configured NetworkAdapter. Is this type is missing in general non Gateway may exist.
- Global famouso::mw::anl::AbstractNetworkLayer::publish (const SNN &snn, const Event &e)
- Save copy operation in fragmentation case (needs AFP interface extension returning AFP header and payload separately and Packet/NL adaption)
- Global famouso::mw::api::EventChannel::mw_action_trampoline
Save RAM by replacing this with another type of delegate wich does not store an object pointer, because the this pointer is known at invocation time.
Save RAM for configurations without a management channel by leaving it out in that cases.
- Class famouso::mw::attributes::access::Attribute_RT
- The implementation of getValue and setValue should be more resource efficient because if different Attributes are in use, the methods are compiler-generated multiple times. However, this needs not to be so. A possible solution would be to factor out the common parts and only the for type-safety let the compiler generate a small cast method.
- Global famouso::mw::el::EventLayer::fetch (famouso::mw::nl::DistinctNL *bnl=0)
- The default value of zero describes that we have no fetching request from a lower layer. This is for further enhancements like fetching in a time-triggered system, where we fetch periodically without interrupt support from lower network layer.
- Global famouso::mw::nal::NetworkAdapter::fetch (const SNN &snn, Event &e, const famouso::mw::nl::DistinctNL *bnl)
- fetching of stacked gateway are not implemented at this stage and time triggered fetching is also not supported.
- Namespace famouso::mw::nl::awds::detail
- The elements at this namespace should moved to the right places later.
- Class famouso::mw::nl::awds::detail::FlowMgmtIDs
- Change ids to be grater than SystemIDs::nonSystem when Bug #80 is closed.
- Class famouso::mw::nl::awds::NodeRepository
- We can't handle multiple publisher with same subject and different attributes. We use the attributes of latest announce for now.
- Global famouso::mw::nl::awds::NodeRepository::reg (Node::type &node, SNN &subject, Attributes::type &attribs)
- If the subject is not registered, this function should do nothing.
- Global famouso::mw::nl::CAN::ccp::Client::ccp_configure_tx_node (const UID &uid, CAN_Driver &canDriver)
- RealTimeClasses for the CAN-Bus needs to be defined somewhere
- Class famouso::mw::nl::CAN::etagBP::Client< CAN_Driver >
- The etagBP is not reentrant. This could be a problem on Gateways especially on those, using the InterruptEnabler. Using the PreventBlockingOfMiddlewareCoreInBlockingProtocol it is always safe because it synchronises the reactivation of the BP in a way, that it is not executed in parallel.
- Global famouso::mw::nl::CANNL::rx_interrupt ()
ueber das Auslesen einer CAN Nachricht und deren Zwischenspeichern muss noch mal nachgedacht werden. Insbesonder fuer den AVR ist dies vielleicht nicht immer notwendig bzw der zusaetzliche Speicherbedarf nicht gerechtfertigt.
die Code-Introduktions der verschiedenen Protokolle sind ueber Aspecte oder ueber Feature-Orientierte Technicken zu realisieren.
- Global famouso::mw::nl::CANNL::tx_interrupt ()
- Provide functionality to use tx_interrupt
- Global famouso::mw::nl::IEEE_802_15_4_NL::deliver (const Packet_t &p)
- transmit p.fragment
- Global famouso::mw::nl::IEEE_802_15_4_NL::fetch (Packet_t &p)
- transmit p.fragment
- Global famouso::mw::nl::IEEE_802_15_4_NL::tx_interrupt ()
- Provide functionality to use tx_interrupt
- Class famouso::mw::nl::IEEE_802_15_4_NL< driver_t >
use template parameter (enum) to determin actually usable payload size during compile time
test possibility to reduce memory space by using the provided mob_t object
- Global famouso::mw::nl::SerialNL::deliver (const Packet_t &p)
- insert value of p.fragment into message
- Global famouso::mw::nl::SerialNL::fetch (Packet_t &p)
- get value of p.fragment from message
- Global famouso::mw::nl::SerialNL::tx_interrupt ()
- Provide functionality to use tx_interrupt
- Class object::ConstantSizeList< T, N, callDestructor >
- ConstantSizeList supports up to 255 elements, at the moment. To avoid false usage, the parameter N should be checked against this boundary, and if N is defined to high, a compile time error has to arise. It is also possible to invent an implementation, that configures automatically the correct types to circumvent the shortcoming.