随着段伏枥这边视频转换芯片的调好,权盛这边也开始配合系统的整合了。这个对于段伏枥而言,并不是什么难事。界面方面,段伏枥所写的MiniUtilityFramework已经足以应付;通信方面,则只是通过串口和MCU进行沟通而已。
因为导航板主要是做一些界面的操作,而真正的功能实现也是处于MCU一端。比如要改变音量的大小,那么程序必须要给MCU发送一条指令,然后MCU接收指令后就会去变更功放的音量。这看似结构简单的方式,却有一个致命的缺点:在WinCE中,串口只能由单一的进程打开。也就是说,如果在程序A中打开通过CreateFile打开了串口,那么在程序B中以同样的方式是无法打开的。
这给段伏枥的程序带来了不少麻烦。大部分应用程序都有音量调节这项,音量调节必须要通过打开串口发命令,可这些程序在大部分时间都是共存的,无法同时使用串口。这种情形在做车机的时候都会遇到,比较通用的做法是使用一个中控程序,只有它才能打开串口;当中控程序接收到数据之后,再通过事件或消息之类的机制来通知其它的应用程序。
这是最简单的方式,但缺陷也是挺明显的。只要数据协议有变动,那么在变动相应的应用程序的时候也要更改中控程序。段伏枥左想右思,觉得这个方式对于后续的维护来说确实不妥。那怎么办呢?段伏枥灵光一现:微软的串口不是同一时间只能一个进程打开吗?那我可以做一个虚拟的串口驱动啊!然后通过内部数据的读取机制来完成多进程读取啊!
这的确是一个很好的想法。段伏枥在虚拟串口中建立一个线程,自己不停地读取数据,然后再将数据保存到缓存中;如果有进程需要数据,那么直接返回缓存中的数据即可。这道理说起来简单,但在实际开发中还是遇到了不少难题。好在段伏枥有这个耐心,只要是自己认定的事情,就一定会尽全力去做,除非真的是做不出来。
所幸的是,这一次还算顺利,虽然有些波折,段伏枥终于还是将这虚拟串口给做出来了。放在实际的板子上一跑,感觉还不错,能够满足这款机型的要求。
段伏枥是一个急于分享技术的人。看到这虚拟串口能够正常工作以后,赶紧将这过程和思路写出来,整理完后马上发表到CSDN博客。因为这虚拟串口是很多做车机都会遇到的,并且也确实有一定的技术含量,段伏枥不由地幻想着:说不定明天CSDN就会把这文章放到首页,然后有很多同行纷纷表示称赞。
理想很丰满,现实很骨感。不要说什么放在首页了,就连点击率也寥寥无几;本以为是第一天的缘故,可连续过了几天,那点击率还是依然那么慘淡。段伏枥不禁觉得有点垂头丧气,觉得大家怎么就那么不识货呢?
其实段伏枥完全是自取烦恼。写技术博客,注定了读者肯定不会像小说那么众多。发表的文章,肯定是有一定的技术深度,否则的话就没必要发出来了,而这便会将相当一部分的初学者排除在外;技术文章一般大多晦涩难懂,如果不是刚好要做这方面,估计很少有人会抱着休闲的心态去阅读,这又大大少了一部分读者。几道减法做下来,真正看完文章的读者少之又少,而留言的更是稀罕,所以文章反应寥寥便是情理之中了。
酒香不怕巷子深,技术无国界。文章发表了相当长一段时间,段伏枥收到了一封E-mail。邮件来自于美国的一家比较知名的软件公司,在信中工程师非常对虚拟串口的文章赞赏有加,因为这文章解决了困扰他许久的技术难点,来信主要是表示感激之情。
美国的工程师也会上CSDN?他们也会看中文?段伏枥觉得非常惊讶。当段伏枥在回信中提出了自己的疑问之后,对方回复说自己是华裔,自然能看懂中文。原来如此!段伏枥不禁感慨网络的力量。如果在没有网络的年代,这文章可能会漂洋过海吗?估计连家里的大门都出不了吧!
这年头,最不缺的是不同的声音。既然有称赞的,那么也有不屑的。有一个网友论坛求助如何在多个进程中打开同一个串口,自然也有人好心地回复说让他看看段伏枥的这篇虚拟串口的文章。可这名网友看完文章之后,连复制代码去测试一下都不情愿,直接丢下“跟玩具一样”的结论。
见此言论,段伏枥自然心有不爽,但静下心来一想,便也释怀了。自己曾经还是大菜鸟的时候,不也是这样吗?找资料,看到一些内容和自己的理解不同,不也是直接丢下不礼貌的言论吗?大智若愚,很多难题的解法可能只需要很简单的方式。但很多人却觉得,这种难题不可能有这么简单的做法,连动手尝试都不愿,直接出言否定。否定是可以,但也不能简简单单留下诸如“垃圾”之类的言语啊,好歹也要给出让人信服的理由吧?可实际上,留下这样言语的大多是菜鸟居多,他们也仅仅是因为从感觉上觉得这样的做法不妥;但为什么不妥,他们也说不上个所以然来。
菜鸟和老鸟的差别,不仅在技术上,也在于心态。菜鸟容易激动,习惯从主观上考虑问题,最喜欢现成的答案;而老鸟呢,则比较淡定,喜欢乐观地从不同角度分析问题,即使答案摆在眼前也要动手验证。正是由于这截然不同的品质,有了完全不同的行为模式。如果在回复中,仅仅是一些辱人的言论,那么这人基本是菜鸟无疑;如果在否定之后,还有一大堆理由用以支持论点,这人十有八九是老鸟。
因为菜鸟和老鸟都是同时存在的,所以技术文章想获得一片叫好声是不可能的,其中必然有很多相反的声音。因此写技术博客,心态非常重要。很多技术不错的人,写了不少很好的文章,可评论没有达到他预期,便心灰意冷,从此不再分享自己的心得,这只能说是个莫大的遗憾。
用博客来分享技术,这是网络渗透到生活的最好一个实例。但网络一开始并非有如此大的影响力。如果时间倒退十年前,在那个还在使用56K猫的时代,上网能干嘛呢?无非就是浏览一下新闻,在论坛上发发帖子,最多还聊一下QQ。那时候估计不少人会想,上网也干不了什么嘛,没有网络似乎也没差。
可现在呢?如果一台电脑没有联接到网络,那完全像是身处于孤岛之中,无法成事。编码的时候有疑问,需要上网查询吧?想要知道银行账目清单,更喜欢在网上银行吧?就算买东西,想淘点便宜货,在网上也更容易吧?技术文章,除了有依托于网络这平台以外还有其它可能吗?
也正是依托于这个网络,段伏枥认识了很多志同道合的朋友。比如之前一直有联系的Mercury,最近才接上头的gooogleman,还有telechips原厂工程师曾哥等等。正是有这些未曾谋面的朋友,段伏枥在技术这条路上走得才没那么孤单。
不过相对于技术道路的孤单而言,在生活中段伏枥如果再没明确行动,估计就真的要孤单了。
刘思敏在QQ上直接问道:“你要不要追徐雅思?”
在刘思敏这人精面前,矫情是没用的。段伏枥干脆大方承认:“想啊!”
刘思敏也直接:“既然想,那你干嘛还没有行动?你打算什么时候才表白啊?”
直觉敏锐的段伏枥觉得似乎事情有所不对劲,疑惑地问道:“怎么了?”
刘思敏毫不隐瞒:“我告诉你吧,过年回去的时候,雅思家里安排了相亲,他们两人现在在网上聊得欢呢!你要还是这么迟钝,你就没得玩啦!”
徐雅思过年的时候相亲了?这话对于段伏枥来说无疑是晴天霹雳。段伏枥也不作掩饰,急忙问道:“他们现在发展到什么地步了?我还有机会吗?”
“应该是刚刚发展吧,我也不清楚……反正如果你再不出手,你就绝对没机会了!对了,今晚我要和同事一起出去玩,可能会很晚回来。至于你要怎么做,不用我教了吧?”
教啥?让美女来教泡妞啊?太丢脸了吧?看了刘思敏的文字以后,段伏枥一整天坐立不安,心神不宁。如果真如刘思敏所说,那真的是火烧眉毛了。段伏枥对徐雅思还是挺有好感的,也不是没想过表白。但一想到万一表白被拒,可能连现在的朋友关系都不能维持,却又不由自主地打了退堂鼓。可这次不同了,再不有所行动的话,意中人就要成为别人的新娘啦!不拼没机会,拼了还有一丝生机;既然如此,为何不赌一把?
一下班,段伏枥赶紧收拾包包,直奔公交站。表白?要怎么表白呢?段伏枥这个爱情白痴,只善于写写代码,追女孩这还是人生第一遭。要不,买支玫瑰花?可人倒霉喝水也塞牙缝,偏偏今天的花店生意好,玫瑰花没了!要不买点菜花?好歹也带个“花”字啊!但估计真要这么干,这辈子就做好打光棍的准备吧!算了,空手套白狼吧!
晚上和徐雅思一起在大厅看电视,段伏枥好几次都鼓足勇气要表白,可一迎上对方的目光,一下子就泄了气。来往几次,徐雅思也觉得有点不太对劲了:“你今晚怎么了?”
靠!编程这高科技玩意自己都能征服,难道还真怕了这表白?豁出去了!段伏枥涨红了脸,说到:“雅思,做我女朋友吧!”
“啊?”徐雅思愣了一下,也不知道有没有听清段伏枥的话。
段伏枥也豁出去了,不管徐雅思答不答应,脑袋一伸:强吻!
徐雅思开始条件反射般往后躲了下,但很快就不再逃避。就这么一个细微的反应,段伏枥知道:这事成了!
一阵热吻,许久才分开。徐雅思此时已是满脸通红,害羞地问道:“今晚你怎么突然变得那么大胆了?”
死猪从来不怕开水烫,段伏枥得意地说道:“如果我再不勇敢点,你不就要跟相亲对象跑了?”
徐雅思一脸疑惑:“相亲对象?什么相亲对象?”
段伏枥也愣了,说道:“刘思敏说的呀!她说你过年回去相亲了!”
徐雅思哭笑不得:“没有啊,她又瞎说了……”
“瞎说?啊……”段伏枥此时觉得有点头晕……
刘思敏玩到半夜才回,刚一开门,段伏枥就堵上去:“你不是说雅思过年回去相亲了吗?她说没这回事啊!”
刘思敏一愣,随即咯咯大笑:“哈哈……你还真信啊?哦?是不是表白了?嗯,看这样子是成功了哦~”
刘思敏绕过段伏枥,在徐雅思旁边坐下:“怎么样?我都说他是个算盘珠子吧,不拨不会动的。我看你们这样,你们不急我都急了!怎么样,是不是要感谢我这个媒人啊?要不然这层窗户纸还不知道什么时候被捅破呢!”
徐雅思没说话,涨红了脸,施于刘思敏一顿粉拳。呆在一旁的段伏枥无语了,感情这是刘思敏设下的一个套让自己钻呐!但这套钻得值啊!这么一钻,结束单身了呐!
嘻闹中,刘思敏继续戏谑徐雅思:“既然你已经同意了,那么我想问一下,你今晚睡哪边?”
“啊?”徐雅思一愣,随即明白过来,急忙说道:“肯定还是睡我自己的床啦!”
刘思敏听了之后,很严肃地看了看段伏枥,一本正经地说道:“嗯,我觉得也是。小段肯定没有准备好工作服,这个还是要安全点好……”
工作服?呃,工作服!徐雅思也回味过来刘思敏的意思,继续施于粉拳:“我不是这个意思啦!……”
这一晚,段伏枥睡觉都在笑。单身的状态终于结束了!徐雅思成了自己的女朋友!这感觉,怎么像是在做梦呐?
PS:因为明天要出游,所以今晚就赶着将手机没写完的部分给弄出来,可能有不少错字,还请大家多包涵咯~呵呵
- 前言
- 《那些年啊,那些事——一个程序员的奋斗史》——01
- 《那些年啊,那些事——一个程序员的奋斗史》——02
- 《那些年啊,那些事——一个程序员的奋斗史》——03
- 《那些年啊,那些事——一个程序员的奋斗史》——04
- 《那些年啊,那些事——一个程序员的奋斗史》——05
- 《那些年啊,那些事——一个程序员的奋斗史》——06
- 《那些年啊,那些事——一个程序员的奋斗史》——07
- 《那些年啊,那些事——一个程序员的奋斗史》——08
- 《那些年啊,那些事——一个程序员的奋斗史》——09
- 《那些年啊,那些事——一个程序员的奋斗史》——10
- 《那些年啊,那些事——一个程序员的奋斗史》——11
- 《那些年啊,那些事——一个程序员的奋斗史》——12
- 《那些年啊,那些事——一个程序员的奋斗史》——13
- 《那些年啊,那些事——一个程序员的奋斗史》——14
- 《那些年啊,那些事——一个程序员的奋斗史》——15
- 《那些年啊,那些事——一个程序员的奋斗史》——16
- 《那些年啊,那些事——一个程序员的奋斗史》——17
- 《那些年啊,那些事——一个程序员的奋斗史》——18
- 《那些年啊,那些事——一个程序员的奋斗史》——19
- 《那些年啊,那些事——一个程序员的奋斗史》——20
- 《那些年啊,那些事——一个程序员的奋斗史》——21
- 《那些年啊,那些事——一个程序员的奋斗史》——22
- 《那些年啊,那些事——一个程序员的奋斗史》——23
- 《那些年啊,那些事——一个程序员的奋斗史》——24
- 《那些年啊,那些事——一个程序员的奋斗史》——25
- 《那些年啊,那些事——一个程序员的奋斗史》——26
- 《那些年啊,那些事——一个程序员的奋斗史》——27
- 《那些年啊,那些事——一个程序员的奋斗史》——28
- 《那些年啊,那些事——一个程序员的奋斗史》——29
- 《那些年啊,那些事——一个程序员的奋斗史》——30
- 《那些年啊,那些事——一个程序员的奋斗史》——31
- 《那些年啊,那些事——一个程序员的奋斗史》——32
- 《那些年啊,那些事——一个程序员的奋斗史》——33
- 《那些年啊,那些事——一个程序员的奋斗史》——34
- 《那些年啊,那些事——一个程序员的奋斗史》——35
- 《那些年啊,那些事——一个程序员的奋斗史》——36
- 《那些年啊,那些事——一个程序员的奋斗史》——37
- 《那些年啊,那些事——一个程序员的奋斗史》——38
- 《那些年啊,那些事——一个程序员的奋斗史》——39
- 《那些年啊,那些事——一个程序员的奋斗史》——40
- 《那些年啊,那些事——一个程序员的奋斗史》——41
- 《那些年啊,那些事——一个程序员的奋斗史》——42
- 《那些年啊,那些事——一个程序员的奋斗史》——43
- 《那些年啊,那些事——一个程序员的奋斗史》——44
- 《那些年啊,那些事——一个程序员的奋斗史》——45
- 《那些年啊,那些事——一个程序员的奋斗史》——46
- 《那些年啊,那些事——一个程序员的奋斗史》——47
- 《那些年啊,那些事——一个程序员的奋斗史》——48
- 《那些年啊,那些事——一个程序员的奋斗史》——49
- 《那些年啊,那些事——一个程序员的奋斗史》——50
- 《那些年啊,那些事——一个程序员的奋斗史》——51
- 《那些年啊,那些事——一个程序员的奋斗史》——52
- 《那些年啊,那些事——一个程序员的奋斗史》——53
- 《那些年啊,那些事——一个程序员的奋斗史》——54
- 《那些年啊,那些事——一个程序员的奋斗史》——55
- 《那些年啊,那些事——一个程序员的奋斗史》——56
- 《那些年啊,那些事——一个程序员的奋斗史》——57
- 《那些年啊,那些事——一个程序员的奋斗史》——58
- 《那些年啊,那些事——一个程序员的奋斗史》——59
- 《那些年啊,那些事——一个程序员的奋斗史》——60
- 《那些年啊,那些事——一个程序员的奋斗史》——61
- 《那些年啊,那些事——一个程序员的奋斗史》——62
- 《那些年啊,那些事——一个程序员的奋斗史》——63
- 《那些年啊,那些事——一个程序员的奋斗史》——64
- 《那些年啊,那些事——一个程序员的奋斗史》——65
- 《那些年啊,那些事——一个程序员的奋斗史》——66
- 《那些年啊,那些事——一个程序员的奋斗史》——67
- 《那些年啊,那些事——一个程序员的奋斗史》——68
- 《那些年啊,那些事——一个程序员的奋斗史》——69
- 《那些年啊,那些事——一个程序员的奋斗史》——70
- 《那些年啊,那些事——一个程序员的奋斗史》——71
- 《那些年啊,那些事——一个程序员的奋斗史》——72
- 《那些年啊,那些事——一个程序员的奋斗史》——73
- 《那些年啊,那些事——一个程序员的奋斗史》——74
- 《那些年啊,那些事——一个程序员的奋斗史》——75
- 《那些年啊,那些事——一个程序员的奋斗史》——76
- 《那些年啊,那些事——一个程序员的奋斗史》——77
- 《那些年啊,那些事——一个程序员的奋斗史》——78
- 《那些年啊,那些事——一个程序员的奋斗史》——79
- 《那些年啊,那些事——一个程序员的奋斗史》——80
- 《那些年啊,那些事——一个程序员的奋斗史》——81
- 《那些年啊,那些事——一个程序员的奋斗史》——82
- 《那些年啊,那些事——一个程序员的奋斗史》——83
- 《那些年啊,那些事——一个程序员的奋斗史》——84
- 《那些年啊,那些事——一个程序员的奋斗史》——85
- 《那些年啊,那些事——一个程序员的奋斗史》——86
- 《那些年啊,那些事——一个程序员的奋斗史》——87
- 《那些年啊,那些事——一个程序员的奋斗史》——88
- 《那些年啊,那些事——一个程序员的奋斗史》——89
- 《那些年啊,那些事——一个程序员的奋斗史》——90
- 《那些年啊,那些事——一个程序员的奋斗史》——91
- 《那些年啊,那些事——一个程序员的奋斗史》——92
- 《那些年啊,那些事——一个程序员的奋斗史》——93
- 《那些年啊,那些事——一个程序员的奋斗史》——94
- 《那些年啊,那些事——一个程序员的奋斗史》——95
- 《那些年啊,那些事——一个程序员的奋斗史》——96
- 《那些年啊,那些事——一个程序员的奋斗史》——97
- 《那些年啊,那些事——一个程序员的奋斗史》——98
- 《那些年啊,那些事——一个程序员的奋斗史》——99
- 《那些年啊,那些事——一个程序员的奋斗史》——100
- 《那些年啊,那些事——一个程序员的奋斗史》——101
- 《那些年啊,那些事——一个程序员的奋斗史》——102
- 《那些年啊,那些事——一个程序员的奋斗史》——103
- 《那些年啊,那些事——一个程序员的奋斗史》——104
- 《那些年啊,那些事——一个程序员的奋斗史》——105
- 《那些年啊,那些事——一个程序员的奋斗史》——106
- 《那些年啊,那些事——一个程序员的奋斗史》——107
- 《那些年啊,那些事——一个程序员的奋斗史》——108
- 《那些年啊,那些事——一个程序员的奋斗史》——109
- 《那些年啊,那些事——一个程序员的奋斗史》——110
- 《那些年啊,那些事——一个程序员的奋斗史》——111
- 《那些年啊,那些事——一个程序员的奋斗史》——112
- 《那些年啊,那些事——一个程序员的奋斗史》——113
- 《那些年啊,那些事——一个程序员的奋斗史》——114
- 《那些年啊,那些事——一个程序员的奋斗史》——115
- 《那些年啊,那些事——一个程序员的奋斗史》——116
- 《那些年啊,那些事——一个程序员的奋斗史》——117
- 《那些年啊,那些事——一个程序员的奋斗史》——118
- 《那些年啊,那些事——一个程序员的奋斗史》——119
- 《那些年啊,那些事——一个程序员的奋斗史》——120
- 《那些年啊,那些事——一个程序员的奋斗史》——121
- 《那些年啊,那些事——一个程序员的奋斗史》——122
- 《那些年啊,那些事——一个程序员的奋斗史》——123
- 《那些年啊,那些事——一个程序员的奋斗史》——124
- 《那些年啊,那些事——一个程序员的奋斗史》——125
- 《那些年啊,那些事——一个程序员的奋斗史》——126
- 《那些年啊,那些事——一个程序员的奋斗史》——127
- 《那些年啊,那些事——一个程序员的奋斗史》——128 (终章)