Micro Framework 3.0模拟器改造

简介: Micro Framework 3.0的SDK去年十月份就已经发布了,本打算在该SDK发布之后就把我以前开发的,可支持GPIO、I2C、SPI测试的模拟器同步升级为3.0版,以便早点支持VS2008(Micro Framework v2.x仅支持VS2005,Micro Framework v3.0仅支持VS2008)。

Micro Framework 3.0SDK去年十月份就已经发布了,本打算在该SDK发布之后就把我以前开发的,可支持GPIOI2CSPI测试的模拟器同步升级为3.0版,以便早点支持VS2008Micro Framework v2.x仅支持VS2005Micro Framework v3.0仅支持VS2008)。不过前段时间太忙了,现在趁着年假,花了一两天的工夫,终于达成了心愿。

新的模拟器相对于以前的模拟器有了两部分改变,下面详细说一下:

一、由于Micro Framework v3.0 SDK已经含有触摸屏组件,所以新模拟器中去掉了以前的SPI通道的鼠标模块,添加了最新的触摸屏支持。

this.lcdDisplay.TouchPort = (TouchGpioPort)_emulator.GpioPorts[TouchGpioPort.DefaultTouchPin];

protected override void OnMouseDown(MouseEventArgs e)

    {

        base.OnMouseDown(e);

        flags = TouchSampleValidFlag | TouchSampleDownFlag;

        _touchPort.WriteTouchData(flags, e.X, e.Y);

    }

    protected override void OnMouseUp(MouseEventArgs e)

    {

        base.OnMouseUp(e);

        flags = TouchSampleValidFlag | TouchSamplePreviousDownFlag;

        _touchPort.WriteTouchData(flags, e.X, e.Y);

    }

    protected override void OnMouseMove(MouseEventArgs e)

    {

        base.OnMouseMove(e);

        if ((flags & (TouchSampleValidFlag | TouchSampleDownFlag)) == (TouchSampleValidFlag | TouchSampleDownFlag))

        {

            flags = TouchSampleValidFlag | TouchSamplePreviousDownFlag | TouchSampleDownFlag;

            if ((e.X >= 0) && (e.Y >= 0))

            {

                _touchPort.WriteTouchData(flags, e.X, e.Y);

            }

        }

}

二、3.0 SDK已经支持文件系统,所以新模拟器添加了这部分功能支持,不过新功能有些讨巧,不像虚拟机能支持真正的磁盘镜像文件,而是引用了windows自身文件操作API,把windows的文件操作封装到模拟器中。

List<EmulatorRemovableBlockStorageDevice> bsdList = new List<EmulatorRemovableBlockStorageDevice>();

    removableBSDs = new Dictionary<string, EmulatorRemovableBlockStorageDevice>();

 

    foreach (BlockStorageDevice bsd in _emulator.BlockStorageDevices)

    {

        if (bsd is EmulatorRemovableBlockStorageDevice)

        {

            bsdList.Add((EmulatorRemovableBlockStorageDevice)bsd);

        }

    }

    if (bsdList.Count > 0)

    {

        insertEjectMenuItem.Visible = true;

        foreach (EmulatorRemovableBlockStorageDevice removableBSD in bsdList)

        {

            ToolStripItem item = new ToolStripMenuItem(GetItemText(removableBSD), null, InsertEjectOnClick);

            item.Name = removableBSD.Namespace;

            insertEjectMenuItem.DropDownItems.Add(item);

            removableBSDs.Add(removableBSD.Namespace, removableBSD);

        }

 }

 

   mf3.0

 

模拟器V3.0

 

 

 

 

mffile

 

新模拟器改进了注册机制,下载后解压到任一目录,直接运行YFMFEmulator.exe文件即可完成注册。

至于模拟器如何使用,请参见我以前写的文章:

1[MSDN Webcast]Windows Embedded从入门到精通系列课程(18):用模拟器零成本体验MF开发

2.Net Micro Framework研究—模拟器改造

3用模拟器零成本体验MF开发

 

模拟器V3.0下载链接:http://www.sky-walker.com.cn/yefan/YFMFEmulator.rar

 

 

关于Micro Framework 3.0 SDK的几点问题

1、下载链接:http://www.microsoft.com/downloads/details.aspx?FamilyId=9356ED6F-F1F0-43EF-B21A-4644DD089B4A&displaylang=en

2、几个bug

其实这几个bug在安装SDK3.0后的Micro Framework SDK Release Notes.txt中已经有了说明。

主要有如下两个问题:

(1)       非英文版VS2008安装SDK3.0后,在新建项目中无micro Framework选项

解决办法:

If you are running a non-English version of Visual Studio, you will need to

   move the Micro Framework project and item template files to a new location.

 

   Assuming the default installation directory, you would need to copy all files

   from

   /Program Files/Microsoft Visual Studio 9.0/Common7/IDE/ProjectTemplates/

   CSharp/Micro Framework/1033 to

   /Program Files/Microsoft Visual Studio 9.0/Common7/IDE/ProjectTemplates/

   CSharp/Micro Framework

 

   and all MicroFramework* files from 

   /Program Files/Microsoft Visual Studio 9.0/Common7/IDE/ItemTemplates/CSharp/

   1033 to

   /Program Files/Microsoft Visual Studio 9.0/Common7/IDE/ItemTemplates/CSharp/

 

     注意:进行以上操作以后,一定要运行如下指令:X:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/devenv.exe /setup

 

(2)       V2.x的应用程序升级为V3.0时失败

解决办法:

If you have existing projects written for previous versions of the Micro

Framework, follow these steps to update them to version 3.

 

1) Open the .csproj file for each of your projects and update the value of the

   TargetFrameworkVersion from

   <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> to

   <TargetFrameworkVersion>v3.0</TargetFrameworkVersion>

2) Open the project (or solution) in Visual Studio 2008 and complete the

   Conversion Wizard.

3) Review the "New behavior" section below and update code as needed.

相关实践学习
基于EBS部署高性能的MySQL服务
如果您通常是通过ECS实例部署MySQL来使用数据库服务,您可以参考本实验操作来搭建高性能的MySQL服务。本实验为您演示如何通过EBS ESSD云盘部署一个高性能的MySQL服务。
相关文章
|
监控 人机交互 芯片
西门子S7-200 SMART的功能和特点有哪些?STEP7-Micro/WIN SMART编程软件简介
西门子S7-200 SMART是西门子公司针对中国小型自动化市场客户需求设计研发的一款高性价比小型PLC产品。S7-200 SMART CPU将微处理器、集成电源、输入输出电路组合到一个设计紧凑的外壳中,已形成功能强大的小型plc。面板包含电源接线端子、直流24V电源输出端子、数字量输入输出接线端子、CPU状态指示灯、IO状态指示灯、存储卡插槽、以太网接口、RS485接口等。
西门子S7-200 SMART的功能和特点有哪些?STEP7-Micro/WIN SMART编程软件简介
|
前端开发 开发工具 数据安全/隐私保护
Lite UI Framework-让你快速的实现企业级管理型业务
lite ui framework 的初衷是让开发者可以快速的搭建一些轻量化的管理型业务页面,它基于react+umi+antd+gantd开发并开源
441 0
Lite UI Framework-让你快速的实现企业级管理型业务
.Net Micro Framework研究—模拟器改造
由于Digi提供的开发板没有LCD显示屏,所以有关绘图方面的操作,只好在模拟器上进行了。
542 0
Micro Framework Interop功能实现
目前.Net Micro Framework仅支持C#语言开发应用程序,由于是托管代码,垃圾回收随时都可能发生,其实时性很难得到保证,所以有windows开发经验的用户就会有这种想法:.Net Micro Framework能否支持非托管代码,也就是所谓的P/Invoke平台调用功能
853 0
.Net Micro Framework研究—带I2C总线的模拟器
I2C以前没有怎么接触过,所以做它的模拟功能,只能靠着感觉走,有不妥之处,还望方家指正。做出了spi相关的模拟功能,做I2C相对也就不难了,只不过用户操作I2C总线读写数据的时候要稍微麻烦一点。
621 0
|
Windows
.Net Micro Framework研究—模拟器直接运行MF程序
既然VS2005能启动运行,我想我们也可以,唯一不同的是模拟器加载的参数不同而已
700 0
|
监控
.Net Micro Framework研究—串口部署释疑
前几天我用串口方式部署MF程序总是无法成功,但是用其自带的串口调试程序通信成功
539 0
.Net Micro Framework研究—串口部署的困惑
昨天从微软拿来一块iPac-9302的MF开发板,虽然该板卡接口齐全,但网口、USB、SD插槽等都不能使用,目前仅能通过串口进行调试
630 0
|
Windows
.Net Micro Framework研究—Windows桌面
既然Windows 2000 /XP/vista,Windows CE(Windows Mobile)程序都有Windows桌面和开始菜单,那么我们的.Net Micro Framework也应该有一个。岂能光说不练,下面就是我们MF Windows的桌面和开始菜单。
634 0
|
芯片
再谈.NET Micro Framework移植
从代码角度来说,不仅STM32F103的移植代码在不断完善,并且也已经移植和优化了基于STM32F207和STM32F407的相关代码。从硬件角度来说,也由最初完全借助第三方的硬件作为.NET Micro Framework开发板,演变为今天推出自行设计的开发板和物联网产品。
619 0