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.

相关文章
|
4天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
294 116
|
19天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
452 44
Meta SAM3开源:让图像分割,听懂你的话
|
13天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
684 222
|
1天前
|
Windows
dll错误修复 ,可指定下载dll,regsvr32等
dll错误修复 ,可指定下载dll,regsvr32等
133 95
|
11天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1677 158
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
925 61