1、按值传递

实际上,所有的传递都是按值传递。

一般情况下,变量是按值单向传递的。比如你有一张纸,要传给一个函数(另一个人),你是复印了你的纸,然后把副本给另一个人,那个人无论怎么折腾副本,都不会影响原来的纸。

 

2、按地址传递

按地址传递,意思是传递的值是地址。其实也是传递值也就是地址的副本,可以统一成按值传递。

比如数组作为参数,传递的是数组首元素的地址的副本。

比如,你现在文件夹里有1w张纸,你要传给一个函数(另一个人),不可能传递1w个变量(1w个副本),你可以说,嘿,文件夹在我桌上,你自己找你要的,文件夹的位置就是地址,有了地址就能找到文件夹内每张纸(数组元素)的值。由于别人操作的是你的地址,所以你的数据就可能被修改。

 

一、解决VS控制台窗口自动关闭的问题

解决方法:使用Ctrl+F5,为了简单,可以自己创建一个快捷按钮。

 

二、vc编程中出现 fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h””?

解决方法:不使用预编译头

百度API文档网址为:http://yuyin.baidu.com/docs/asr/57


百度识别出现参数错误:3300 输入参数不正确

可能原因:
1、base64EncodedStringWithOptions(.Encoding64CharacterLineLength)会加”\r\n”

2、Alamofire 的JSON会把”/”转义成”\/”


如何实现呢?

方法一:使用BASE64编码

要自己构造JSON,不能用NSJSONSerialization…然后网络请求库用其他的,太麻烦>_<

方法二、不使用BASE64编码

获取token

调用API

 

 

 

两台不加入域的主机,进行复制只能使用证书。

两天主机在一个工作组里。

复制makecert.exe到电脑,这个文件可以在安装了VS的电脑里找到。

 

在主服务器上

在副本服务器上

将文件 ReplicaTestRootCA.cer 从副本服务器复制到主服务器,然后使用以下命令将其导入:

将文件 PrimaryTestRootCA.cer 从主服务器复制到副本服务器,然后使用以下命令将其导入:

取消吊销检查

开启防火墙Hyber-V的有关端口

win+r 输入 mmc 设置后可以管理本地证书

iBeacon是Apple公司2013年9月提出的基于低功耗蓝牙( BLE)的标签广播技术。

同RFID类似,iBeacon技术包含 device和beacon(信标或基站),device相当于reader,beacon相当于tag。只不过beacon采用的是有源主动广播的方式,能够被多个device接收,device接收到的是三级标识符( UUID+ Major+ Minor)和RSSI(Received Signal Strength Indication接收的信号强度指示)。

iBeacon的优点:

1、低功耗

2、价格低廉

3、定位精度较高

4、与移动互联网连接紧密,O2O典型应用

 

注意,beacon只是告知device自己的标识符,device接收到标识符,根据标识符进行相应操作,比如页面显示和数据交换都是在device上进行的,查询数据库等也是查询device本机或者网络服务器的,和beacon无关。因此device一定需要配套的APP(或系统自带的iBeacon应用)。微信提供的摇一摇周边就是一个APP的例子。Google提出了Eddystone与iBeacon竞争。

beacon只不过是利用BLE协议中的Advertising数据包发送标识符,因此beacon可以是各种厂商的专用硬件设备,也可以是移动设备+带beacon功能的APP。

 

参考资料:

1、iBeacon协议

http://blog.csdn.net/qinxiandiqi/article/details/39004337

http://blog.csdn.net/qiank10/article/details/38050717

http://stackoverflow.com/questions/18906988/what-is-the-ibeacon-bluetooth-profile

https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html#//apple_ref/doc/uid/TP40013257-CH1-SW1

 

2、iBeacon介绍

https://developer.apple.com/ibeacon/

http://www.cctime.com/html/2014-11-4/201411411115005.htm

http://www.zhihu.com/question/32708729

 

3、国内公司

如苏州寻息、微位(上海)、重庆智石等等,非常多

 

 

 

这个还是有点没明白,这里先简单记录下。

注意,MySql如果不加索引,LEFT JOIN有点慢。

需求:对x_id分组,取最新的一个值。

MySql的写法,利用子查询先排序,然后GROUP BY后查询默认会取出每组第一条数据。

SELECT * FROM (SELECT db_1.id,db_1.r_id,db_1.x_id AS seat_id,db_1.time AS time,db_1.p_state, db_2.name AS name FROM db_1 LEFT JOIN db_2 ON db_1.match_id=db_2.match_id WHERE x_id <> ‘0000000000000000’ AND r_id =‘1’ ORDER BY db_1.id DESC) AS t GROUP BY t.seat_id

SQL Server下面的也能用,但是我么看懂。

SELECT A.r_id,A.x_id AS seat_id,A.time AS time,A.p_state, db_2.name AS name FROM db_1 AS A LEFT JOIN db_2 ON A.match_id=db_2.match_id WHERE 1>(SELECT COUNT(1) FROM db_1 AS B WHERE A.x_id=B.x_id AND A.ID<B.ID) AND x_id <> ‘0000000000000000’ AND r_id =‘1’ ORDER BY A.ID DESC

 

下面收集了一些资料,供参考:

MySQL 先排序再分组的问题 http://wenku.baidu.com/link?url=PsAGxhJY5ycK4Jk92crVEa-D60blwBiWFsY1ELrKkJxJzNW1XG-XAOdC7hFBW4NIN5ptB2oNlNQow1sWgPwwfF3aw8C0Wuq6-z3uaYfgc3y
mysql分组取每组前几条记录(排序) http://blog.sina.com.cn/s/blog_4c197d420101e408.html
left join on 和where条件的放置 http://blog.csdn.net/muxiaoshan/article/details/7617533
mysql 分组后取每个组内最新的一条数据(组内排序以及limit)http://www.dewen.io/q/12364/
How to select the first/least/max row per group in SQL http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

异地数据库如何同步?

最近有一个SQLserver和MySql的同步需求,看了一些资料。

0、直接备份

备份时候,Destination全删,重新从Source复制,简单粗暴,适合数据不大的情况。

1、简单备份

Source数据只增不删不改,且有自增ID,Destination只需要查询ID之差在应用层上编写查询和写入语句。

2、基于Trigger

基于trigger的方式获取增量变更,CRUD触发。

一种基于触发器的数据同步系统的研究及关键技术实现

3、基于日志

基于数据库的日志解析,获取增量变更进行同步。

数据库同步可以认为是同步操作记录,CRUD的每个记录如果被日志记录,在Destination只要重新执行一遍日志即可。

例如canal 是阿里巴巴mysql数据库binlog的增量订阅&消费组件。

https://github.com/alibaba/canal

4、一些软件,几乎都要收费

SyncNavigator $(不再更新?)***

SymmetricDS(免费的没有UI)

RedGate $

Sql Delta $

D-Softs $

SQLITE-SYNC

https://convertdb.com/

 

5、求大神指点

如何最简单从SQLserver同步到MySql呢?

MySql主从貌似很简单的样子 http://369369.blog.51cto.com/319630/790921

使用STM32中断来捕获输入信号频率,定周期数个数

进入中断时,首先应该读取数值,因为进入中断后,马上第二个中断就开始计时

如果不马上读取,即使多了一句话,测量的时间就不准了

LaunchPad G2553 低功耗测量
手册里写G2553最低功耗在 LPM3下有0.7-0.9uA
注意默认LaunchPad没有加晶振
所以为了达到这个目的:

1、所有管脚输出低电平
2、ACLK设置为VLOCLK,不设置会有5uA左右

直接用万用表串联测量J3跳线的VCC引脚,实测有0.7uA

01 #include “msp430.h”
02
03 int main( void )
04 {
05 /* Stop watchdog timer to prevent time out reset */
06    WDTCTL = WDTPW + WDTHOLD;
07
08 /* ACLK设置为VLOCLK */
09    BCSCTL3 |= LFXT1S_2;
10
11    P1DIR    = 0xFF;                 /* All P1.x outputs */
12    P1OUT    = 0;                    /* All P1.x reset */
13
14    P2DIR    = 0xFF;                 /* All P2.x outputs */
15    P2OUT    = 0;                    /* All P2.x reset */
16
17 /* 定时器配置 */
18    CCTL0    = CCIE;
19    CCR0    = 50000;
20    TACTL    = TASSEL_1 + MC_2;      /* ACLK, contmode */
21
22 /* 进入低功耗LPM3 */
23    __bis_SR_register( LPM3_bits + GIE );
24 }
25
26
27 #pragma vector=TIMER0_A0_VECTOR
28 __interrupt void Timer_A( void )
29 {
30    P1OUT |= BIT0;
31    __delay_cycles( 50000 );
32    P1OUT &= ~BIT0;
33 }

1、APM
http://diydrones.com/
主控芯片:ATMEGA2560

2、PX4
https://pixhawk.org
主控芯片:168 MHz Cortex M4F CPU (256 KB RAM, 2 MB Flash) / STM32F427

3、Crazyflie

Frontpage


主控芯片:STM32F4

4、MultiWii/MWC(MultiWii Copter)

http://www.multiwii.com/
主控芯片:ATMEGA/Arduino

5、AutoQuad 德国

Home


https://viacopter.eu/
主控芯片:STM32F405

6、MikroKopters 德国
http://www.mikrokopter.de/en/home

7、Crazepony 中国
http://www.crazepony.com/
主控芯片:72MHz的32位Cortex-M3架构处理器STM32

8、匿名四轴 中国
http://www.anotc.com/
主控芯片:STM32F103 72M

9、KK
官网不详

参考资料:
http://www.arduino.cn/thread-8430-1-1.html
http://www.zhihu.com/question/24312316