*/
#include "Deluge.h"
+#include "StorageVolumes.h"
-configuration DelugeC {}
+configuration DelugeC {
+ uses interface Leds;
+}
implementation
{
- components DelugeStorageC;
-
-#ifdef DELUGE_BASESTATION
- components SerialStarterC;
- components new FlashVolumeManagerC(0xAB);
+ components ObjectTransferC;
+
+ components new BlockReaderC(VOLUME_DELUGE1) as BlockReaderDeluge1;
+ components new BlockReaderC(VOLUME_DELUGE2) as BlockReaderDeluge2;
+ components new BlockReaderC(VOLUME_DELUGE3) as BlockReaderDeluge3;
- DelugeP.ReprogNotify -> FlashVolumeManagerC;
- FlashVolumeManagerC.BlockRead[0] -> DelugeStorageC.BlockRead[0];
- FlashVolumeManagerC.BlockWrite[0] -> DelugeStorageC.BlockWrite[0];
- FlashVolumeManagerC.DelugeStorage[0] -> DelugeStorageC.DelugeStorage[0];
- FlashVolumeManagerC.BlockRead[1] -> DelugeStorageC.BlockRead[1];
- FlashVolumeManagerC.BlockWrite[1] -> DelugeStorageC.BlockWrite[1];
- FlashVolumeManagerC.DelugeStorage[1] -> DelugeStorageC.DelugeStorage[1];
-#endif
+ components new BlockWriterC(VOLUME_DELUGE1) as BlockWriterDeluge1;
+ components new BlockWriterC(VOLUME_DELUGE2) as BlockWriterDeluge2;
+ components new BlockWriterC(VOLUME_DELUGE3) as BlockWriterDeluge3;
- components ObjectTransferC;
- ObjectTransferC.BlockRead[0] -> DelugeStorageC.BlockRead[0];
- ObjectTransferC.BlockWrite[0] -> DelugeStorageC.BlockWrite[0];
- ObjectTransferC.BlockRead[1] -> DelugeStorageC.BlockRead[1];
- ObjectTransferC.BlockWrite[1] -> DelugeStorageC.BlockWrite[1];
+ ObjectTransferC.BlockRead[VOLUME_DELUGE1] -> BlockReaderDeluge1;
+ ObjectTransferC.BlockRead[VOLUME_DELUGE2] -> BlockReaderDeluge2;
+ ObjectTransferC.BlockRead[VOLUME_DELUGE3] -> BlockReaderDeluge3;
+
+ ObjectTransferC.BlockWrite[VOLUME_DELUGE1] -> BlockWriterDeluge1;
+ ObjectTransferC.BlockWrite[VOLUME_DELUGE2] -> BlockWriterDeluge2;
+ ObjectTransferC.BlockWrite[VOLUME_DELUGE3] -> BlockWriterDeluge3;
+
+ ObjectTransferC.Leds = Leds;
- components new DisseminatorC(DelugeDissemination, 0xDE00), DisseminationC;
+ components new DisseminatorC(DelugeCmd, 0xDE00);
+ components DisseminationC;
components ActiveMessageC;
components NetProgC, DelugeP;
components new TimerMilliC() as Timer;
- components LedsC, NoLedsC;
- DelugeP.Leds -> LedsC;
+ components BlockStorageManagerC;
+ components DelugeMetadataC;
+ components new DelugeMetadataClientC();
+ components new DelugeVolumeManagerClientC();
+ components new BlockStorageLockClientC();
+ components MainC;
+
+ DelugeP.Boot -> MainC;
+ DelugeP.Leds = Leds;
DelugeP.DisseminationValue -> DisseminatorC;
- DelugeP.DisseminationUpdate -> DisseminatorC;
- DelugeP.StdControlDissemination -> DisseminationC;
+ DelugeP.DisseminationStdControl -> DisseminationC;
DelugeP.ObjectTransfer -> ObjectTransferC;
DelugeP.NetProg -> NetProgC;
- DelugeP.StorageReadyNotify -> DelugeStorageC;
- DelugeP.DelugeMetadata -> DelugeStorageC;
DelugeP.RadioSplitControl -> ActiveMessageC;
-
- components InternalFlashC as IFlash;
- DelugeP.IFlash -> IFlash;
+ DelugeP.StorageMap -> BlockStorageManagerC;
+ DelugeP.DelugeMetadata -> DelugeMetadataClientC;
+ DelugeP.storageReady <- DelugeMetadataC;
+ DelugeP.DelugeVolumeManager -> DelugeVolumeManagerClientC;
+ DelugeP.Resource -> BlockStorageLockClientC;
+
+#ifdef DELUGE_BASESTATION
+ components SerialStarterC;
+ components new FlashVolumeManagerC(0xAB);
+ components new DelugeManagerC(0xAC);
+
+ DelugeManagerC.DisseminationUpdate -> DisseminatorC;
+#endif
+
}