欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于快速設(shè)備開發(fā)的集成開發(fā)環(huán)境的制作方法

文檔序號(hào):6360094閱讀:198來(lái)源:國(guó)知局
專利名稱:用于快速設(shè)備開發(fā)的集成開發(fā)環(huán)境的制作方法
用于快速設(shè)備開發(fā)的集成開發(fā)環(huán)境背景原型設(shè)備的實(shí)現(xiàn)是開發(fā)新計(jì)算設(shè)備的過程的關(guān)鍵部分,而目前此過程既耗時(shí)又昂貴。原型可用于實(shí)驗(yàn)室測(cè)試和/或用于用戶試驗(yàn),而這意味著原型通常需要在大小、重量、性能等方面充分代表最終產(chǎn)品,這組成了快速生產(chǎn)適當(dāng)原型的困難。在能夠生產(chǎn)代表性原型的情況下,具有最終用戶的消費(fèi)者計(jì)算設(shè)備的試驗(yàn)可在開發(fā)過程的早期執(zhí)行,而這可提供關(guān)于設(shè)備的價(jià)值、它是否保證進(jìn)一步的開發(fā)、以及什么改變可能使其更有用、對(duì)用戶更友好等的有用信息。為了開發(fā)代表性原型,通常需要執(zhí)行基本上與創(chuàng)建最終產(chǎn)品相同的步驟,例如,設(shè)計(jì)PCB并制作該P(yáng)CB,開發(fā)固件來(lái)在設(shè)備上運(yùn)行,設(shè)計(jì)外殼并制造該外殼并隨后組裝該設(shè)備。這帶來(lái)了很大的初期花費(fèi)并且迭代起來(lái)非常耗時(shí)而且昂貴。以下描述的各實(shí)施例不限于解決已知原型化(prototyping)或開發(fā)方法和工具的 缺點(diǎn)中的任一個(gè)或全部的實(shí)現(xiàn)。概述下面呈現(xiàn)了本發(fā)明的簡(jiǎn)要概述,以便向讀者提供基本理解。本概述不是本發(fā)明的詳盡概覽,并且不標(biāo)識(shí)本發(fā)明的關(guān)鍵/重要元素,也不描述本發(fā)明的范圍。其唯一的目的是以簡(jiǎn)化形式呈現(xiàn)此處所公開的一些概念,作為稍后呈現(xiàn)的更詳細(xì)的描述的序言。描述一種用于快速設(shè)備開發(fā)的集成開發(fā)環(huán)境。在一實(shí)施例中,該集成開發(fā)環(huán)境向用戶提供多個(gè)不同視圖,每個(gè)視圖與設(shè)備設(shè)計(jì)的不同方面(諸如硬件配置、軟件開發(fā)和物理設(shè)計(jì))相關(guān)。該設(shè)備(它可以是原型設(shè)備)是由從數(shù)據(jù)庫(kù)選擇的多個(gè)對(duì)象形成的,并且該數(shù)據(jù)庫(kù)為每個(gè)對(duì)象存儲(chǔ)多個(gè)數(shù)據(jù)類型,諸如用于該對(duì)象的3D模型、軟件庫(kù)和代碼存根(code-stub),以及硬件參數(shù)。用戶可通過以任何次序選擇不同視圖來(lái)設(shè)計(jì)該設(shè)備,并且可在選擇時(shí)在各視圖間切換。在一個(gè)視圖中所做的改變(諸如對(duì)新對(duì)象的選擇)被饋送到其他視圖中。通過結(jié)合附圖參考以下詳細(xì)描述,可更易于領(lǐng)會(huì)并更好地理解許多附帶特征。附圖描述根據(jù)附圖閱讀以下詳細(xì)描述,將更好地理解本發(fā)明,在附圖中圖I是用于設(shè)備的快速開發(fā)的集成開發(fā)環(huán)境的示意圖;圖2示出約束解決器(constraint resolver)的操作的示例方法的流程圖;圖3是示出圖I中示出的集成開發(fā)環(huán)境的一種替代表示的示意圖;圖4包括示出硬件配置引擎和軟件開發(fā)引擎的操作的示例方法的兩個(gè)流程圖;圖5是示出物理設(shè)計(jì)引擎的操作的示例方法的流程圖;圖6、8、9和11是用于設(shè)備的快速開發(fā)的集成開發(fā)環(huán)境的進(jìn)一步示例的示意圖;圖7示出模擬引擎的操作的示例方法的流程圖;

圖10和12示出同步元件的操作的示例方法的流程圖;以及圖13示出可在其中實(shí)現(xiàn)本文所描述的各種方法的實(shí)施例的示例性的基于計(jì)算的設(shè)備。
在各個(gè)附圖中使用相同的附圖標(biāo)記來(lái)指代相同的部件。詳細(xì)描述下面結(jié)合附圖提供的詳細(xì)描述旨在作為本發(fā)明示例的描述,并不旨在表示可以構(gòu)建或使用本發(fā)明示例的唯一形式。本描述闡述了本發(fā)明示例的功能,以及用于構(gòu)建和操作本發(fā)明示例的步驟的序列。然而,可以通過不同的示例來(lái)實(shí)現(xiàn)相同或等效功能和序列。圖I是用于設(shè)備的快速開發(fā)的集成開發(fā)環(huán)境(IDE)的示意圖,其中該設(shè)備包括物理外殼和執(zhí)行一些預(yù)先變成的軟件的一些內(nèi)部組件模塊,諸如電子元件或傳感器。在一示例中,該IDE可被用于快速原型化(prototype)設(shè)備,而后面的描述中對(duì)原型設(shè)備的開發(fā)的任何引用均是僅作為示例。該IDE向用戶提供了在單一開發(fā)環(huán)境內(nèi)的多個(gè)不同視圖101-103,每個(gè)視圖使用戶能夠開發(fā)設(shè)備的不同方面。這些視圖將在以下更詳細(xì)地描述。用戶在開發(fā)設(shè)備時(shí)可以任何次序選擇這些視圖,并且可在他們選擇時(shí)在各視圖間切換,并且如此該IDE提供了一種靈活的非線性的設(shè)備設(shè)計(jì)方式。這些視圖被提供各視圖間同步的元件鏈接,使得用戶在一個(gè)視圖中對(duì)設(shè)計(jì)所做的改變反映在其他視圖中。在本示例中,該元件 是約束解決器104。這些視圖中的每一個(gè)具有對(duì)對(duì)象數(shù)據(jù)存儲(chǔ)106 (其也可被稱為智能庫(kù))和實(shí)例化專用(instantiation-specific)數(shù)據(jù)存儲(chǔ)108的訪問。對(duì)象數(shù)據(jù)存儲(chǔ)106存儲(chǔ)關(guān)于可用于搭建設(shè)備的對(duì)象或?qū)ο箢惖膶?shí)例化獨(dú)立(instantiation-independent)的數(shù)據(jù),而實(shí)例化專用數(shù)據(jù)存儲(chǔ)108存儲(chǔ)被創(chuàng)建的設(shè)備專用的數(shù)據(jù),諸如可以是用戶指定或推斷的參數(shù)。術(shù)語(yǔ)‘推斷的參數(shù)’在此處用于指代由該IDE (例如,在該IDE的任何視圖內(nèi))生成的任何參數(shù)。這些參數(shù)可作為用戶輸入的結(jié)果而生成(例如,所選擇的對(duì)象的組合、所編寫的特定代碼等)。要理解,一對(duì)象可包括其他對(duì)象的分組的群集。在許多實(shí)施例中,該IDE從對(duì)象數(shù)據(jù)存儲(chǔ)106僅讀取數(shù)據(jù),而對(duì)實(shí)例化專用數(shù)據(jù)存儲(chǔ)108進(jìn)行數(shù)據(jù)讀寫。硬件配置視圖101顯示可用對(duì)象(或?qū)ο箢?的細(xì)節(jié)并允許用戶從對(duì)象數(shù)據(jù)存儲(chǔ)106選擇對(duì)象(或?qū)ο箢?來(lái)形成設(shè)備。例如,用戶可選擇存儲(chǔ)器模塊、處理器、顯示器、電池、用戶輸入設(shè)備(諸如按鍵板(keypad))、GPRS (通用分組無(wú)線電業(yè)務(wù))模塊等。用戶輸入設(shè)備提供了對(duì)象類的示例,因?yàn)榭纱嬖诳杀贿x擇的許多不同類型的用戶輸入設(shè)備(對(duì)象)。在另一示例中,可存在用戶能夠選擇的許多不同的顯示器(每個(gè)均是不同的對(duì)象),這些顯示器形成對(duì)象類‘顯示器’。在第三示例中,用戶可選擇對(duì)象類‘電池’,這等同于用戶說“使用任何電池”,或可選擇特定電池,這等于用戶說“使用這一特定電池”(例如,具有特定容量的電池或特定類型的電池)。在以下描述中,對(duì)對(duì)象的任何引用均僅是示例性的,并且也可稱為對(duì)象類。硬件配置視圖101還允許用戶配置對(duì)象參數(shù),例如,用戶可選擇對(duì)象類‘顯示器’并配置對(duì)象參數(shù)來(lái)指定最小顯示器尺寸、顯示器分辨率等。在某些示例中,這可等同于選擇類的子集,例如,類‘顯示器’中具有超過用戶指定參數(shù)的尺寸的所有顯示器。已經(jīng)被配置的任何對(duì)象參數(shù)被存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中(此信息是實(shí)例化專用的,因?yàn)樗c特定設(shè)備構(gòu)造(build)有關(guān))。所選擇的對(duì)象的細(xì)節(jié)也可被存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中或可以其他方式記錄(例如,通過將適當(dāng)?shù)膶?duì)象數(shù)據(jù)從對(duì)象數(shù)據(jù)存儲(chǔ)106加載到中心儲(chǔ)存庫(kù)中,如下面參考圖9-12更詳細(xì)地描述的)。被提供給用戶以使用戶能夠做出選擇(以及可以任何形式而不必是列表形式提供給用戶)的可用對(duì)象的列表可包括在對(duì)象數(shù)據(jù)存儲(chǔ)106中的所有對(duì)象。然而,可基于已經(jīng)做出的選擇(例如,考慮對(duì)象或所指定的任何約束之間的不兼容性,如下面更詳細(xì)地描述的)、基于存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中的(以及可能已在其他視圖中生成的)實(shí)例化專用參數(shù)、和/或取決于其他因素來(lái)更新這個(gè)可用對(duì)象列表??墒褂米詣?dòng)化決策算法來(lái)生成可用對(duì)象的列表。在一實(shí)施例中,可用于創(chuàng)建該設(shè)備的對(duì)象可包括為了設(shè)備的快速原型化或?yàn)榱朔窃驮O(shè)備的快速開發(fā)而設(shè)計(jì)的一組模塊化硬件元件。該組元件例如可包括包含主處理器以及多個(gè)其他電子模塊能容易地與其連接的核心模塊。在一示例中,每個(gè)電子模塊可用飛線(flying lead)和兼容連接器來(lái)適合??山?jīng)由該核心模塊向每一外圍模塊提供電力,或者外圍模塊可各自包括電池或到電源的連接(例如,經(jīng)由USB)。例如,外圍模塊可提供(超過在核心模塊上所提供的)用于輸入、輸出、通信、電力、顯示、傳感和致動(dòng)的附加能力。在某些示例中,可使用共同的通信協(xié)議,但是在其他示例中,可在核心模塊和不同外圍模塊之間使用不同通信協(xié)議。軟件開發(fā)視圖102使用戶能夠編寫計(jì)算機(jī)代碼以在該設(shè)備上運(yùn)行并提供到編譯 器的前端以及提供對(duì)調(diào)試工具和模擬器的訪問。該IDE可以是基于微軟.NET微框架的,該框架允許用C#來(lái)編程設(shè)備(其可以是小型并且資源受約束的)并利用.NET微框架庫(kù)或其他高級(jí)庫(kù)所提供的高級(jí)編程原語(yǔ)。軟件開發(fā)視圖102使配置和使用單個(gè)對(duì)象(在一實(shí)施例中,其可包括從該組模塊化硬件元件中選擇的模塊)的過程自動(dòng)化。在硬件配置視圖101 (或其他視圖)中所選擇的對(duì)象所使用的任何庫(kù)和代碼存根從對(duì)象數(shù)據(jù)存儲(chǔ)106被自動(dòng)加載。當(dāng)編譯軟件時(shí),生成與該設(shè)備相關(guān)聯(lián)的多個(gè)推斷的參數(shù),諸如存儲(chǔ)該代碼所需的存儲(chǔ)器的量和執(zhí)行該代碼所需的存儲(chǔ)器的量。這些推斷的參數(shù)被存儲(chǔ)在實(shí)例化專用的數(shù)據(jù)存儲(chǔ)108中。軟件開發(fā)視圖102可生成的推斷的參數(shù)的另一示例是預(yù)期電池壽命(取決于用戶所選擇的電池)。物理設(shè)計(jì)視圖103顯示該設(shè)備的3D (三維)表示(基于所選擇的對(duì)象),該表示可包括該設(shè)備的外殼的表示。初始3D表示(例如,其是在任何用戶輸入之前在此視圖中顯示的)和外殼可在該IDE內(nèi)自動(dòng)生成。物理設(shè)計(jì)視圖允許用戶操縱此3D表示來(lái)從任何視角(perspective)查看它以及在空間中重新安排所選擇的對(duì)象。該物理設(shè)計(jì)視圖還允許用戶為該設(shè)備指定配置參數(shù)(例如,總大小約束或其他物理設(shè)計(jì)規(guī)則)或?yàn)閱蝹€(gè)對(duì)象指定配置參數(shù)(例如,顯示器必須位于該設(shè)備的所標(biāo)識(shí)的面上或者必須與特定用戶輸入模塊(例如,按鍵板)位于同一面上)。這些配置參數(shù)(當(dāng)它們與整個(gè)設(shè)備相關(guān)而不與該設(shè)備內(nèi)的特定對(duì)象相關(guān)時(shí)它們可被稱為‘全局參數(shù)’)與該物理設(shè)計(jì)視圖所生成的任何推斷的參數(shù)(諸如該設(shè)備的總大小和形狀、自動(dòng)生成的外殼的形狀等)一起被存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中。在違反任何物理設(shè)計(jì)規(guī)則的情況下(例如,所選擇的對(duì)象不能適合放入該設(shè)備的用戶指定的最大尺度內(nèi)),該物理設(shè)計(jì)視圖可把此情況的視覺化提供給用戶,例如,通過突出顯示該3D表示的部分或者向用戶顯示消息。對(duì)象數(shù)據(jù)存儲(chǔ)106存儲(chǔ)關(guān)于不同對(duì)象或?qū)ο箢惖膶?shí)例化獨(dú)立的數(shù)據(jù),這些對(duì)象可被組裝以形成設(shè)備,并且多個(gè)不同類型的數(shù)據(jù)與每一對(duì)象或?qū)ο箢愊嚓P(guān)聯(lián)地存儲(chǔ)。與特定對(duì)象相關(guān)聯(lián)地存儲(chǔ)的不同類型的數(shù)據(jù)可對(duì)應(yīng)于在該IDE內(nèi)提供的不同視圖,例如· 3D模型(其對(duì)應(yīng)于物理設(shè)計(jì)視圖103);
該對(duì)象所使用的任何軟件庫(kù)或代碼存根的細(xì)節(jié)(其對(duì)應(yīng)于軟件開發(fā)視圖102),其中特定庫(kù)/代碼存根可與該對(duì)象相關(guān)聯(lián)地存儲(chǔ),或者對(duì)該特定庫(kù)/代碼存根的引用可被存儲(chǔ);以及·硬件參數(shù)(其對(duì)應(yīng)于硬件配置視圖101),諸如以下的一個(gè)或多個(gè)令所需的電連接(例如,地、5V、UART )今任何可選電連接(例如,如果針腳X被連接,則使能附加的模塊重置能力)令任何硬件選擇(例如,對(duì)象可支持UART或I2C接口并且這些中的一個(gè)是所需的)今電線是多分支線(multi-drop line)(例如,UART)還是點(diǎn)到點(diǎn)連接(例如,I2C)的細(xì)節(jié)令功能性今可使用的連接器以及它們能插入的插口今外部連接器今連線兼容性今用戶可配置的任何參數(shù)的細(xì)節(jié)可與一對(duì)象相關(guān)聯(lián)地存儲(chǔ)的其他數(shù)據(jù),諸如·約束(例如,取決于對(duì)一對(duì)象做出哪些連接而使能的與其他對(duì)象或不同方法的不兼容性),其可按照該對(duì)象的規(guī)則集來(lái)定義; 裝載問題,諸如與將該對(duì)象在該設(shè)備的特定面上定位、相對(duì)于其他對(duì)象或外殼定位、定向敏感性(例如,某些設(shè)備可具有在設(shè)計(jì)原型時(shí)必須尊重的‘頂部’和‘底部’)等以及如何調(diào)整以自動(dòng)適應(yīng)這些問題有關(guān)的細(xì)節(jié);·裝載細(xì)節(jié),諸如裝載孔/支架等的位置;·機(jī)械強(qiáng)度;·性能數(shù)據(jù),諸如電力消耗(且這可包括不同模式(例如,醒或睡眠)的不同電力消耗值)、在睡眠時(shí)喚醒所花的時(shí)間、獲取讀數(shù)的時(shí)間(例如,對(duì)于傳感器)、耐熱性、單位轉(zhuǎn)換(例如,溫度傳感器可輸出12個(gè)比特,可使用轉(zhuǎn)換公式將其映射為。C)等;·傳感器激勵(lì)數(shù)據(jù)(如在下面參考圖6的實(shí)施例更詳細(xì)地描述的);·與該對(duì)象相關(guān)聯(lián)的變量的細(xì)節(jié),這些變量具有實(shí)例化專用值(例如,其可以是用戶指定的或在該IDE內(nèi)生成的),并且在這些值可不被指定或可被設(shè)置為初始默認(rèn)值的情況下,這些變量在此處被稱為‘對(duì)象變量’;·模擬該對(duì)象所需的任何其他數(shù)據(jù)(上面尚未指定的); 數(shù)據(jù)表單;以及 購(gòu)買信息,諸如部件號(hào)、成本、制造者和經(jīng)銷商細(xì)節(jié)、本地部件倉(cāng)庫(kù)中的存貨等。該其他數(shù)據(jù)可對(duì)應(yīng)于特定視圖中的一個(gè)或可與一個(gè)或多個(gè)視圖相關(guān)。為特定對(duì)象定義的規(guī)則可以代數(shù)形式定義,例如(A+B+C)〈Y,其中A、B、C和Y是對(duì)象變量或推斷的參數(shù),諸如電壓、電流、電容、消耗、帶寬等。這些規(guī)則本身可添加額外的約束,例如,如果Z為真,則A〈Y。與特定對(duì)象(或?qū)ο箢?相關(guān)聯(lián)的數(shù)據(jù)可以模塊化形式存儲(chǔ),以便當(dāng)新對(duì)象被開發(fā)或以其他方式變得可用于被用戶選擇以包括在正使用該IDE開發(fā)的設(shè)備內(nèi)時(shí),與新對(duì)象相關(guān)聯(lián)的模塊化數(shù)據(jù)能夠被容易地添加到對(duì)象數(shù)據(jù)存儲(chǔ)106。例如,用于一對(duì)象(或?qū)ο箢?的實(shí)例化獨(dú)立的數(shù)據(jù)可被包括在‘模塊描述’內(nèi),其中該模塊描述包括與特定對(duì)象(或?qū)ο箢?相關(guān)聯(lián)的自包含數(shù)據(jù)元素。在一示例中,模塊描述可包括zip文件夾中的多個(gè)數(shù)據(jù)文件,該zip文件夾進(jìn)一步包括XML描述,該XML描述提供了用于這些文件的包(wrapper)并標(biāo)識(shí)在這些數(shù)據(jù)文件中的每一個(gè)中所存儲(chǔ)的數(shù)據(jù)的類型。例如,模塊描述可包括3D模型、軟件庫(kù)的列表、硬件參數(shù)集合、規(guī)則集合、以及對(duì)象變量的列表。實(shí)例化專用數(shù)據(jù)存儲(chǔ)108存儲(chǔ)對(duì)正在使用該IDE開發(fā)的設(shè)備專用的數(shù)據(jù),包括推斷的參數(shù)(其由這些視圖中的一個(gè)生成并包括已被選擇以形成原型的一部分的對(duì)象的細(xì)節(jié))以及全局參數(shù)(其可由用戶指定)。3D配置的細(xì)節(jié)和已編寫以在該原型上運(yùn)行的軟件的細(xì)節(jié)也可被存儲(chǔ)在此數(shù)據(jù)存儲(chǔ)108內(nèi)或可被存儲(chǔ)在別處(例如,在本地盤上、在文件共享上、或在版本控制儲(chǔ)存庫(kù)/數(shù)據(jù)庫(kù)中)。全局參數(shù)(也可被稱為全局約束)的示例可包括原型的最大尺度(例如厚度)、所需的電池壽命、不使用風(fēng)扇的事實(shí)(其可影響可用于被用戶選擇的組件,例如,通過將可用處理器限制為產(chǎn)生小熱量的那些處理器) 等。盡管將全局參數(shù)描述為是經(jīng)由物理設(shè)計(jì)視圖輸入的,然而要理解,全局參數(shù)可替代地經(jīng)由另一視圖輸入,或者可提供專用視圖來(lái)輸入這些全局參數(shù)。實(shí)例化專用數(shù)據(jù)存儲(chǔ)108可支持版本化(versioning),以便能夠?yàn)樘囟?xiàng)目存儲(chǔ)軟件和/或硬件配置的不同版本。這可使用戶能夠退回到先前的版本,例如,在更新(例如,改變或添加硬件、在空間中重新安排組件和/或修改代碼)導(dǎo)致問題的情況下。如上所述,兩個(gè)庫(kù)對(duì)象數(shù)據(jù)存儲(chǔ)106和實(shí)例化專用數(shù)據(jù)存儲(chǔ)108每一個(gè)均存儲(chǔ)與在該IDE內(nèi)并且在圖I中示出的布置中的視圖中的每一個(gè)相關(guān)的數(shù)據(jù),每個(gè)存儲(chǔ)均能由每個(gè)視圖訪問。在其他布置中,來(lái)自存儲(chǔ)106、108之一 /兩者的數(shù)據(jù)可經(jīng)由另一元件(諸如中心儲(chǔ)存庫(kù)(例如,如在圖9和圖11中所示))對(duì)每一視圖可用。約束解決器104檢查參數(shù)不相抵觸,其中這些參數(shù)可包括以下的一些或全部通過視圖推斷的參數(shù);用戶指定的參數(shù)(其是實(shí)例化專用的并存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中);以及實(shí)例化獨(dú)立的參數(shù),例如,與已被選擇的特定對(duì)象相關(guān)聯(lián)的參數(shù),其被存儲(chǔ)在對(duì)象數(shù)據(jù)存儲(chǔ)106中。圖2示出約束解決器(constraint resolver) 104的操作的示例方法的流程圖。約束解決器104接收實(shí)例化專用參數(shù)(框202),所述實(shí)例化專用參數(shù)包括形成設(shè)備設(shè)計(jì)的一部分的特定對(duì)象(或?qū)ο箢?的細(xì)節(jié)?;谶@些參數(shù),約束解決器還從對(duì)象數(shù)據(jù)存儲(chǔ)訪問該特定對(duì)象的實(shí)例化獨(dú)立的參數(shù)(框204)。實(shí)例化獨(dú)立的參數(shù)可包括與所選擇的對(duì)象相關(guān)聯(lián)的約束/規(guī)則的細(xì)節(jié)。實(shí)例化專用參數(shù)可響應(yīng)于由約束解決器發(fā)送到該實(shí)例化專用數(shù)據(jù)存儲(chǔ)的周期性請(qǐng)求而從該數(shù)據(jù)存儲(chǔ)中接收(在框202),替代地,實(shí)例化專用數(shù)據(jù)存儲(chǔ)或視圖101-103中的一個(gè)可在這些參數(shù)被生成或更新時(shí)或在視圖改變時(shí)(例如,由用戶發(fā)起的)將這些參數(shù)推送到約束解決器。約束解決器104的監(jiān)視可以是周期性的(如在所述示例中),或者該監(jiān)視可以是連續(xù)的。在已經(jīng)接收/訪問與設(shè)備設(shè)計(jì)相關(guān)聯(lián)的參數(shù)的情況下(在已經(jīng)到達(dá)設(shè)計(jì)中的特定階段并且在該設(shè)備設(shè)計(jì)可能沒有完成的情況下),約束解決器確定在所述參數(shù)中的任何參數(shù)之間是否存在沖突(框206),并且如果存在沖突,則約束解決器可向用戶標(biāo)志(flag)該沖突(框208),例如,經(jīng)由該IDE的圖形用戶界面(GUI),或者替代地,約束解決器可嘗試自動(dòng)修復(fù)該沖突(框210)。在一示例中,該沖突可通過參數(shù)值的比較來(lái)確定,而在另一示例中,可使用與對(duì)象相關(guān)聯(lián)的規(guī)則。在一進(jìn)一步的示例中,可組合與多個(gè)對(duì)象相關(guān)聯(lián)的參數(shù)(例如,將設(shè)備內(nèi)的每個(gè)對(duì)象的功率消耗加總并將其與可作為全局參數(shù)指定的該設(shè)備的最大功率消耗相比較)。重復(fù)該過程(例如,周期性地或響應(yīng)于接收新的實(shí)例化專用參數(shù),如上所述),如由點(diǎn)畫線箭頭20所指示的。在經(jīng)由⑶I向用戶通知沖突的情況下,可使用專門的GUI屏,或替代地,可使用這些視圖中的一個(gè)。在一示例中,在所選擇的對(duì)象不能適合放入該原型的用戶指定的最大尺度時(shí),可在物理設(shè)計(jì)視圖中用圖形顯示這一點(diǎn)(例如,通過突出顯示該原型的延伸超出用戶指定參數(shù)所設(shè)置的邊界的部分)。在另一示例中,沖突解決器可接收該設(shè)備在執(zhí)行在軟件開發(fā)視圖中編寫的代碼時(shí)的功率消耗的推斷的參數(shù)。約束解決器可訪問所選擇的電池對(duì)象的數(shù)據(jù)并標(biāo)識(shí)該電池所提供的電力是不足的。在此情況下,該IDE向用戶警告該沖突。所使用的自動(dòng)解決沖突(框210)的方法可取決于該原型設(shè)計(jì)內(nèi)已被選擇并配置的特定對(duì)象或?qū)ο箢悺T谝皇纠?,在?duì)象類‘存儲(chǔ)器’已被選擇(例如,經(jīng)由硬件配置視圖)且軟件開發(fā)視圖生成存儲(chǔ)該代碼所需的存儲(chǔ)器量的推斷的參數(shù)的情況下,如果該對(duì)象類包括不夠小的存儲(chǔ)器元件,可通過更新對(duì)象選擇來(lái)指定足夠大的存儲(chǔ)器元件或通過選擇足夠大到滿足該推斷的參數(shù)的特定存儲(chǔ)器元件來(lái)解決該沖突。對(duì)不同對(duì)象(或?qū)ο箢惖淖蛹?的這種選擇可由沖突解決器本身執(zhí)行,或者替代地,該沖突解決器可觸發(fā)這些視圖中的一個(gè) 來(lái)運(yùn)行自動(dòng)決策算法來(lái)做出此確定。在沖突與存儲(chǔ)器大小相關(guān)的此特定示例中,沖突解決器可觸發(fā)(在框210中)硬件配置視圖101來(lái)選擇適當(dāng)?shù)拇鎯?chǔ)器元件來(lái)解決參數(shù)中的沖突。如果此解決方案不可能,則該IDE可向用戶標(biāo)志該錯(cuò)誤(如上所述)。在某些情形下,在另一視圖中嘗試沖突解決是可能的(例如,在沖突的參數(shù)受到該設(shè)計(jì)的多個(gè)方面的影響的情況下)。約束解決器104的使用以及在某些示例中由該IDE的視圖對(duì)推斷的參數(shù)(其可被存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中)的生成允許對(duì)要在該IDE內(nèi)的視圖間共享的相關(guān)設(shè)計(jì)要求的訪問。約束解決器和數(shù)據(jù)存儲(chǔ)提供了框架,通過該框架用戶在一個(gè)視圖中所選擇的設(shè)計(jì)決策致使其他視圖中的可用選項(xiàng)/操作反映這些可能性。這具有跨越設(shè)備設(shè)計(jì)的先前未鏈接的方面而擴(kuò)展智能的效果。圖3是示出圖I中示出的IDE的一種替代表示的示意圖。IDE 300包括如上所述的對(duì)象數(shù)據(jù)存儲(chǔ)106、實(shí)例化專用數(shù)據(jù)存儲(chǔ)108以及約束解決器104。該IDE還包括多個(gè)引擎301-303,所述引擎提供圖I中視圖101-103后的計(jì)算。在本示例中,硬件配置引擎301與硬件配置視圖101相關(guān)聯(lián),軟件開發(fā)引擎302與軟件開發(fā)視圖102相關(guān)聯(lián),而物理設(shè)計(jì)引擎303與物理設(shè)計(jì)視圖103相關(guān)聯(lián)。盡管在本示例中在引擎和視圖間存在1:1關(guān)系,然而這僅是作為示例,而在其他實(shí)施例中,單一引擎可以與多個(gè)視圖相關(guān)聯(lián),反之亦然。該IDE進(jìn)一步包括用戶界面304,該用戶界面提供被顯示給用戶并且用戶通過其與視圖101-103交互(并因此與引擎301-303交互)以設(shè)計(jì)設(shè)備(例如,原型)的⑶I。如上所述,該用戶界面允許用戶容易地在不同視圖(其也可被稱為表示)間切換,每個(gè)視圖提供允許數(shù)據(jù)的不同表示被編輯的工具(例如,代碼編輯器、傳感器輸入流/交互編輯器以及3D設(shè)計(jì)編輯器)。要理解,可存在用于在視圖間移動(dòng)的許多不同交互可能性,諸如雙擊、右鍵點(diǎn)擊、Alt-Tab 和 Ctrl-Tab。圖3中的箭頭示出該IDE中的元件間的數(shù)據(jù)路徑的示例,然而,要理解,這僅是作為示例,而數(shù)據(jù)可在不同于圖3中所示的那些的不同路徑/方向中以及在不同元件間流動(dòng)。
圖3還示出了 IDE 300的多個(gè)輸入和輸出306-308。如上面結(jié)合圖I所述,對(duì)該IDE的輸入包括用戶對(duì)對(duì)象306的選擇以及設(shè)備307上的任何全局約束。取決于特定實(shí)現(xiàn),可通過該IDE內(nèi)的各視圖中的任何視圖來(lái)指定全局參數(shù),或者可提供該GUI中的專門部分來(lái)使用戶能夠指定全局參數(shù)。在一示例中,所述全局參數(shù)可從外部源導(dǎo)入。來(lái)自該IDE的輸出包括用于使該設(shè)備能夠被建造的制造數(shù)據(jù)308。該制造數(shù)據(jù)例如可包括以下的一項(xiàng)或多項(xiàng)組件列表309、固件310和可用于制造該設(shè)備的外殼的數(shù)據(jù)文件311。在某些實(shí)施例中,該固件可被直接輸出到處理器,而在其他實(shí)施例中,該固件可被輸出以使得用戶能將其加載到處理器上。在某些示例中,可通過輸出生成器模塊在該構(gòu)造過程中對(duì)用戶進(jìn)行引導(dǎo)。下面參考圖8更詳細(xì)地描述了制造數(shù)據(jù)和輸出生成器模塊。圖4包括分別示出硬件配置引擎301和軟件開發(fā)引擎302的操作的示例方法的兩個(gè)流程圖401-402。第一個(gè)流程圖401示出了硬件配置引擎301的操作的示例方法。該方法包括基于任何實(shí)例化專用參數(shù)來(lái)確定可用對(duì)象(或?qū)ο箢?的集合(框411),而這可涉及訪問存儲(chǔ)在數(shù)據(jù)存儲(chǔ)108中的參數(shù)。該可用對(duì)象集合隨后被顯示給用戶(框412)以使用戶能夠做出選擇。該引擎接收選擇一個(gè)或多個(gè)對(duì)象的用戶輸入(框413)并隨后從對(duì)象數(shù)據(jù)存 儲(chǔ)106訪問每個(gè)對(duì)象的硬件相關(guān)數(shù)據(jù)(框414)。該引擎還可接收配置對(duì)象的用戶輸入(框417),并且在接收該硬件相關(guān)數(shù)據(jù)(在框414中)后此配置可被使能。該配置數(shù)據(jù)導(dǎo)致用戶指定的參數(shù),所述參數(shù)被存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中(框418)?;谒x擇的對(duì)象、硬件數(shù)據(jù)和任何配置數(shù)據(jù),該引擎計(jì)算任何推斷的參數(shù)(框415)并將它們存儲(chǔ)在參數(shù)存儲(chǔ)中(框416)。已經(jīng)選擇了對(duì)象(框413)和/或創(chuàng)建了推斷的參數(shù)(在框415中)后,這可影響用戶能繼續(xù)選擇的可用對(duì)象的集合,因此可重復(fù)該方法的各方面(如由點(diǎn)畫線箭頭41所指示的)。硬件配置引擎301可生成的推斷的參數(shù)的示例包括設(shè)備從睡眠完全喚醒的時(shí)間(例如,基于構(gòu)成該設(shè)備的對(duì)象的喚醒時(shí)間)、該設(shè)備內(nèi)的任何共享總線(例如I2C)的估計(jì)的剩余容量(例如,如果視頻模塊和另一傳感器兩者均使用該總線則有狀態(tài)數(shù)據(jù)率可能超出該總線的已知容量)、一對(duì)象連接到另一對(duì)象的特定方式(例如,當(dāng)超過一個(gè)選項(xiàng)可用時(shí))
坐寸ο圖4中的第二流程圖402示出了軟件開發(fā)引擎302的操作的示例方法。該方法包括訪問數(shù)據(jù)存儲(chǔ)108中的任何實(shí)例化專用參數(shù)(框421),并且如果已選擇了任何對(duì)象(例如,在硬件配置視圖中),則加載用于與所述特定對(duì)象進(jìn)行接口的相關(guān)庫(kù)和代碼存根(框422)。這些庫(kù)和代碼存根,或者對(duì)它們的引用,被存儲(chǔ)在與該特定對(duì)象相關(guān)聯(lián)的對(duì)象數(shù)據(jù)存儲(chǔ)106中。與所選擇的對(duì)象相關(guān)的其他數(shù)據(jù)也可從該對(duì)象數(shù)據(jù)存儲(chǔ)106訪問,而這種數(shù)據(jù)的一個(gè)示例可以是對(duì)象的定向敏感性(例如,加速度計(jì)或任何方向傳感器)以及如何基于該對(duì)象在該設(shè)備內(nèi)的實(shí)際定向的推斷的參數(shù)(如由物理設(shè)計(jì)視圖103生成的)用軟件對(duì)其進(jìn)行矯正??山邮斩x代碼的用戶輸入(框423),該代碼在從用戶接收到請(qǐng)求后(例如,用戶可點(diǎn)擊軟件開發(fā)視圖302中的GUI內(nèi)的‘編譯’按鈕)可被編譯(框424)。如果該用戶編寫的代碼(如在框423接收的)包括對(duì)先前未選擇的新對(duì)象的引用(如基于在框421中訪問的實(shí)例化專用參數(shù)確定的),則軟件開發(fā)引擎302更新所述實(shí)例化專用參數(shù)來(lái)包括新對(duì)象的選擇(框429),將更新后的參數(shù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)108中(框430)并加載所需的任何附加的庫(kù)和代碼存根(框422)。
在編譯時(shí)(在框424中),軟件開發(fā)引擎創(chuàng)建推斷的參數(shù)(框425)并將這些參數(shù)存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中(框426)。如上所述,軟件開發(fā)引擎可生成的推斷的參數(shù)的示例是存儲(chǔ)該代碼所需的存儲(chǔ)器的量或執(zhí)行該代碼所需的存儲(chǔ)器的量。所生成的推斷的參數(shù)可取決于特定引擎內(nèi)的活動(dòng)并且還取決于其他實(shí)例化專用的和/或?qū)嵗?dú)立的參數(shù)。例如,可基于所選擇的電池對(duì)象、用于該對(duì)象的實(shí)例化獨(dú)立的參數(shù)以及所編寫的代碼來(lái)生成該原型的估計(jì)電池壽命的推斷的參數(shù)。該方法還可包括啟動(dòng)調(diào)試工具(框427)和/或模擬器(框428)。與編譯步驟一樣(框424),該調(diào)試工具和/或模擬器可響應(yīng)于用戶請(qǐng)求(例如,通過點(diǎn)擊該⑶I內(nèi)的‘調(diào)試’或‘模擬器’按鈕)而啟動(dòng)(在框427和428中)。圖5是示出物理設(shè)計(jì)引擎303的操作的示例方法的流程圖。物理設(shè)計(jì)引擎303訪問存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中的任何實(shí)例化專用參數(shù)(框501),特別而言,物理設(shè)計(jì)引擎訪問已被選擇以形成該設(shè)備的一部分的對(duì)象的細(xì)節(jié)。每個(gè)被選擇的對(duì)象的3D模型(或?qū)?D模型的引用)隨后被從對(duì)象數(shù)據(jù)存儲(chǔ)106訪問(框502)并被用于生成并顯示該設(shè)備的3D表示(框503)。用戶可通過提供操縱該3D模型的用戶輸入(在框504中接收)和/或通 過指定與該設(shè)備相關(guān)聯(lián)的設(shè)計(jì)規(guī)則(其也可以是全局參數(shù))(在框505中接收的)來(lái)與引擎303交互。這種用戶輸入的一示例會(huì)是指定該設(shè)備的最大厚度或顯示器的所需位置的用戶輸入。在接收指定設(shè)計(jì)規(guī)則(或全局參數(shù))的用戶輸入的情況下,這些用戶指定的參數(shù)被存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中(框506)。作為任何用戶輸入的結(jié)果(在框504或505中),該3D模型可以被更新而且更新后的模型可被顯示給用戶(框507),并且可為多個(gè)連續(xù)的輸入重復(fù)此過程(如由點(diǎn)畫線箭頭51所指示的)。物理設(shè)計(jì)引擎303基于所得到的3D模型創(chuàng)建推斷的參數(shù)(框508)并將它們存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)中(框509)。物理設(shè)計(jì)引擎可生成的推斷的參數(shù)的一個(gè)示例是該設(shè)備的尺度。圖6是用于設(shè)備的快速開發(fā)的另一 IDE的示意圖。圖6中示出的IDE除了圖I中示出并在上面描述的元件之外還包括附加的視圖,傳感器模擬/交互視圖601。與上面描述的IDE —樣,用戶在開發(fā)設(shè)備時(shí)可以任何次序選擇這些視圖,并且可在他們選擇時(shí)在各視圖間切換,并且如此圖6中示出的IDE也提供了一種靈活的非線性的設(shè)備設(shè)計(jì)方式。如圖I中一樣,視圖101-103、601被提供各視圖間同步的約束解決器104鏈接,使得用戶在一個(gè)視圖中對(duì)設(shè)計(jì)所做的改變反映在其他視圖中。傳感器模擬/交互視圖601允許用戶訪問存儲(chǔ)在對(duì)象數(shù)據(jù)存儲(chǔ)106中的傳感器數(shù)據(jù)(例如,與形成該設(shè)備的一部分的特定對(duì)象相關(guān)聯(lián)的)并且模擬響應(yīng)于該傳感器數(shù)據(jù)或響應(yīng)于傳感器數(shù)據(jù)的組合的該設(shè)備的操作(例如,基本上同時(shí)鍛煉(exercise)該設(shè)備的不同部分的多個(gè)流)。該設(shè)備的表現(xiàn)的細(xì)節(jié)可被顯示給用戶且用戶可以能夠指定在模擬期間要監(jiān)視的參數(shù)。該視圖在該模擬運(yùn)行時(shí)收集表現(xiàn)數(shù)據(jù),且這可以被實(shí)時(shí)地或在模擬完成后顯示給用戶。存在該視圖可使用戶能夠做的多個(gè)其他操作,諸如設(shè)計(jì)傳感器流、模擬對(duì)用戶交互的響應(yīng)、指定測(cè)試?yán)⑴c該設(shè)備交互以及記錄交互,而在下面更詳細(xì)地描述了這些。可在模擬中使用的傳感器數(shù)據(jù)的示例可包括· GPS信息——在高等級(jí)或低等級(jí)的預(yù)先錄制的序列 加速度計(jì)數(shù)據(jù)——包括使用代理加速度計(jì)來(lái)記錄并隨后回放諸如用于實(shí)際設(shè)計(jì)的設(shè)備的虛擬傳感器數(shù)據(jù)的此類數(shù)據(jù)的可能性
·按鈕按下、觸摸等·溫度 無(wú)線電分組通信等·藍(lán)牙、WiFi 或 Zigbee 通信附加于(或代替)模擬響應(yīng)于從對(duì)象數(shù)據(jù)存儲(chǔ)訪問的傳感器數(shù)據(jù)的設(shè)備的表現(xiàn),該表現(xiàn)可響應(yīng)于用戶交互或交互序列來(lái)模擬。在一示例中,該視圖可向用戶提供到該設(shè)備的虛擬接口(例如,原型移動(dòng)設(shè)備的圖形表示,其中用戶可點(diǎn)擊按鈕來(lái)模擬該移動(dòng)電話的操作),以便該用戶可與虛擬設(shè)備交互。在另一示例中,用戶可以能夠與連接到該系統(tǒng)的實(shí)際的硬件對(duì)象交互。在任一情況下,交互序列可被該IDE記錄以便該交互序列隨后可被用于模擬或該模擬可在交互進(jìn)行時(shí)實(shí)時(shí)地運(yùn)行。所記錄的交互序列數(shù)據(jù)可被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)中,以便在需要時(shí)該交互序列可用于特定設(shè)備的未來(lái)測(cè)試。在某些示例中,該數(shù)據(jù)可以是實(shí)例化獨(dú)立的并且可被存儲(chǔ)在對(duì)象數(shù)據(jù)存儲(chǔ)106中。 該視圖使得用戶能夠設(shè)計(jì)傳感器流和/或測(cè)試?yán)栽谠撛O(shè)備的模擬/測(cè)試中使用。傳感器流包括該設(shè)備所接收的輸入的細(xì)節(jié)(其可包括交互序列)和/或該設(shè)備所經(jīng)歷的狀況(例如,環(huán)境狀況),且該測(cè)試?yán)▊鞲衅髁骱晚憫?yīng)于所述傳感器流所預(yù)期的該設(shè)備的表現(xiàn)(或輸出)的細(xì)節(jié)。例如,如果預(yù)期能夠多點(diǎn)觸摸的觸摸屏設(shè)備能夠檢測(cè)特定大小的指尖并且在由定義的最小距離分開的觸摸之間進(jìn)行區(qū)分,則可開發(fā)指定一組觸摸事件并定義預(yù)期的檢測(cè)到的信號(hào)的測(cè)試?yán)?。測(cè)試?yán)脑O(shè)計(jì)可以通過數(shù)據(jù)/數(shù)字/向量的人工輸入、或使用生成(例如)特殊波形的實(shí)用程序(utilities) /工具、或通過使用實(shí)時(shí)的人工代理激勵(lì)。當(dāng)運(yùn)行測(cè)試?yán)龝r(shí),該視圖把結(jié)果與定義的輸出進(jìn)行比較并可經(jīng)由該GUI向用戶標(biāo)志任何差異。該IDE可包括與傳感器模擬/交互視圖601相關(guān)聯(lián)的模擬引擎。圖7示出模擬引擎的操作的示例方法的流程圖。該模擬引擎訪問傳感器數(shù)據(jù)(框701),并且如上所述,可能有此傳感器數(shù)據(jù)的許多不同源。它可以是從對(duì)象數(shù)據(jù)存儲(chǔ)106讀取的,在用戶與真正的或虛擬的硬件交互時(shí)記錄的,或者用戶指定的(并且通過用戶輸入接收的)。隨后在運(yùn)行對(duì)該設(shè)備的模擬時(shí)使用該數(shù)據(jù)(框702)。在運(yùn)行模擬時(shí),模擬引擎使用存儲(chǔ)在對(duì)象數(shù)據(jù)存儲(chǔ)106中的與構(gòu)成該設(shè)備的特定對(duì)象相關(guān)的數(shù)據(jù)以及來(lái)自實(shí)例化專用數(shù)據(jù)存儲(chǔ)108的實(shí)例化專用數(shù)據(jù)。隨后可向用戶顯示模擬結(jié)果(框703),或在另一示例中,可將該結(jié)果與所需的結(jié)果進(jìn)行比較(其中在框704中訪問這些結(jié)果并在框705中執(zhí)行比較)。隨后可向用戶顯示比較的結(jié)果(框706),而在某些情況下這些結(jié)果可簡(jiǎn)單地表示對(duì)所定義的測(cè)試的通過或失敗。在原型不滿足測(cè)試?yán)那闆r下(例如,響應(yīng)于輸入它沒有給出所需的輸出),可將這直接地或通過傳感器模擬/交互視圖601所生成的推斷的參數(shù)反饋到約束解決器104,并存儲(chǔ)在參數(shù)存儲(chǔ)108中。約束解決器104隨后可嘗試以與上面描述的參數(shù)間的沖突類似的方式解決此問題。傳感器模擬/交互視圖可被認(rèn)為為該設(shè)備提供測(cè)試環(huán)境。通過提供測(cè)試環(huán)境(正被設(shè)計(jì)的富含傳感器的設(shè)備可在其中在設(shè)計(jì)階段被“鍛煉”),原本不會(huì)變得明顯的許多問題會(huì)被凸顯。第一個(gè)示例可以是某個(gè)外部傳感器激勵(lì)序列使該設(shè)備的功率消耗性能能被更精確地測(cè)量。第二個(gè)示例是外部傳感器中斷的某些異步序列能導(dǎo)致設(shè)備鎖住或用戶界面中的不良表現(xiàn)/不響應(yīng)的情況,例如可能發(fā)現(xiàn)在某些加速閾值處向主處理器提供樣本中斷的加速度計(jì)由于模擬的運(yùn)動(dòng)輸入而隨著時(shí)間在某些加速度情況下太快地消耗電池。像其他視圖101-103 —樣,傳感器模擬/交互視圖601可生成推斷的參數(shù)并將它們存儲(chǔ)在數(shù)據(jù)存儲(chǔ)108中。傳感器模擬/交互視圖可生成的推斷的參數(shù)的示例包括性能參數(shù),諸如電力消耗或?qū)μ囟?lì)的響應(yīng)。圖8是用于設(shè)備的快速開發(fā)的進(jìn)一步IDE的示意圖。與圖6相比,圖8中示出的IDE包括兩個(gè)附加的元件硬件檢測(cè)模塊801和輸出生成器模塊802。要理解,IDE可包括這些附加的元件中的任一個(gè),并且IDE可包括這些附加的元件中的一個(gè)或兩個(gè)而不包括傳感器模擬/交互視圖601。這兩個(gè)附加的元件將在以下更詳細(xì)地描述。硬件檢測(cè)模塊801允許用戶通過將實(shí)際的硬件對(duì)象(諸如上面描述的模塊化硬件元件)連接在一起來(lái)在IDE內(nèi)構(gòu)造設(shè)備。當(dāng)用戶將所述實(shí)際硬件對(duì)象中的至少一個(gè)(諸如來(lái)自模塊化硬件元件集合的核心模塊)連接到硬件檢測(cè)模塊801 (例如,經(jīng)由USB)時(shí),該模塊自動(dòng)檢測(cè)哪些模塊被連接并更新硬件配置視圖101。此檢測(cè)過程可使用存儲(chǔ)在對(duì)象數(shù)據(jù)存 儲(chǔ)106中的數(shù)據(jù),例如,在特定模塊具有定義的地址且硬件檢測(cè)模塊801檢測(cè)該地址的情況下,對(duì)象數(shù)據(jù)存儲(chǔ)106可用于搜索與檢測(cè)到的地址相對(duì)應(yīng)的模塊。在接收到標(biāo)識(shí)連接的模塊的數(shù)據(jù)后,硬件配置視圖101更新實(shí)例化專用參數(shù)并生成推斷的參數(shù)(如上所述)。替代地,硬件檢測(cè)模塊801可更新實(shí)例化專用參數(shù)并將這些參數(shù)直接存儲(chǔ)在實(shí)例化專用數(shù)據(jù)存儲(chǔ)108中。硬件檢測(cè)模塊801可使用相機(jī)(例如,網(wǎng)絡(luò)攝像頭)來(lái)標(biāo)識(shí)硬件對(duì)象的集合來(lái)代替(或附加于)經(jīng)由電連接來(lái)檢測(cè)硬件對(duì)象的存在。在這種情況下,對(duì)象數(shù)據(jù)存儲(chǔ)106可存儲(chǔ)與每個(gè)對(duì)象(或?qū)ο箢?相關(guān)聯(lián)的代表性圖形,而硬件檢測(cè)模塊801可使用圖像分析算法來(lái)標(biāo)識(shí)捕捉的圖像(或圖像序列)內(nèi)的元件并在對(duì)象數(shù)據(jù)存儲(chǔ)106中搜索匹配的(或類似的)圖像。在某些實(shí)施例中,用戶可以能夠使用硬件檢測(cè)模塊801來(lái)檢測(cè)并存儲(chǔ)對(duì)象的第一集合,并然后隨后檢測(cè)對(duì)象的第二集合,以便該設(shè)備包括對(duì)象的這兩個(gè)集合的組合。對(duì)于其中將所有對(duì)象放入相機(jī)的視野內(nèi)不可能,或者其中將所有對(duì)象連接到核心模塊不可能(例如,由于連接器的數(shù)量的限制或連接引線的長(zhǎng)度的限制)的復(fù)雜設(shè)備,這可能是有用的。輸出生成器模塊802生成在制造該設(shè)備時(shí)使用的、并且在某些示例中可在構(gòu)造/輸出過程中引導(dǎo)用戶(例如,使用一系列提示(prompt)和/或問題)的數(shù)據(jù)308。如上面參考圖3所述的,輸出的數(shù)據(jù)可包括以下的一項(xiàng)或多項(xiàng)組件列表309、固件310和可用于制造原型的外殼的數(shù)據(jù)文件311。在一示例中,輸出生成器模塊802允許用戶指定用于原型外殼的制造技術(shù)(例如,激光切割或3D打印),并且所選擇的技術(shù)影響數(shù)據(jù)文件311的格式。在一示例中,可從由輸出生成器模塊802顯示給用戶的多個(gè)選項(xiàng)中選擇制造技術(shù),并且在用戶選擇激光切割作為方法的情況下,輸出生成器模塊802使外殼的設(shè)計(jì)(其是由物理設(shè)計(jì)引擎303自動(dòng)生成的)平坦為可被開槽(slot)以及粘合在一起的側(cè)面,并且產(chǎn)生適于輸入到激光切割機(jī)的輸出文件。在某些實(shí)施例中,輸出文件可直接地或經(jīng)由網(wǎng)絡(luò)連接(諸如圖13中示出的通信接口 1315)輸出到激光切割機(jī)或其他制造設(shè)備(例如,3D打印機(jī))。輸出生成器模塊802附加地編譯軟件代碼(如果該代碼尚未被編譯的話)并產(chǎn)生將在該設(shè)備內(nèi)的處理器上運(yùn)行的固件。在某些示例中,如果用戶經(jīng)由USB將處理器連接到該IDE (并且可提示用戶這樣做),可通過輸出生成器模塊802直接對(duì)處理器編程。在其他示例中,或?qū)τ诙?jí)處理器,輸出生成器模塊802可輸出固件文件,固件文件可被加載到處理器上(例如,使用第三方工具)。在制造多個(gè)設(shè)備的情況下,輸出生成器設(shè)備802可并行地對(duì)多個(gè)處理器編程或者可依序?qū)λ鼈冞M(jìn)行編程,在完成每次迭代之后提示用戶斷開一個(gè)處理器模塊的連接并連接另一個(gè)處理器。在一示例中,輸出生成器模塊802可響應(yīng)于接收‘打印n (print η)’用戶輸入(其中η是所需的設(shè)備的數(shù)量),致使固件編程器被啟動(dòng)η次,制造 設(shè)備(例如激光切割機(jī)或3D打印機(jī))產(chǎn)生η個(gè)物理設(shè)計(jì)(例如,設(shè)備外殼的η個(gè)副本),所需部分的自動(dòng)庫(kù)存計(jì)數(shù)、硬件和軟件的自動(dòng)打共同標(biāo)簽(co-lebel)以便物理外殼標(biāo)簽和軟件版本/序列號(hào)標(biāo)簽同步等。除了生成在制造設(shè)備時(shí)使用的數(shù)據(jù)308并輸出該數(shù)據(jù)之外,輸出生成器模塊802還可生成‘項(xiàng)目存檔’輸出,該項(xiàng)目存檔輸出包括任何存儲(chǔ)的版本、測(cè)試結(jié)果和與開發(fā)設(shè)備的特定項(xiàng)目相關(guān)的其他數(shù)據(jù)的細(xì)節(jié)。該存檔數(shù)據(jù)隨后可存儲(chǔ)在該IDE的外部,以防在未來(lái)需要該存檔數(shù)據(jù)。此處描述的方法可極大地減少生產(chǎn)設(shè)備(例如,原型設(shè)備)所花的時(shí)間長(zhǎng)度。在使用模塊化硬件(如上所述的)并且輸出生成器模塊802輸出用于使用諸如激光切割或3D打印等快速技術(shù)生產(chǎn)外殼的數(shù)據(jù)文件的實(shí)施例中,在僅8小時(shí)內(nèi)從原始主意到生成多個(gè)原型(例如5個(gè))是可能的。此外,這些原型與第一代原型的正常情況相比明顯地更穩(wěn)健并且更精細(xì)。這具有減少所需的迭代的數(shù)量的效果,這減少了思想和最終設(shè)計(jì)之間的總的時(shí)間標(biāo)尺,而且減少了項(xiàng)目成本。圖9示出用于設(shè)備的快速開發(fā)的進(jìn)一步示例IDE的示意圖。在本示例中,該IDE包括同步元件902,該同步元件保持正在開發(fā)的設(shè)備的當(dāng)前構(gòu)造狀態(tài)的工作數(shù)據(jù)集。該數(shù)據(jù)集包括實(shí)例化獨(dú)立的和實(shí)例化專用的兩種數(shù)據(jù),并且因此同步元件902能被認(rèn)為是包括實(shí)例化專用數(shù)據(jù)存儲(chǔ)108 (如在圖9中所示)。同步元件902進(jìn)一步包括約束解決器104。圖10是同步元件902的操作的示例方法的流程圖。同步元件902從視圖101-103中的一個(gè)或多個(gè)接收實(shí)例化專用數(shù)據(jù)(框1002)。響應(yīng)于視圖內(nèi)的用戶選擇(其可選擇新對(duì)象或?qū)е峦茢嗟膮?shù)的生成或更新)或在視圖中的變化(例如,如由用戶發(fā)起的)后,可從視圖接收實(shí)例化專用數(shù)據(jù)(在框1002中)。所接收的數(shù)據(jù)包括形成設(shè)備設(shè)計(jì)的一部分的特定對(duì)象(或?qū)ο箢?的細(xì)節(jié),并且還可包括視圖生成的其他推斷的參數(shù)。同步元件902維護(hù)正在開發(fā)的設(shè)備的表示并因此加載每個(gè)所標(biāo)識(shí)的對(duì)象或?qū)ο箢惖哪K描述(框1004)。同步元件902可包括庫(kù)管理器904,該庫(kù)管理器選擇特定的模塊描述來(lái)從對(duì)象數(shù)據(jù)存儲(chǔ)106加載。與同步元件維護(hù)的設(shè)備表示相關(guān)的數(shù)據(jù)在需要時(shí)被傳遞到所述視圖(框1005),這可在圖10中所示的流程圖中的任何點(diǎn)處執(zhí)行多次。同步元件902可包括系統(tǒng)管理器906,該系統(tǒng)管理器基于工作數(shù)據(jù)集內(nèi)的模塊描述來(lái)執(zhí)行將約束推送回每個(gè)視圖。提供給視圖的數(shù)據(jù)可包括實(shí)例化獨(dú)立的和/或?qū)嵗瘜S玫臄?shù)據(jù)。在一示例中,庫(kù)管理器904可初始地拉入通用模塊描述,例如,對(duì)象的類或子類的模塊描述,并且逐漸地,隨著設(shè)備內(nèi)的對(duì)象的選擇被變窄,可將更具體的模塊描述加載到工作數(shù)據(jù)集中。如上所述,對(duì)象的模塊描述可包括一個(gè)或多個(gè)‘對(duì)象變量’的細(xì)節(jié),所述對(duì)象變量可具有實(shí)例化專用的值。當(dāng)從視圖接收數(shù)據(jù)時(shí)(在框1002中),同步元件更新這些變量的值(框1006)。對(duì)象變量的值可作為所述視圖之一內(nèi)的推斷的參數(shù)而被生成,或者該值可由同步元件基于也包含在模塊描述內(nèi)的一個(gè)或多個(gè)推斷的參數(shù)和/或規(guī)則來(lái)計(jì)算。在框1005中可將一個(gè)或多個(gè)對(duì)象變量的值傳遞到視圖。在維護(hù)正在開發(fā)的設(shè)備的表示時(shí),同步元件使用存儲(chǔ)在所標(biāo)識(shí)的對(duì)象的模塊描述中的任何規(guī)則。這些規(guī)則例如可提供視圖之間的鏈接,例如,通過提供將硬件配置(例如,連接哪些插口)映射到在軟件代碼中使能的哪些方法的規(guī)則。在一實(shí)際示例中,作為SD卡讀取器的對(duì)象可具有一規(guī)則,該規(guī)則指定如果一根線被連接則使能讀和寫方法,但是如果兩根線被連接,則還使能檢查該卡是否存在的方法以及確定該卡是否被寫保護(hù)的方法。在另一示例中,同步元件902可使用規(guī)則來(lái)將一對(duì)象變量轉(zhuǎn)換為視圖理解的參數(shù)或執(zhí)行其他參數(shù)的翻譯。在本示例中,同步元件902包括約束解決器104,并且在已經(jīng)加載了模塊描述(框1004)并且更新了對(duì)象變量后,如果需要,(在框1006中),該同步元件確定所述參數(shù)/變量中的任一個(gè)之間是否存在沖突(框1008),并且如果存在沖突,可經(jīng)由例如該IDE的GUI向用戶標(biāo)志該沖突(框1010),或者替代地,可嘗試自動(dòng)修復(fù)該沖突(框1012)。
可重復(fù)圖10中示出的過程(例如,如上所述,周期性地或響應(yīng)于接收到新的實(shí)例化專用參數(shù)),如由點(diǎn)畫線箭頭1000所指示的,并且要理解,可以不同次序執(zhí)行各框,例如,可在任何時(shí)間或基本連續(xù)地向視圖傳送或從視圖傳送數(shù)據(jù)。在同步元件902所執(zhí)行的約束解決操作的一示例中,三個(gè)不同視圖中的每一個(gè)可標(biāo)識(shí)一類內(nèi)的滿足與該視圖相關(guān)聯(lián)的準(zhǔn)則的不同對(duì)象子集(例如,相機(jī)類內(nèi)的不同對(duì)象)。所述不同子集是基于在每個(gè)視圖中應(yīng)用的視圖專用準(zhǔn)則的,例如,物理設(shè)計(jì)視圖103中的大小以及硬件配置視圖101中的分辨率。同步元件902從接收自每個(gè)視圖的數(shù)據(jù)標(biāo)識(shí)哪些相機(jī)被包括在所有三個(gè)子集中,并且因此適于在該設(shè)備中使用。在對(duì)象隨后被從正在開發(fā)的設(shè)備移除時(shí),相關(guān)數(shù)據(jù)(例如,相關(guān)模塊描述)可從同步元件902內(nèi)所存儲(chǔ)的表示中刪除。然而,在某些示例中,可不刪除該數(shù)據(jù),相反將其標(biāo)志為禁用,以便如果重新選擇該對(duì)象作為該設(shè)備的形成部件,則不需要重新加載模塊描述并且重新設(shè)置可能已經(jīng)為該對(duì)象指定的任何對(duì)象變量。這在其中對(duì)象被意外移除或斷開連接的情況下特別有用(例如,在包括硬件檢測(cè)模塊801的示例中)。圖11示出用于設(shè)備的快速開發(fā)的另一示例IDE的示意圖。本示例包括同步元件1102和一個(gè)或多個(gè)約束解決器1110-1112。這些約束解決器可專用于特定視圖(例如,約束解決器1110、1112)或可在兩個(gè)或更多個(gè)視圖之間共享(例如,約束解決器1111)。每個(gè)約束解決器可理解與構(gòu)成設(shè)備的對(duì)象相關(guān)聯(lián)的對(duì)象變量和規(guī)則的子集,并且在這種示例中,同步元件將相關(guān)對(duì)象變量和任何其他相關(guān)參數(shù)/規(guī)則(例如,如從加載的模塊描述中提取的)推送到每個(gè)約束解決器。這在圖12的框1202中示出,圖12包括同步元件的操作的另一示例方法的流程圖。單個(gè)約束解決器1110-1112隨后能標(biāo)識(shí)沖突并且要么向用戶通知該沖突,要么自動(dòng)解決該沖突(以與圖2中的框206-210中所示的類似的方式)。盡管圖12示出數(shù)據(jù)被傳遞給視圖(在框1005中)和約束解決器(在框1202中)兩者,然而在其他示例中,數(shù)據(jù)可從同步元件1102傳遞到視圖或者相關(guān)聯(lián)的約束解決器中的任一個(gè),而數(shù)據(jù)隨后可按照需要在視圖和該相關(guān)聯(lián)的約束解決器之間傳遞。而且,盡管圖12沒有示出庫(kù)管理器904或系統(tǒng)管理器906,然而要理解,同步元件1102可包括這兩個(gè)元件中的一個(gè)或兩個(gè)。
在某些示例中,同步元件902、1102可使用加載的模塊描述內(nèi)的規(guī)則來(lái)翻譯變量或參數(shù),以使得它們能被不同視圖解釋。被翻譯的變量或參數(shù)可以是對(duì)象變量和/或在視圖中生成的推斷的參數(shù)。在一示例中,同步元件可在與所選擇的對(duì)象相關(guān)聯(lián)的對(duì)象和特定視圖或約束解決器所理解的參數(shù)之間翻譯。在這種示例中,被推送給視圖(在框1005中)或約束解決器(在框1202中)的數(shù)據(jù)可包括一個(gè)或多個(gè)翻譯的變量,以附加于或代替實(shí)際的對(duì)象變量值和/或其他參數(shù)。在同步元件可執(zhí)行的翻譯的特定示例中,該元件可從軟件開發(fā)視圖102接收‘所使用的卡檢測(cè)API’的視圖專用參數(shù)并將此參數(shù)翻譯為硬件配置視圖101理解的通用參數(shù)或‘CD線為真’的另一視圖專用參數(shù)。在上面描述的示例中,提供單層的約束解,它或者是中心約束解決器(例如,如圖I和9中所示),或者是并行的多個(gè)約束解決器(例如,如圖11所示)。在IDE的進(jìn)一步示例中,可提供多層約束解決器。例如,除了同步元件內(nèi)的中心約束解決能力(如圖9所示)之外,可提供鏈接到一個(gè)或多個(gè)視圖的視圖專用約束解決器1110-112(如圖11所示)。在這種示例中,同步元件可提供高級(jí)約束解和/或跨所有(或許多)視圖切割的約束的解。這種約束的一示例是熱約束,因?yàn)檫@受到所選擇的對(duì)象,這些對(duì)象的定位以及在這些對(duì)象上運(yùn)行的代 碼的影響。在這種示例中,與視圖相關(guān)聯(lián)的單個(gè)約束解決器1110-1112可提供更詳細(xì)的視圖相關(guān)的約束解(例如,標(biāo)識(shí)對(duì)象在3D空間中的何處重疊的物理約束解決器和標(biāo)識(shí)對(duì)象不兼容性、不足的總線容量等的硬件約束解決器等)。在進(jìn)一步示例中,可存在多于兩層的約束解。盡管圖9和11僅示出了三個(gè)視圖而不包括硬件檢測(cè)模塊或輸出生成器模塊,然而要理解,進(jìn)一步的不例IDE可包括另外的視圖和/或另外的I旲塊(例如,圖8中不出的另外的模塊中的一個(gè)或兩者)。以下段落提供了設(shè)計(jì)新移動(dòng)電話的示例場(chǎng)景,其展示了諸如上面描述的那些的IDE可如何被用于改善生產(chǎn)原型的過程,該過程允許單個(gè)用戶以統(tǒng)一而高效的方式快速查看并開發(fā)設(shè)計(jì)的所有方面。在該示例場(chǎng)景中,用戶可能通過啟動(dòng)應(yīng)用、創(chuàng)建新項(xiàng)目以及加載軟件開發(fā)視圖來(lái)開始,如上所述,該軟件開發(fā)視圖包括對(duì)編寫計(jì)算機(jī)代碼的支持、到編譯器的前端、對(duì)調(diào)試工具和模擬器的訪問。用戶可使用該視圖來(lái)編寫將在該設(shè)備上運(yùn)行的軟件代碼的基礎(chǔ)。在編譯該軟件時(shí),它們發(fā)現(xiàn)代碼將需要8Mb的存儲(chǔ)(storage)和4Mb的存儲(chǔ)器(memory)來(lái)執(zhí)行。通過切換到該應(yīng)用上的硬件配置視圖,該用戶能夠從多個(gè)可用存儲(chǔ)器和處理器選項(xiàng)的列表中選擇,并且選擇滿足軟件按需執(zhí)行的要求的一個(gè)選項(xiàng)。此外,他們能選擇并配置電話正常工作所必需的多個(gè)另外的電子模塊即,某種尺寸和分辨率的顯示器、GPRS模塊、電池和用于用戶輸入的按鍵板。通過切換到物理設(shè)計(jì)視圖,用戶能看到他們已選擇的所有單個(gè)電子模塊的精確的3D表示。他們能與它們交互,將它們相對(duì)于彼此布局,并且獲得該配置將要求的大小和形狀的初步印象。用戶指定電話的最大厚度,并且這導(dǎo)致顯示器模塊被突出顯示,因?yàn)轱@示器太厚而不適合。在返回到硬件配置視圖時(shí),用戶選擇更薄的替代顯示器模塊,同時(shí)該視圖自動(dòng)地“灰掉(gray out)”會(huì)違反物理厚度約束的硬件選項(xiàng)。通過切換到傳感器模擬/交互視圖,用戶可設(shè)計(jì)傳感器輸入流,用所述傳感器輸入流來(lái)鍛煉不同的外圍傳感器,所述傳感器輸入流可用準(zhǔn)備好的傳感器輸入流被包括在設(shè)計(jì)中,或者(如在上面的物理設(shè)計(jì)視圖中提到的交互技術(shù)中)通過允許與包括在設(shè)計(jì)中的輸入和輸出模塊實(shí)時(shí)地模擬的交互而被包括在設(shè)計(jì)中。某些傳感器可具有標(biāo)準(zhǔn)激勵(lì)庫(kù),通過所述標(biāo)準(zhǔn)激勵(lì)附連于每個(gè)所包括的傳感器(諸如對(duì)于溫度傳感器來(lái)說是隨時(shí)間的溫度梯度)。切換回軟件開發(fā)視圖,用戶發(fā)現(xiàn)該應(yīng)用已加載了所有必要的庫(kù)、包括了相關(guān)的引用、并且添加了與已選擇的另外的硬件元件進(jìn)行接口所需的適當(dāng)?shù)拇a存根。在再次編譯代碼時(shí),該應(yīng)用給出在給定當(dāng)前硬件配置和模擬的軟件執(zhí)行的情況下該設(shè)備的電池壽命將是多少的估計(jì)。給定此信息,用戶切換到硬件配置視圖,選擇并刪除當(dāng)前電池模塊,并用較高容量的電池來(lái)取代它。切換到硬件設(shè)計(jì)視圖,他們注意到新的電池更大,并調(diào)整屏幕上的3D模塊的相對(duì)放置以將其容納在他們的設(shè)計(jì)中。在編碼過程期間,用戶向先前沒有被配置的新類型的硬件模塊——具有相片和視頻錄制能力的相機(jī)一添加引用。當(dāng)在軟件開發(fā)視圖中添加對(duì)相機(jī)的引用時(shí),它也被自動(dòng) 在硬件配置和物理設(shè)計(jì)視圖中被加載并選擇。用戶能夠重新安排現(xiàn)有3D表示來(lái)在期望的位置容納該相機(jī),并隨后切換到硬件配置視圖來(lái)配置新模塊并指定其圖像捕捉分辨率。用戶再次切換到物理設(shè)計(jì)視圖,并選擇用于‘自動(dòng)生成外殼’的選項(xiàng)。給定構(gòu)成3D表示的相對(duì)放置,在將裝載和組裝夾具計(jì)入的情況下,軟件生成簡(jiǎn)單的外殼來(lái)封裝它們。用戶能做出最終的調(diào)整,矯正放置并對(duì)設(shè)計(jì)做出最終的改變。在任何階段,用戶具有切換到傳感器模擬/交互視圖并且附接多個(gè)不同傳感器輸入激勵(lì)模式或者甚至通過代理或虛擬接口來(lái)直接操縱傳感器模塊的選項(xiàng),該接口使得能夠?qū)崟r(shí)地直接與軟件模擬交互——或許沿路收集表現(xiàn)數(shù)據(jù)。最終,用戶點(diǎn)擊“打印”。這啟動(dòng)允許用戶制作初始原型的工具。用戶選擇制造5個(gè),并在軟件側(cè)被引導(dǎo)(編譯并生產(chǎn)主處理器和二級(jí)處理器的固件、通過USB自動(dòng)對(duì)主處理器編程并提供固件文件以供用戶使用第三方工具加載到二級(jí)處理器中)。對(duì)于硬件,向用戶給出所需的組件的列表,從而他們能夠檢查必需的部分的庫(kù)存和訂單。對(duì)于物理構(gòu)造,用戶選擇制作激光切割版本,所以軟件將外殼“平坦化(flatten)”為能被開槽并粘合在一起的側(cè)面,并產(chǎn)生輸出文件并將其發(fā)送到激光切割機(jī)。圖13示出示例性的基于計(jì)算的設(shè)備1300的各個(gè)組件,設(shè)備1300可以被實(shí)現(xiàn)為任何形式的計(jì)算和/或電子設(shè)備,其中能實(shí)現(xiàn)此處描述的方法的實(shí)施例?;谟?jì)算的設(shè)備1300包括一個(gè)或多個(gè)處理器1302,該一個(gè)或多個(gè)處理器可以是微處理器、控制器、或用于處理計(jì)算可執(zhí)行指令以控制設(shè)備的操作以便提供此處描述的集成開發(fā)環(huán)境的任何其他合適類型的處理器??梢栽诨谟?jì)算的設(shè)備處提供包括操作系統(tǒng)1304的平臺(tái)軟件或任何其他合適的平臺(tái)軟件以使得應(yīng)用軟件1305-1309能夠在該設(shè)備上執(zhí)行。應(yīng)用軟件包括約束解決器1306、軟件開發(fā)引擎1307、硬件開發(fā)引擎1308和物理設(shè)計(jì)引擎1309。該應(yīng)用軟件還可包括以下的一個(gè)或多個(gè)模擬引擎1310、硬件檢測(cè)模塊1311、輸出生成器模塊1312和同步模塊1324。計(jì)算機(jī)可執(zhí)行指令可使用諸如存儲(chǔ)器1313這樣的任何計(jì)算機(jī)可讀介質(zhì)來(lái)提供。存儲(chǔ)器具有任何合適的類型,諸如隨機(jī)存取存儲(chǔ)器(RAM)、諸如磁或光存儲(chǔ)設(shè)備等任何類型的盤存儲(chǔ)設(shè)備、硬盤驅(qū)動(dòng)器、或⑶、DVD或其他盤驅(qū)動(dòng)器。也可以使用閃存、EPROM或EEPR0M。盡管存儲(chǔ)器被示出為在基于計(jì)算的設(shè)備1300內(nèi),然而要理解,該存儲(chǔ)可以是分布式的或位于遠(yuǎn)程并經(jīng)由網(wǎng)絡(luò)1314或其他通信鏈路(例如,使用通信接口 1315)來(lái)訪問。存儲(chǔ)器1313還可包括對(duì)象數(shù)據(jù)存儲(chǔ)1316和實(shí)例化專用數(shù)據(jù)存儲(chǔ)1317。基于計(jì)算的設(shè)備1300還包括輸入/輸出控制器1318,該輸入/輸出控制器被安排成向顯示設(shè)備1320輸出顯示信息,該顯示設(shè)備可與基于計(jì)算的設(shè)備1300分開或集成。顯示信息包括該IDE的圖形用戶界面并呈現(xiàn)上面描述的不同視圖。輸入/輸出控制器1318還被安排成接收并處理來(lái)自諸如用戶輸入設(shè)備1322 (例如,鼠標(biāo)或鍵盤)等一個(gè)或多個(gè)設(shè)備的輸入。此用戶輸入可被用于使用戶能夠選擇對(duì)象、配置對(duì)象參數(shù)、修改所選擇的對(duì)象的3D布置等。在一實(shí)施例中,如果顯示設(shè)備1320是觸敏顯示設(shè)備,那么它還可擔(dān)當(dāng)用戶輸入設(shè)備1322。輸入/輸出控制器1318還可從諸如模塊化電子元件或網(wǎng)絡(luò)攝像頭等連接的硬件接收數(shù)據(jù)(例如,在使用硬件檢測(cè)模塊1310的情況下)。輸入/輸出控制器1318還可將數(shù)據(jù)輸出到除了顯示設(shè)備以外的設(shè)備,例如,輸出到所連接的硬件以對(duì) 處理器編程,或輸出到用于制造原型外殼的激光切割機(jī)、3D打印機(jī)或其他機(jī)器(圖13中未示出)。盡管本發(fā)明的示例在此處被描述并描繪成在如圖13中示出的具有由特定引擎集合所提供的特定視圖集合并且其中對(duì)象是硬件對(duì)象的系統(tǒng)中實(shí)現(xiàn)的,然而所描述的系統(tǒng)是作為示例而非限制提供的。本領(lǐng)域的技術(shù)人員將會(huì)認(rèn)識(shí)到,本發(fā)明的示例適于在各種不同類型的計(jì)算系統(tǒng)中應(yīng)用并且可提供不同的視圖和/或引擎。在一示例中,此處描述的功能可在各視圖和/或引擎之間不同地劃分,并且在視圖和引擎之間可能不存在一對(duì)一關(guān)系。此外,某些或所有對(duì)象可能不是硬件對(duì)象而可能反而包括化學(xué)對(duì)象,并且在這種實(shí)施例中,硬件配置視圖/引擎可替代地被稱為對(duì)象配置視圖/引擎。要理解,圖1、3、6、8、9和11中的雙末端箭頭標(biāo)識(shí)IDE中的元件之間的可能的數(shù)據(jù)路徑;然而,要理解,這些不是唯一的可能路徑,而它們僅是作為示例示出的。上面描述的IDE各自提供了單一開發(fā)環(huán)境,該開發(fā)環(huán)境將生產(chǎn)原型設(shè)備所需的任務(wù)緊密集成。該IDE允許用戶設(shè)計(jì)并開發(fā)不同方面電子配置、設(shè)備運(yùn)行的軟件及其物理形狀因子。通過提供單一環(huán)境,用戶不需要熟悉多個(gè)工具,并且這使得特定領(lǐng)域的專家(例如,物理設(shè)計(jì)師)更好地理解電子模塊的約束,反之亦然。在該IDE包括傳感器模擬/交互視圖的情況下,(例如,如在圖6和8中所示),該開發(fā)環(huán)境提供了創(chuàng)建傳感器輸入流和交互模擬以在實(shí)際實(shí)現(xiàn)之前鍛煉該設(shè)計(jì)的便利。通過使用單一環(huán)境,該環(huán)境能夠提供涵蓋設(shè)備設(shè)計(jì)的所有方面(例如,軟件、硬件和物理設(shè)計(jì))的單一版本號(hào)。這改善了設(shè)備開發(fā)的可溯性(traceability)。此處所使用的術(shù)語(yǔ)‘計(jì)算機(jī)’是指帶有處理能力以便它可以執(zhí)行指令的任何設(shè)備。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,這樣的處理能力被集成到許多不同的設(shè)備中,因此,術(shù)語(yǔ)‘計(jì)算機(jī)’包括PC、服務(wù)器、移動(dòng)電話、個(gè)人數(shù)字助理和許多其他設(shè)備。此處所描述的方法可以通過有形的存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可讀形式的軟件來(lái)執(zhí)行。有形(或非瞬態(tài))存儲(chǔ)介質(zhì)的示例包括盤(disk)、拇指型驅(qū)動(dòng)器、存儲(chǔ)器等而不包括所傳播的信號(hào)。軟件可適于在并行處理器或串行處理器上執(zhí)行以使得各方法步驟可以按任何合適的次序或同時(shí)執(zhí)行。這承認(rèn),軟件可以是有價(jià)值的,單獨(dú)地可交換的商品。它旨在包含運(yùn)行于或者控制“啞”或標(biāo)準(zhǔn)硬件以實(shí)現(xiàn)所需功能的軟件。它還旨在包含例如用于設(shè)計(jì)硅芯片,或者用于配置通用可編程芯片的HDL (硬件描述語(yǔ)言)軟件等“描述”或者定義硬件配置以實(shí)現(xiàn)期望功能的軟件。本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到,用于存儲(chǔ)程序指令的存儲(chǔ)設(shè)備可分布在網(wǎng)絡(luò)上。例如,遠(yuǎn)程計(jì)算機(jī)可以存儲(chǔ)被描述為軟件的進(jìn)程的示例。本地或終端計(jì)算機(jī)可以訪問遠(yuǎn)程計(jì)算機(jī)并下載軟件的一部分或全部以運(yùn)行程序??闪磉x地,本地計(jì)算機(jī)可以根據(jù)需要下載軟件的片段,或在本地終端上執(zhí)行一些軟件指令,并在遠(yuǎn)程計(jì)算機(jī)(或計(jì)算機(jī)網(wǎng)絡(luò))上執(zhí)行另一些軟件指令。本領(lǐng)域的技術(shù)人員還將認(rèn)識(shí)到,通過利用本領(lǐng)域的技術(shù)人員已知的傳統(tǒng)技術(shù),軟件指令的全部,或一部分可以通過諸如DSP、可編程邏輯陣列等等之類的專用電路來(lái)實(shí)現(xiàn)。對(duì)精通本技術(shù)的人顯而易見的是,此處給出的任何范圍或設(shè)備值可以被擴(kuò)展或改變,而不會(huì)丟失尋求的效果。可以理解,上文所描述的優(yōu)點(diǎn)可以涉及一個(gè)實(shí)施例或可以涉及多個(gè)實(shí)施例。各實(shí)施例不僅限于解決任何或全部所陳述的問題的那些實(shí)施例或具有任何或全部所陳述的優(yōu)點(diǎn)那些實(shí)施例。進(jìn)一步可以理解,對(duì)“一個(gè)”項(xiàng)目的引用是指那些項(xiàng)目中的一個(gè)或多個(gè)。 此處所描述的方法的步驟可以在適當(dāng)?shù)那闆r下以任何合適的順序,或同時(shí)實(shí)現(xiàn)。另外,在不偏離此處所描述的主題的精神和范圍的情況下,可以從任何一個(gè)方法中刪除各單獨(dú)的框。上文所描述的任何示例的各方面可以與所描述的其他示例中的任何示例的各方面相結(jié)合,以構(gòu)成進(jìn)一步的示例,而不會(huì)丟失尋求的效果。此處使用了術(shù)語(yǔ)‘包括’旨在包括已標(biāo)識(shí)的方法的框或元件,但是這樣的框或元件不包括排它性的列表,方法或設(shè)備可以包含額外的框或元件??梢岳斫?,上面對(duì)一較佳實(shí)施例的描述只是作為示例給出并且本領(lǐng)域的技術(shù)人員可以做出各種修改。以上說明、示例和數(shù)據(jù)提供了對(duì)本發(fā)明的各示例性實(shí)施例的結(jié)構(gòu)和使用的全面描述。雖然上文以一定的詳細(xì)度或參考一個(gè)或多個(gè)單個(gè)實(shí)施例描述了本發(fā)明的各實(shí)施例,但是,在不偏離本發(fā)明的精神或范圍的情況下,本領(lǐng)域的技術(shù)人員可以對(duì)所公開的實(shí)施例作出很多更改。
權(quán)利要求
1.一種用于開發(fā)設(shè)備的集成開發(fā)環(huán)境,所述集成開發(fā)環(huán)境包括 被安排成向用戶提供多個(gè)不同視圖的用戶界面,其中每個(gè)視圖與設(shè)備設(shè)計(jì)的不同方面相關(guān)聯(lián); 被安排成存儲(chǔ)與多個(gè)對(duì)象中的每一個(gè)相關(guān)聯(lián)的多個(gè)不同類型的數(shù)據(jù)的數(shù)據(jù)庫(kù),所述不同類型的數(shù)據(jù)與設(shè)備設(shè)計(jì)的所述不同方面相關(guān); 用于接收用戶輸入信號(hào)的輸入,所述用戶輸入信號(hào)從所述數(shù)據(jù)庫(kù)中選擇至少一個(gè)對(duì)象來(lái)添加到形成所述設(shè)備的對(duì)象的集合;以及 將所述視圖鏈接以便在一個(gè)視圖中的改變影響至少一個(gè)其他視圖的約束解決器。
2.如權(quán)利要求I所述的集成開發(fā)環(huán)境,其特征在于,一視圖被安排成基于所述用戶輸入信號(hào)生成推斷的參數(shù),并且其中所述環(huán)境還包括 被安排成存儲(chǔ)實(shí)例化專用數(shù)據(jù)的數(shù)據(jù)存儲(chǔ),所述實(shí)例化專用數(shù)據(jù)包括推斷的參數(shù);以及 其中所述約束解決器被安排成通過檢測(cè)存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)和所述數(shù)據(jù)庫(kù)的至少一個(gè)中的參數(shù)中的沖突來(lái)鏈接所述視圖。
3.如權(quán)利要求2所述的集成開發(fā)環(huán)境,其特征在于,所述輸入進(jìn)一步用于接收指定與所述設(shè)備相關(guān)聯(lián)的全局參數(shù)的用戶輸入信號(hào),并且其中所述實(shí)例化專用數(shù)據(jù)包括全局參數(shù)。
4.如前述權(quán)利要求中任一項(xiàng)所述的集成開發(fā)環(huán)境,其特征在于,所述約束解決器被進(jìn)一步安排成向用戶通知參數(shù)中的檢測(cè)到的沖突。
5.如權(quán)利要求1-3中任一項(xiàng)所述的集成開發(fā)環(huán)境,其特征在于,所述約束解決器被進(jìn)一步安排成更新形成所述設(shè)備的對(duì)象的集合以解決參數(shù)中的檢測(cè)到的沖突。
6.如前述權(quán)利要求中任一項(xiàng)所述的集成開發(fā)環(huán)境,其特征在于,所述多個(gè)不同視圖包括對(duì)象配置視圖,軟件開發(fā)視圖和物理設(shè)計(jì)視圖,且其中與每個(gè)對(duì)象相關(guān)聯(lián)的所述多個(gè)類型的數(shù)據(jù)包括所述對(duì)象的3D模型;所述對(duì)象所使用的任何軟件庫(kù)的細(xì)節(jié);以及用于所述對(duì)象的參數(shù)。
7.如權(quán)利要求6所述的集成開發(fā)環(huán)境,其特征在于,所述對(duì)象配置視圖包括硬件配置視圖,而用于所述對(duì)象的所述參數(shù)包括硬件參數(shù)。
8.如權(quán)利要求6或7所述的集成開發(fā)環(huán)境,其特征在于,所述多個(gè)不同視圖進(jìn)一步包括被安排成接收傳感器模擬數(shù)據(jù)并模擬所述原型設(shè)備響應(yīng)于所述傳感器模擬數(shù)據(jù)的表現(xiàn)的模擬視圖。
9.如權(quán)利要求8所述的集成開發(fā)環(huán)境,其特征在于,所述傳感器模擬數(shù)據(jù)包括以下的至少一項(xiàng)從所述數(shù)據(jù)庫(kù)訪問并與形成所述設(shè)備的對(duì)象的集合中的一個(gè)對(duì)象相關(guān)聯(lián)的傳感器模擬數(shù)據(jù);以及由所述模擬視圖響應(yīng)于與虛擬設(shè)備的用戶交互而生成的用戶交互數(shù)據(jù)。
10.如前述權(quán)利要求中任一項(xiàng)所述的集成開發(fā)環(huán)境,其特征在于,進(jìn)一步包括用于輸出制造數(shù)據(jù)的輸出。
11.如權(quán)利要求10所述的集成開發(fā)環(huán)境,其特征在于,進(jìn)一步包括被安排成基于與形成所述設(shè)備的對(duì)象的集合中的每一對(duì)象相關(guān)聯(lián)的數(shù)據(jù)并基于實(shí)例化專用數(shù)據(jù)生成所述制造數(shù)據(jù)的輸出生成器模塊。
12.如前述權(quán)利要求中任一項(xiàng)所述的集成開發(fā)環(huán)境,其特征在于,進(jìn)一步包括被安排成標(biāo)識(shí)一個(gè)或多個(gè)對(duì)象并將所標(biāo)識(shí)的對(duì)象添加到形成所述設(shè)備的對(duì)象的集合的硬件檢測(cè)模塊。
13.—種方法,包括 將與多個(gè)對(duì)象相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,用于每個(gè)對(duì)象的數(shù)據(jù)包括多個(gè)不同類型的數(shù)據(jù); 使用戶能夠通過用戶界面中的多個(gè)不同視圖中的一個(gè)視圖從所述數(shù)據(jù)庫(kù)選擇并配置對(duì)象的集合以形成設(shè)備,其中每個(gè)視圖與設(shè)備設(shè)計(jì)的不同方面相關(guān)聯(lián);以及 基于用戶在另一視圖中所做的改變更新在一個(gè)視圖中顯示給所述用戶的信息。
14.如權(quán)利要求13所述的方法,其特征在于,所述多個(gè)不同視圖包括對(duì)象配置視圖,軟件開發(fā)視圖和物理設(shè)計(jì)視圖,且其中與每個(gè)對(duì)象相關(guān)聯(lián)的所述多個(gè)類型的數(shù)據(jù)包括所述對(duì)象的3D模型;所述對(duì)象所使用的任何軟件庫(kù)的細(xì)節(jié);以及用于所述對(duì)象的參數(shù)。
15.如權(quán)利要求13或14所述的方法,其特征在于,還包括 基于所選擇的對(duì)象和所接收的用戶輸入在一視圖中生成至少一個(gè)推斷的參數(shù); 將所述推斷的參數(shù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)中;以及 檢測(cè)推斷的參數(shù)與存儲(chǔ)在所述數(shù)據(jù)庫(kù)中的用于所選擇的對(duì)象中的每一個(gè)對(duì)象的參數(shù)中的任一個(gè)之間的沖突。
全文摘要
描述一種用于快速設(shè)備開發(fā)的集成開發(fā)環(huán)境。在一實(shí)施例中,該集成開發(fā)環(huán)境向用戶提供多個(gè)不同視圖,每個(gè)視圖與設(shè)備設(shè)計(jì)的不同方面(諸如硬件配置、軟件開發(fā)和物理設(shè)計(jì))相關(guān)。該設(shè)備(它可以是原型設(shè)備)是由從數(shù)據(jù)庫(kù)選擇的多個(gè)對(duì)象形成的,并且該數(shù)據(jù)庫(kù)為每個(gè)對(duì)象存儲(chǔ)多個(gè)數(shù)據(jù)類型,諸如用于該對(duì)象的3D模型、軟件庫(kù)和代碼存根(code-stub),以及硬件參數(shù)。用戶可通過以任何次序選擇不同視圖來(lái)設(shè)計(jì)該設(shè)備,并且可在他們選擇時(shí)在各視圖間切換。在一個(gè)視圖中所做的改變(諸如對(duì)新對(duì)象的選擇)被饋送到其他視圖中。
文檔編號(hào)G06F19/00GK102844760SQ201180017137
公開日2012年12月26日 申請(qǐng)日期2011年3月25日 優(yōu)先權(quán)日2010年4月9日
發(fā)明者N·韋拉, J·斯科特, S·豪杰斯, D·A·巴特勒, S·伊扎迪 申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
霍山县| 平舆县| 丹棱县| 德格县| 河曲县| 土默特右旗| 邹城市| 师宗县| 十堰市| 南开区| 佛教| 靖边县| 贵州省| 青田县| 左贡县| 新化县| 鹿泉市| 水城县| 大竹县| 上犹县| 靖江市| 双鸭山市| 芜湖市| 昌乐县| 通辽市| 高要市| 望都县| 朝阳县| 六盘水市| 涿鹿县| 五峰| 梨树县| 化德县| 通海县| 永平县| 六盘水市| 长治市| 禄劝| 达尔| 濮阳县| 中牟县|