The driver was tested with the Grove BLE module. It's an HM-11 BLE 4.0 module based on a TI CC2541 chip. It operates using a standard 'AT' command set. See the datasheet for a full list of available commands and their possible responses:
http://www.seeedstudio.com/wiki/images/c/cd/Bluetooth4_en.pdf
It is connected via a UART at 9,600 baud.
   char buffer[BUFSIZ];
  
  
    {
      cerr << "Failed to setup tty port parameters" << endl;
      return 1;
    }
  printUsage(argv[0]);
  if (argc > 1)
    {
      cout << "Sending command line argument (" << argv[1] << ")..." << endl;
      sendCommand(ble, argv[1]);
    }
  else
    {
      
      char addr[] = "AT+ADDR?";
      cout << "Querying module address (" << addr << ")..." << endl;
      sendCommand(ble, addr);
      sleep(1);
      
      char pin[] = "AT+PASS?";
      cout << "Querying module PIN (" << pin << ")..." << endl;
      sendCommand(ble, pin);
      
      
      
      
      
      
      
      
      
      
    }