Advertisement
iderrington

CoreBASIC Simple RFComm Script

May 25th, 2013
415
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ' CoreBASIC script by Iain Derrington
  2. '
  3. ' Demo program to read commands sent over a
  4. ' Bluetooth serial link.
  5. '
  6. ' http://soldercore.com
  7. '
  8. INSTALL "UART" AS UART
  9. '
  10. UART.SPEED = 9600
  11. UART.DATA = 8 ' 8 data bits
  12. UART.PARITY = 0 ' no parity
  13. UART.STOP = 1 ' 1 stop bit
  14. '
  15. PIN 2 AS DIGITAL OUTPUT
  16. '
  17. DIM MYBUF(10)
  18. HEAD = 0
  19. '
  20. CLS
  21. '
  22. 'Uncomment line below to configure the BT device
  23. 'CALL CHECK_BT_MODULE
  24. '
  25. PRINT "Waiting for Cmd"
  26. '
  27. 'Read data out of the UART buffer.
  28. 'Waiting for a linefeed to delimit a cmd
  29. WHILE 1
  30.   WAIT UART.READY > 0
  31.   '
  32.   MYBUF(HEAD) = UART.READ(1)
  33.   '
  34.   IF ASC(MYBUF(HEAD)) = %LF THEN
  35.     CALL CMD_CNTRL(MYBUF(0 TO HEAD - 1))
  36.     HEAD = 0
  37.   ELSE
  38.     HEAD = HEAD + 1
  39.   ENDIF
  40.   '
  41.   IF HEAD > 9 THEN HEAD = 0
  42. WEND
  43. '
  44. END
  45. '
  46. '***********************************************************
  47. '
  48. DEFPROC CMD_CNTRL(CMD)
  49.   CMD = MERGE(CMD)
  50.   '
  51.   CASE CMD
  52.   WHEN "Hello"
  53.     CALL HELLO
  54.   WHEN "LED ON"
  55.     CALL LED(1)
  56.   WHEN "LED OFF"
  57.     CALL LED(0)
  58.   WHEN "ETC ETC"
  59.     'You get the idea
  60.   OTHERWISE
  61.     PRINT "Don't recognise the command", CMD
  62.     UART.TX = "Don't think so"
  63.   ENDCASE
  64. ENDPROC
  65. '
  66. '**************************************************************
  67. '
  68. DEFPROC HELLO
  69.   PRINT "Hello From Android"
  70.   UART.TX = "Hello from SolderCore"
  71. ENDPROC
  72. '
  73. DEFPROC LED(STATE)
  74.   IF(STATE) THEN
  75.     PRINT "LED "; $GREEN; "on!"
  76.     PRINT $WHITE;
  77.     '
  78.   ELSE
  79.     PRINT "LED "; $RED; "off!"
  80.     PRINT $WHITE;
  81.   ENDIF
  82.   PIN 2 = STATE
  83. ENDPROC
  84. '
  85. '************************************************************
  86. '
  87. DEFPROC CHECK_BT_MODULE()
  88.   '
  89.   UART.PRINT = "AT"
  90.   WAIT UART.LEFT = 0
  91.   TIMER = 0
  92.   REPEAT
  93.   UNTIL(TIMER > 4000) OR (UART.READY >= 2)
  94.   '
  95.   IF TIMER > 4000 THEN
  96.     PRINT "No BT module found!"
  97.   ELSE
  98.     PRINT "BT module found!"
  99.     S = UART.RX(2)
  100.     UART.PRINT = "AT+NAMESOLDERCORE"
  101.     WAIT UART.LEFT = 0
  102.     '
  103.     TIMER = 0
  104.     REPEAT
  105.     UNTIL(TIMER > 4000) OR (UART.READY >= 9)
  106.     '
  107.     IF TIMER > 4000 THEN
  108.       PRINT "No Response...Weird"
  109.     ELSE
  110.       WHILE UART.READY > 0
  111.         PRINT CHR(UART.READ);
  112.       WEND
  113.     ENDIF
  114.   ENDIF
  115. ENDPROC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement