public virtual void Open()
{
if (!IsOpen)
{
doOpen();
// start with a well known device state
ble_cmd_system_reset(0);
Close();
doOpen();
Info = ble_cmd_system_get_info();
log(string.Format("Build: {0}, protocol version: {1}, hardware: {2}", Info.build, Info.protocol_version,
Info.hw == 0x01 ? "BLE112" : Info.hw == 0x02 | Info.hw == 0x03 ? "BLED112" : string.Format("Unknown({0})", Info.hw)));
}
}