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.

相关文章
|
16天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
8天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
11天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
1029 34
|
10天前
|
机器学习/深度学习 人工智能 搜索推荐
万字长文深度解析最新Deep Research技术:前沿架构、核心技术与未来展望
近期发生了什么自 2025 年 2 月 OpenAI 正式发布Deep Research以来,深度研究/深度搜索(Deep Research / Deep Search)正在成为信息检索与知识工作的全新范式:系统以多步推理驱动大规模联网检索、跨源证据。
783 55
|
8天前
|
文字识别 测试技术 开发者
Qwen3-VL新成员 2B、32B来啦!更适合开发者体质
Qwen3-VL家族重磅推出2B与32B双版本,轻量高效与超强推理兼备,一模型通吃多模态与纯文本任务!
670 11