WinCE项目应用之RM905a+医用放射性核素活度计

1. 什么从备份节点读取数据

  RM905a+医用放射性核素活度计大约是我做的首先个WinCE项目,RM905a的升级版。RM905a是一度的老大LZF
2000年左右的创作,基于51单片机开发,数码管突显,稳定可相信,好似近来还在生产和接纳中。RM905a+则采纳SAMSUNG的S3C2410+WinCE5.0方案,6寸LCD液晶屏呈现。

    默许是不允许的,会报如下错误:

  做那些项目标时候,并从未强烈的连串须要,对照原有RM905a兑现所有作用。在落实的长河中根据客户指出的提出再做调整。WinCE部分的工作至关首要包蕴了按键面板的驱动程序和RM905主应用程序。探头端采纳ADμC的单片机,达成困难是仿照电路部分,因为须求测量的信号是pA级的电流。探头与WinCE主机通过UART串口通讯。单机项目成功以后,客户又指出了中距离操作的需要。因为作为测量仪器,每隔一段时间就要求送到原厂做标定。如若能够完结远程检定就无需将探头、测量仪和放射性核素送到原厂来,原厂可以透过互连网开展长途检定,并提供检定报告。WinCE的长距离展现和操纵相比较易于,《WinCE桌面帮手》就能搞定。难题在于须求经过显示屏显示,获取到当前的测量值,有点图像识其余意思。该工作重点分两片段,第一部分规定当前是或不是为测量界面,第二有些就是在测量界面校官测量的数值呈现分矩形区域统计其特征值,并转换成实际读数值。落成好该意义后,客户还写成了散文《医用核素活度计远程检定方法商量》发布,表达该功用在她们正式也终究一个小的翻新了。当然,那一个办法同样也足以利用在很多测量仪器的长距离检定和控制上。WinCE方案可用,Android的方案也没难点,而且对原本测量系统不会发出其余影响。

testReplSet:SECONDARY> show dbs
2016-07-19T10:25:03.196+0800 E QUERY    [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } 

  RM905a+的界面和功力如下图所示。

  如若要允许备份节点读取数据,须要举行以下命令

图片 1

db.getMongo().setSlaveOk()

 

2. 关于备份集

   1>
客户端在单机服务器上执行的操作,都可以发送到主节点执行(读,写,执行命令,创设索引等)

   2> 客户端没办法在备份节点上执行写操作

   3>
默许情形下,客户端不能从备份节点读取数据,除非显式地执行了setSlaveOk操作。

   4>
无法将单机服务器转换为副本集,除非关服务重新开首化,所以提议,即使唯有一个服务器,也配备成副本集的形式,那样持续添加节点就不须求停服务了。

   5>
副本集中很重大的一个概念是“一大半”:选用主节点需由大部分操纵,主节点唯有在取得多数支撑时才能继续作为主节点,写操作被复制到半数以上成员时这几个写操作

       才是高枕无忧的。

3. 怎么着查看服务器的命令行参数

   db.serverCmdLineOpts()

4. too many chunks to print, use verbose
if you want to force print

    可因而执行以下命令查看

    printShardingStatus(db.getSisterDB(“config”),1);

5. MongoDB的Driver怎样使用

// 通常的用法

// global MongoClient object
mongoClient = new MongoClient("mongodb://root:****@host1:port1,host2:port2/admin?replicaSet=repl00& maxPoolSize=100");

// request1
db1 = mongoClient.getDatabase("db1");
coll1 = db1.getCollection("coll1");
coll1.find({...})

// request2
db2 = mongoClient.getDatabase("db2");
coll2 = db2.getCollection("coll2");
coll2.update({...})

// requestN
...

 

// 错误的用法
// request1
mongoClient = new MongoClient("mongodb://root:****@host1:port1,host2:port2/admin?replicaSet=repl00& maxPoolSize=100");
db1 = mongoClient.getDatabase("db1");
coll1 = db1.getCollection("coll1");
coll1.find({...});
mongoClient.close();


// request2
mongoClient = new MongoClient("mongodb://root:****@host1:port1,host2:port2/admin?replicaSet=repl00& maxPoolSize=100");
db2 = mongoClient.getDatabase("db2");
coll2 = db2.getCollection("coll2");
coll2.update({...});
MongoClient.close()

// requestN
...

6. 怎么查看当前连接数

rs0:PRIMARY> db.serverStatus().connections
{ "current" : 8, "available" : 811, "totalCreated" : 104 }

7. 什么查看,kill当前的操作

rs0:PRIMARY> db.currentOp()
rs0:PRIMARY> db.killOp(opid)

8. 询问所有正在等待锁的写操作

db.currentOp(
   {
     "waitingForLock" : true,
     $or: [
        { "op" : { "$in" : [ "insert", "update", "remove" ] } },
        { "query.findandmodify": { $exists: true } }
    ]
   }
)

9.
询问所有操作db1还要实施时间已当先3s的请求

db.currentOp(
   {
     "active" : true,
     "secs_running" : { "$gt" : 3 },
     "ns" : /^db1\./
   }
)

 

  

发表评论

电子邮件地址不会被公开。 必填项已用*标注