老韩
14十一/096

尝试Python For S60手机开发

  生活中,我们似乎总能碰到那么一群人:爱好新奇事物、敢于探索和研究、不计回报分享经验。通常,我们称这种人叫“奇客”或者“极客”,他们有一个英文专用名词叫“Geek”--如你所见,这个词已然脱离了它的原义,不再是贬义的“畸形人”或者“野人”,甚至是“傻瓜”、“呆子”,而是成了对大多数能熟练应用各种开发工具、对新鲜事物有着相当的敏感、热衷于分享以及对开源事业有着近乎虔诚信仰的牛人的尊称。IT圈子里,如果有人能够称你为“Geek”,那绝对是一种荣耀,且不管在你的思维里是骂人抑或是有意贬低。这种人我身边不少,典型的比如QYB同学以及Alvayang同学。这俩人爱好新事物已经到了近乎BT的地步。同时技术也的确高超,经常有事没事给我灌输一些闻之未闻的东西,比如前一段时间,这俩家伙在办公室拿着笔记本电脑玩起了乒乓球,羡煞我们,纠结半天原来是他们利用笔记本的硬盘保护技术原理,写了一个模拟自由落体的重力感应程序,籍此来欺骗我们幼小而纯洁的心灵。
  这里先交代这么一段,事实上和本文并没有太大的关系,写下来因为想说明,我之所以会去研究这么一些杂七杂八的东西,或多或少是受了他们的影响,事实上我对这些东西是不怎么感冒的,因为在我看来这些纯粹是过把瘾就歇菜的体验。虽说科学技术是第一生产力,但在我看来它还取决于两个前提:一是你研究的科学技术是否有实用价值,二是你研究的技术假设能转化成生产力,需要投入多大的成本。倘若仅仅是体验式的去玩,倒不如回家背几段唐诗宋词四书五经,兴许更能体悟到“死生契阔,富贵在天”的真理(这人怎么这么扯?这二者貌似没什么关系)。
  但还是得研究呀,为什么呢?首先一个是,倘若跟他们混在一起,不懂是要被鄙视的;其次,丫的这俩人长得太帅了,老子百试不爽的阿Q思维(长得帅的没有我程序写得好、程序写得好的没有我帅)在他们面前完全不起作用。尤其是QYB同学,据江湖传闻,这家伙初进SOHU的时候,被诸多甭管已婚未婚的姑娘们追着问:你结婚了没有?那意思基本上就等同于:想不想出轨?想出轨跟我来!而老夫在SOHU两年多,却从来没有收到过女同胞类似的关怀,煞是凄凉,只恨得仰天长叹:苍天无眼呀,我帅得这么具体居然会没人看上我!(有会拉二泉映月的吗?给我来一段,眼泪酝酿中。)

  倒,废话又有点多了,下面转入正题:

  一、准备工作。
  (一)硬件:
    1、没有蓝牙的请准备一根蓝牙棒,有蓝牙设备的请启用蓝牙设备。
    2、S60V3手机或PDA,有蓝牙支持。
  (二)软件:
  1、Python for s60V3。
  下载地址是:https://garage.maemo.org/projects/pys60/,目前最新版本是1.9.7,Python内核是:2.5.4。
  在这里要鄙视一下Nokia,文档更新太慢了,搞得老夫先是从Nokia官网上跑到了SourceForge,然后从SF.net上下载到一个文本文件,在文本文件里才找到最终的项目主页地址。
  2、putty
  目前最新的版本是0.6,支持Socket远程连接,可以直接通过蓝牙的COM端口连接到pys60的Console上去进行开发。关于这个,可以参考QYB同学之前的一篇文章:《尝试了一下 Python for S60》,当然他这篇文章有一个问题,就是讲得不够详细,从他文章下面的留言就可以看出,还是很多人不知道怎么用putty来连pys60的Console,所以在接下来的过程当中,我也会图文并茂地跟大家讲解如何连上去。因为在这个过程当中,我也是折腾了半天才弄清楚的。

  二、安装:
  安装的过程就比较简单了,首先是下载到Python for s60V3,下这个文件:

  这是一个tar.gz文件,Windows下可以用WinRAR打开,打开后会看到这样一个PyS60Dependencies文件夹:

  事实上只要安装三个文件就行了:

  其中:ssl_nokia_1_5_7.SIS,是ssl lib,可不安装,Python_1.9.7.sis是主文件,必须安装,PythonScriptShell_1.9.7_3_2.sis是Python在s60下的GUI程序,要通过它来启动Python。
  你可以用蓝牙将文件传到设备上安装,或者通过Nokia的套件来安装。无论如何,我们安装好了,试着跑两行代码,在我E71上的截图如下:

  三、尝试开发
  那么到这里,我们已经成功把Python安装到S60上去了,同时也能跑,那么接下来就试着从Windows上用Putty来连接手机上的Python Colsole,毕竟在手机上敲代码实在是件不靠谱的事情。在此之前我们需要说明一下,在我的Windows XP环境下,Bluetooth在连接S60之后,默认会把Outgoing的端口打开,而Incoming的端口是需要手工添加的,这一点与有些文章里所描述的不是一样,我不知道他们当时的环境是怎么样的,也许是基于1代Bluetooth的设备,安装驱动程序后会默认打开Incoming的COM端口吧,但是至少我这边是手工添加之后才能打开Incoming端口的。

  首先设置Bluetooth:
  在Bluetooth设备上点右键,然后选“打开Bluetooth设备”(如果快捷栏没有图标,请在控制面板里找,呃,怎么搞得像是菜鸟教程一样?呵呵),在打开的面板上,选择“COM端口”,点击下面的添加按钮,然后再在弹出的面板上再选择“传入(设备初始化连接)”,当然,这是默认的,直接点确定就可以了。这时候,我们会看到面板上多了一个传入的端口,我当前机器的这个端口在COM8上。

  这一步设置成功,就意味着蓝牙的Incomming端口已经初始化成功,此时就可以用Putty去连这个端口了。我们打开Putty,新建一个Session,将Connection type设置为:Serial,此时Serial line默认会填充为COM1,把COM1修改为COM8,将这个Session命名为:NokiaE71S60,先保存一下:

  然后我们双击打开刚才的那个Session,此时Putty的界面会停留在等待响应的阶段,那么这个时候我们要在手机上打开Python,通过选择菜单打开“Bluetooth console”,选择蓝牙所在的计算机。待确定之后,就可以看到Putty已经有了响应。切换到Python的开发界面上去了:

  好了,到现在为止,我们已经连接到手机的Python上去了,开始写一段代码吧,这是一段调用PyS60自带messaging信息库来发送短信的代码,我这里要发送一个字符串给我自己的手机:

  经过测试,可以很快收到自己发的短信。在开发的过程当中,还犯了一个错误,就是:把手机号码赋值到一个Int型变量上去了,结果提示错误,事实上手机号码应该是字符串的。
  好吧,接下来,就要考虑开发一些比较好玩的东西了。

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

评论 (6) 引用 (0)
  1. 图片失效了~

  2. 呃,图片挂在我的另一个网站下,那个网站因为文章不怎么和【谐】,所以被那啥了。正在联系机房。

  3. 请问,在哪能找到那些forS60的库文件的说明或介绍?

  4. 这篇文章很好,我改天再我的手机上看看

  5. 不错,就是偶才刚开始学Python,还不会用。

  6. 多谢楼主!入门级好文章!


发表评论


还没有引用.