]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/tda5250/HplTda5250DataP.nc
Changed the default to be that all platforms #include stdio.h unless specifically...
[tinyos-2.x.git] / tos / chips / tda5250 / HplTda5250DataP.nc
index e5f6e12c5525d580a5c5b092adcb65fbe2cf1b69..df881560650162cb7f87ee97d477fde4a4e8972f 100644 (file)
@@ -34,6 +34,7 @@
  /**
  * HplTda5250DataP module
  *
+ * @author Philipp Hupertz (huppertz@tkn.tu-berlin.de)
  * @author Kevin Klues (klues@tkn.tu-berlin.de)
   */
 
@@ -41,14 +42,16 @@ module HplTda5250DataP {
   provides {
     interface Init;
     interface HplTda5250Data;
+    interface HplTda5250DataControl;
     interface Resource;
+               interface ResourceRequested;
   }
   uses {
     interface GeneralIO as DATA;
-    // FIXME: platform dependence at HPL-level!
-    interface HplMsp430Usart as Usart;
-    interface HplMsp430UsartInterrupts as UsartInterrupts;
+    interface UartStream as Uart;
+    interface HplTda5250DataControl as UartDataControl;
     interface Resource as UartResource;
+    interface ResourceRequested as UartResourceRequested;
   }
 }
 
@@ -77,14 +80,11 @@ implementation {
     if(call UartResource.immediateRequest() == EBUSY) {
       return EBUSY;
     }
-    call Usart.setModeUART();
     return SUCCESS;
   }
 
-  async command void Resource.release() {
-    call Usart.disableRxIntr();
-    call Usart.disableTxIntr();
-    call UartResource.release();
+  async command error_t Resource.release() {
+    return call UartResource.release();
   }
 
   async command bool Resource.isOwner() {
@@ -92,71 +92,46 @@ implementation {
   }
 
   event void UartResource.granted() {
-    call Usart.setModeUART();
     signal Resource.granted();
   }
-
-  async command error_t HplTda5250Data.tx(uint8_t data) {
-    if(call UartResource.isOwner() == FALSE)
-     return FAIL;
-    call Usart.tx(data);
-    return SUCCESS;
+  
+  async event void UartResourceRequested.requested() {
+    signal ResourceRequested.requested(); 
   }
-
-  async command bool HplTda5250Data.isTxDone() {
-    if(call UartResource.isOwner() == FALSE)
-      return FAIL;
-    return call Usart.isTxEmpty();
+  
+  async event void UartResourceRequested.immediateRequested() {
+    signal ResourceRequested.immediateRequested(); 
   }
 
-  async command error_t HplTda5250Data.enableTx() {
+  async command error_t HplTda5250Data.tx(uint8_t data) {
     if(call UartResource.isOwner() == FALSE)
       return FAIL;
-    call Usart.setModeUART_TX();
-    call Usart.setClockSource(SSEL_SMCLK);
-    call Usart.setClockRate(UBR_SMCLK_38400, UMCTL_SMCLK_38400);
-    call Usart.enableTxIntr();
-    return SUCCESS;
+    return call Uart.send(&data, 1);
   }
 
-  async command error_t HplTda5250Data.disableTx() {
+  async event void Uart.sendDone( uint8_t* buf, uint16_t len, error_t error ) {
     if(call UartResource.isOwner() == FALSE)
-      return FAIL;
-    call Usart.disableUARTTx();
-    call Usart.disableTxIntr();
-    return SUCCESS;
+      return;
+    signal HplTda5250Data.txReady();
   }
-
-  async command error_t HplTda5250Data.enableRx() {
-    if(call UartResource.isOwner() == FALSE)
-      return FAIL;
-    call Usart.setModeUART_RX();
-    call Usart.setClockSource(SSEL_SMCLK);
-    call Usart.setClockRate(UBR_SMCLK_38400, UMCTL_SMCLK_38400);
-    call Usart.enableRxIntr();
+  
+  async event void Uart.receivedByte( uint8_t data ) {
+       if(call UartResource.isOwner() == FALSE)
+        return;
+       signal HplTda5250Data.rxDone(data);
+       }
+  async event void Uart.receiveDone( uint8_t* buf, uint16_t len, error_t error ) {}
+  
+  async command error_t HplTda5250DataControl.setToTx() {
+    call UartDataControl.setToTx();
     return SUCCESS;
   }
 
-  async command error_t HplTda5250Data.disableRx() {
-    if(call UartResource.isOwner() == FALSE)
-      return FAIL;
-    call Usart.disableUARTRx();
-    call Usart.disableRxIntr();
+  async command error_t HplTda5250DataControl.setToRx() {
+    call UartDataControl.setToRx();
     return SUCCESS;
   }
-
-  async event void UsartInterrupts.txDone() {
-    if(call UartResource.isOwner() == FALSE)
-      return;
-    signal HplTda5250Data.txReady();
-  }
-
-  async event void UsartInterrupts.rxDone(uint8_t data) {
-    if(call UartResource.isOwner() == FALSE)
-      return;
-    signal HplTda5250Data.rxDone(data);
-  }
-
+       
   default event void Resource.granted() {}
   default async event void HplTda5250Data.txReady() {}
   default async event void HplTda5250Data.rxDone(uint8_t data) {}