在Ubuntu上运行.程序是用C++编写的.我有2个进程在不同的主机上运行,当一个是master而一个是slave(它们之间没有任何优先级,只有一个句柄请求.).只有一个进程可以是主进程和处理请求.两个进程总是向上,如果它们崩溃,有一个看门狗重新启动它们.
主机通过网线连接.
我的计划是要求从一个到另一个保持活着,并且如果奴隶停止从主人那里保持活着,则需要将其状态改为主人.当master再次启动时,它首先等待保持活动状态,以防万一将其设置为master.如果让它设置为奴隶角色.
我很乐意得到您的意见:
如何防止两者同时掌握?这是我的主要关注点.启动和连接失败时,如何同时防止2个主站?
你认为查询保持活着还是保持活着会更好吗?(对于我来说,要求保持活力比推动更好)
任何其他好的建议和陷阱都将受到欢迎.
我正在编写一个程序,在2个支持android外围设备通信的Android设备之间进行以下BLE通信(在本例中为MOTOROLA MOTO E第2代)到一系列:连接 - >通信 - >断开连接,看看他们是否可以做到稳定性好.还讨论了测试中发现的问题.
该程序首先允许您选择是要将设备设置为外围设备还是中心设备.在中央端,程序首先使用服务UUID上的过滤器扫描外围设备:
ScanSettings.Builder ssb = new ScanSettings.Builder();
ssb.setReportDelay(0);
ssb.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY);
ScanSettings ss = ssb.build();
ScanFilter.Builder sfb = new ScanFilter.Builder();
sfb.setServiceUuid(BLEShared.SERVICE_UUID);
LinkedList<ScanFilter> lsf = new LinkedList<ScanFilter>();
lsf.add(sfb.build());
BluetoothLeScanner leScanner = m_BluetoothAdapter.getBluetoothLeScanner();
if(leScanner != null)
{
leScanner.startScan(lsf, ss, blePeripheralScanner);
isScanning = true;
currentState = BLE_CENTRAL_STATE_SCANNING;
}
Run Code Online (Sandbox Code Playgroud)
然后,当扫描外围设备时,处理程序将从主线程调用以下内容.
stopScan();
mGatt = result.getDevice().connectGatt(BLECentral.this, false, m_BLECentralGattCallBack);
Run Code Online (Sandbox Code Playgroud)
当连接外围设备(由另一个MOTO E操作)时,在onConnectionStageChange()上完成以下操作
if(newState == BluetoothGatt.STATE_CONNECTED)
{
m_Handler.post(new Runnable(){
public void run()
{
gatt.discoverServices();
}
});
}
Run Code Online (Sandbox Code Playgroud)
发现所有服务后,该程序执行以下操作:
更新描述符以订阅通知写入一些数据并在接收到从中央发送的数据时发送到外围设备,外围设备将通知值更改.收到数据后,来自外设的更改通知将向外设发送数据.写入和通知过程将完成11次.然后集中调用gatt.disconnect()来断开ble连接.
循环上述过程以测试稳定性.
在正常连接期间,上述过程可在1.7-2.5秒内完成.在每个写通知过程之间,大约需要0.1秒
测试期间发现以下问题:
我说的是VS 2010 Professional/Ultimate RTM(不是快递版).除了有关beta 2和RC版本的内容之外,Google并没有显示出太多其他内容.
在具有3GB RAM和NVIDIA GeForce 8400 GS的Core 2 Duo E6550 2.33GHz上运行良好吗?
编辑:如何使用R#5.0?
我以不同的方式问了同样的问题,问题已经结束:https ://stackoverflow.com/questions/7231460/java-64-bit-or-32-bit
这是我第二次尝试获得客观答案(s ).
我们正在考虑将我们的产品转移到64位Java,以满足那些在Solaris(SPARC)和Linux(RHEL 5.x)上推动32位服务器JVM边界的客户.我们的导演问道,"几年前,64位并不完全存在.现在怎么样?"
对于那些没有推动4 GB边界的客户,使用64位JVM会对性能产生不利影响吗?如果是,多少钱?我们创造了很多对象.(我们不希望同时支持32位和64位JVM.这是一个或两种情况,最好).
对于那些推动4 GB边界的人,我们可以期望JVM与32位边界一样稳定吗?
更新:对于那些评论者和那些关闭我之前的问题的人,我相信我现在理解你的焦虑.与此同时,我相信你们中的一些人做了一些(不真实的)假设,我是懒惰的,或者是一个毫无头绪的诉讼.我会在调查后发布我的调查结果.感谢所有给我真正指针的人.
打开迪伦看起来很有趣.然而,在我将它用于实际开发之前,我想知道实现的成熟程度.我知道Dylan本身是一种古老的语言,它已被Apple使用.
我真的很惊讶meteor.js的功能和易用性,我真的爱上了它.我只是想知道你是否专家认为它足够稳定,可以在中型项目的生产中使用它.
谢谢你的建议!
2014年11月更新:
Meteor 1.0刚刚发布,这是第一个准备好生产版的终于,更多关于流星检查这个链接
我经常看到或听到人们将某些东西描述为与代码相关的“稳定”。
我是否正确地认为“稳定”类库中的功能已经过充分测试,在现实世界中使用过并且未发现包含任何错误?或者至少是任何目的的关键错误。
那么,这与操作系统等大型软件有什么关系?我经常看到一个被描述为“稳定”的下载,它通常比最新版本落后几个版本。一个软件什么时候变得稳定?是否有任何标准来确定这一点?
我正在尝试确定黑白棋盘上的哪些棋子是稳定的(那些在游戏的其余部分中无法翻转的棋子)。
我读到光盘需要在所有四个方向(水平、垂直和两个对角线)保持稳定。要使其在任何方向上都稳定,要么该方向布满了棋子以致该方向无法放置更多棋子,要么位于棋盘的边缘,要么与同颜色的稳定棋子相邻。
我理解前两部分,但是我需要评估光盘的稳定性是否有特定的顺序,因为可能会产生连锁反应来诱导稳定性。
我正在研究ESP32的wifi项目,尽管有其他类似CC3200(TI)的替代品,因为它的价格.但我怀疑ESP32的硬件或SDK的可靠性.
我在开发简单项目时发现了一些错误.我向ESP报告了这些内容,但是他们只是将它交给了开发团队,没有其他响应.
我想使用TI这样的大公司产品,但ESP32的价格竞争力太强了.
我想听听那些用ESP32开发商业产品的人.
流行的线性代数库Eigen带有一长串所谓的“不支持”模块,例如用于 FFT、数值微分或欧拉角的模块。
在 Eigen 文档中,它明确指出:
这些模块是来自不同用户的贡献。它们按“原样”提供,没有任何支持。
不幸的是,文档中没有关于不受支持的模块的潜在终止、对实现质量的要求、测试级别等的声明。
这给我留下了以下问题:
(只是为了完整性:我正在考虑的特定不受支持的模块是EulerAngles模块)。
stability ×10
c++ ×2
java ×2
performance ×2
64-bit ×1
algorithm ×1
android ×1
bluetooth ×1
connection ×1
dylan ×1
eigen ×1
eigen3 ×1
esp32 ×1
javascript ×1
jvm ×1
linux ×1
master-slave ×1
meteor ×1
othello ×1
testing ×1