http://blog.csdn.net/opensourcesdr/article/details/51968678 https://www.cnblogs.com/k1two2/p/5164172.html