翻译文献-基于实时仿真的嵌入式系统结构设计_第1页
翻译文献-基于实时仿真的嵌入式系统结构设计_第2页
翻译文献-基于实时仿真的嵌入式系统结构设计_第3页
翻译文献-基于实时仿真的嵌入式系统结构设计_第4页
翻译文献-基于实时仿真的嵌入式系统结构设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外文原文MOREANIMATIONIMAGESANDSOUNDANIMATIONSAREFUNANDEASYTODOINJAVA,BUTTHERESONLYSOMUCHYOUCANDOWITHTHEBUILTIN,JAVAMETHODSFORLINESANDFONTSANDCOLORSFORREALLYINTERESTINGANIMATIONS,YOUHAVETOPROVIDEYOUROWNIMAGESFOREACHFRAMEOFTHEANIMATIONANDHAVINGSOUNDSISNICE,ASWELLTODAY,YOULLDOMOREWITHANIMATIONS,INCORPORATINGIMAGESANDSOUNDSINTOJAVAAPPLETSSPECIFICALLY,YOULLEXPLORETHEFOLLOWINGTOPICS1USINGIMAGESGETTINGTHEMFROMTHESERVER,LOADINGTHEMINTOJAVA,ANDDISPLAYINGTHEMINYOURAPPLET2CREATINGANIMATIONSBYUSINGIMAGES,INCLUDINGANEXTENSIVEEXAMPLE3USINGSOUNDSGETTINGTHEMANDPLAYINGTHEMATTHEAPPROPRIATETIMES4SUNSANIMATORAPPLETANEASYWAYTOORGANIZEANIMATIONSANDSOUNDSINJAVA5DOUBLEBUFFERINGHARDCOREFLICKERAVOIDANCERETRIEVINGANDUSINGIMAGESBASICIMAGEHANDLINGINJAVAISEASYTHEIMAGECLASSINJAVAAWTPROVIDESABSTRACTMETHODSTOREPRESENTCOMMONIMAGEBEHAVIOR,ANDSPECIALMETHODSDEFINEDINAPPLETANDGRAPHICSGIVEYOUEVERYTHINGYOUNEEDTOLOADANDDISPLAYIMAGESINYOURAPPLETASEASILYASDRAWINGARECTANGLEINTHISSECTION,YOULLLEARNABOUTHOWTOGETANDDRAWIMAGESINYOURJAVAAPPLETSGETTINGIMAGESTODISPLAYANIMAGEINYOURAPPLET,YOUFIRSTMUSTLOADTHATIMAGEOVERTHENETINTOYOURJAVAPROGRAMIMAGESARESTOREDASSEPARATEFILESFROMYOURJAVACLASSFILES,SOYOUHAVETOTELLJAVAWHERETOFINDTHEMTHEAPPLETCLASSPROVIDESAMETHODCALLEDGETIMAGE,WHICHLOADSANIMAGEANDAUTOMATICALLYCREATESANINSTANCEOFTHEIMAGECLASSFORYOUTOUSEIT,ALLYOUHAVETODOISIMPORTTHEJAVAAWTIMAGECLASS,ANDTHENGIVEGETIMAGETHEURLOFTHEIMAGEYOUWANTTOLOADTHEREARETWOWAYSOFDOINGTHELATTERSTEP1THEGETIMAGEMETHODWITHASINGLEARGUMENTANOBJECTOFTYPEURLRETRIEVESTHEIMAGEATTHATURLTHEGETIMAGEMETHODWITHTWOARGUMENTSTHEBASEURLALSOAURLOBJECTANDASTRINGREPRESENTINGTHEPATHORFILENAMEOFTHEACTUALIMAGERELATIVETOTHEBASEALTHOUGHTHEFIRSTWAYMAYSEEMEASIERJUSTPLUGINTHEURLASAURLOBJECT,THESECONDISMOREFLEXIBLEREMEMBER,BECAUSEYOURECOMPILINGJAVAFILES,IFYOUINCLUDEAHARDCODEDURLOFANIMAGEANDTHENMOVEYOURFILESAROUNDTOADIFFERENTLOCATION,YOUHAVETORECOMPILEALLYOURJAVAFILESTHELATTERFORM,THEREFORE,ISUSUALLYTHEONETOUSETHEAPPLETCLASSALSOPROVIDESTWOMETHODSTHATWILLHELPWITHTHEBASEURLARGUMENTTOGETIMAGETHEGETDOCUMENTBASEMETHODRETURNSAURLOBJECTREPRESENTINGTHEDIRECTORYOFTHEHTMLFILETHATCONTAINSTHISAPPLETSO,FOREXAMPLE,IFTHEHTMLFILEISLOCATEDATHTTP/WWWMYSERVERCOM/HTMLFILES/JAVAHTML/,GETDOCUMENTBASERETURNSAURLPOINTINGTOTHATPATHTHEGETCODEBASEMETHODRETURNSASTRINGREPRESENTINGTHEDIRECTORYINWHICHTHISAPPLETISCONTAINEDWHICHMAYORMAYNOTBETHESAMEDIRECTORYASTHEHTMLFILE,DEPENDINGONWHETHERTHECODEBASEATTRIBUTEINISSETORNOTWHETHERYOUUSEGETDOCUMENTBASEORGETCODEBASEDEPENDSONWHETHERYOURIMAGESARERELATIVETOYOURHTMLFILESORRELATIVETOYOURJAVACLASSFILESUSEWHICHEVERONEAPPLIESBETTERTOYOURSITUATIONNOTETHATEITHEROFTHESEMETHODSISMOREFLEXIBLETHANHARDCODINGAURLORPATHNAMEINTOTHEGETIMAGEMETHODUSINGEITHERGETDOCUMENTBASEORGETCODEBASEENABLESYOUTOMOVEYOURHTMLFILESANDAPPLETSAROUNDANDJAVACANSTILLFINDYOURIMAGESHEREAREAFEWEXAMPLESOFGETIMAGE,TOGIVEYOUANIDEAOFHOWTOUSEITTHISFIRSTCALLTOGETIMAGERETRIEVESTHEFILEATTHATSPECIFICURL“HTTP/WWWSERVERCOM/FILES/IMAGEGIF”IFANYPARTOFTHATURLCHANGES,YOUHAVETORECOMPILEYOURJAVAAPPLETTOTAKETHENEWPATHINTOACCOUNTIMAGEIMGGETIMAGENEWURL“HTTP/WWWSERVERCOM/FILES/IMAGEGIF”INTHEFOLLOWINGFORMOFGETIMAGE,THEIMAGEGIFFILEISINTHESAMEDIRECTORYASTHEHTMLFILESTHATREFERTOTHISAPPLETIMAGEIMGGETIMAGEGETDOCUMENTBASE,“IMAGEGIF”INTHISSIMILARFORM,THEFILEIMAGEGIFISINTHESAMEDIRECTORYASTHEAPPLETITSELFIMAGEIMGGETIMAGEGETCODEBASE,“IMAGEGIF”IFYOUHAVELOTSOFIMAGEFILES,ITSCOMMONTOPUTTHEMINTOTHEIROWNSUBDIRECTORYTHISFORMOFGETIMAGELOOKSFORTHEFILEIMAGEGIFINTHEDIRECTORYIMAGES,WHICH,INTURN,ISINTHESAMEDIRECTORYASTHEJAVAAPPLETIMAGEIMGGETIMAGEGETCODEBASE,“IMAGES/IMAGEGIF”IFJAVACANTFINDTHEFILEYOUVEINDICATED,GETIMAGERETURNSNULLYOURPROGRAMWILLCONTINUETORUNYOUJUSTWONTSEETHATIMAGEONYOURSCREENWHENYOUTRYTODRAWITDRAWINGIMAGESALLTHATSTUFFWITHGETIMAGEDOESNOTHINGEXCEPTGOOFFANDRETRIEVEANIMAGEANDSTUFFITINTOANINSTANCEOFTHEIMAGECLASSNOWTHATYOUHAVEANIMAGE,YOUHAVETODOSOMETHINGWITHITTHEMOSTLIKELYTHINGYOUREGOINGTOWANTTODOISDISPLAYITASYOUWOULDARECTANGLEORATEXTSTRINGTHEGRAPHICSCLASSPROVIDESTWOMETHODSTODOJUSTTHAT,BOTHCALLEDDRAWIMAGETHEFIRSTVERSIONOFDRAWIMAGETAKESFOURARGUMENTSTHEIMAGETODISPLAY,THEXANDYPOSITIONSOFTHETOPLEFTCORNER,ANDTHISVOIDPAINTGDRAWIMAGEIMG,10,10,THISTHISFIRSTFORMDOESWHATYOUWOULDEXPECTITTOITDRAWSTHEIMAGEINITSORIGINALDIMENSIONSWITHTHETOPLEFTCORNERATTHEGIVENXANDYPOSITIONSLISTING111SHOWSTHECODEFORAVERYSIMPLEAPPLETTHATLOADSINANIMAGECALLEDLADYBUGGIFANDDISPLAYSITFIGURE111SHOWSTHEOBVIOUSRESULTLISTING111THELADYBUGAPPLET1IMPORTJAVAAWTGRAPHICS2IMPORTJAVAAWTIMAGE34PUBLICCLASSLADYBUGEXTENDSJAVAAPPLETAPPLET56IMAGEBUGIMG78PUBLICVOIDINIT9BUGIMGGETIMAGEGETCODEBASE,10“IMAGES/LADYBUGGIF”111213PUBLICVOIDPAINTGRAPHICSG14GDRAWIMAGEBUGIMG,10,10,THIS1516THESECONDFORMOFDRAWIMAGETAKESSIXARGUMENTSTHEIMAGETODRAW,THEXANDYCOORDINATES,AWIDTHANDHEIGHTOFTHEIMAGEBOUNDINGBOX,ANDTHISIFTHEWIDTHANDHEIGHTARGUMENTSFORTHEBOUNDINGBOXARESMALLERORLARGERTHANTHEACTUALIMAGE,THEIMAGEISAUTOMATICALLYSCALEDTOFITUSINGTHOSEEXTRAARGUMENTSENABLESYOUTOSQUEEZEANDEXPANDIMAGESINTOWHATEVERSPACEYOUNEEDTHEMTOFITINKEEPINMIND,HOWEVER,THATTHEREMAYBESOMEIMAGEDEGRADATIONFROMSCALINGITSMALLERORLARGERTHANITSINTENDEDSIZEONEHELPFULHINTFORSCALINGIMAGESISTOFINDOUTTHESIZEOFTHEACTUALIMAGETHATYOUVELOADED,SOYOUCANTHENSCALEITTOASPECIFICPERCENTAGEANDAVOIDDISTORTIONINEITHERDIRECTIONTWOMETHODSDEFINEDFORTHEIMAGECLASSENABLEYOUDOTHISGETWIDTHANDGETHEIGHTBOTHTAKEASINGLEARGUMENT,ANINSTANCEOFIMAGEOBSERVER,WHICHISUSEDTOTRACKTHELOADINGOFTHEIMAGEMOREABOUTTHISLATERMOSTOFTHETIME,YOUCANUSEJUSTTHISASANARGUMENTTOEITHERGETWIDTHORGETHEIGHTIFYOUSTOREDTHELADYBUGIMAGEINAVARIABLECALLEDBUGIMG,FOREXAMPLE,THISLINERETURNSTHEWIDTHOFTHATIMAGE,INPIXELSTHEWIDTHBUGIMGGETWIDTHTHISLISTING112SHOWSANOTHERUSEOFTHELADYBUGIMAGE,THISTIMESCALEDSEVERALTIMESTODIFFERENTLISTING112MORELADYBUGS,SCALED1IMPORTJAVAAWTGRAPHICS2IMPORTJAVAAWTIMAGE34PUBLICCLASSLADYBUG2EXTENDSJAVAAPPLETAPPLET56IMAGEBUGIMG78PUBLICVOIDINIT9BUGIMGGETIMAGEGETCODEBASE,10“IMAGES/LADYBUGGIF”111213PUBLICVOIDPAINTGRAPHICSG14INTIWIDTHBUGIMGGETWIDTHTHIS15INTIHEIGHTBUGIMGGETHEIGHTTHIS16INTXPOS101718/25LISTING112CONTINUED19GDRAWIMAGEBUGIMG,XPOS,10,20IWIDTH/4,IHEIGHT/4,THIS2122/5023XPOSIWIDTH/41024GDRAWIMAGEBUGIMG,XPOS,10,25IWIDTH/2,IHEIGHT/2,THIS2627/10028XPOSIWIDTH/21029GDRAWIMAGEBUGIMG,XPOS,10,THIS3031/150X,25Y32GDRAWIMAGEBUGIMG,10,IHEIGHT30,33INTIWIDTH15,IHEIGHT/4,THIS3435IVEBEENSTEADFASTLYIGNORINGMENTIONINGTHATLASTARGUMENTTODRAWIMAGETHEMYSTERIOUSTHIS,WHICHALSOAPPEARSASANARGUMENTTOGETWIDTHANDGETHEIGHTWHYISTHISARGUMENTUSEDITSOFFICIALUSEISTOPASSINANOBJECTTHATFUNCTIONSASANIMAGEOBSERVERTHATIS,ANOBJECTTHATIMPLEMENTSTHEIMAGEOBSERVERINTERFACEIMAGEOBSERVERSENABLEYOUTOWATCHTHEPROGRESSOFHOWFARALONGANIMAGEISINTHELOADINGPROCESSANDTOMAKEDECISIONSLISTING112CONTINUEDIVEBEENSTEADFASTLYIGNORINGMENTIONINGTHATLASTARGUMENTTODRAWIMAGETHEMYSTERIOUSTHIS,WHICHALSOAPPEARSASANARGUMENTTOGETWIDTHANDGETHEIGHTWHYISTHISARGUMENTUSEDITSOFFICIALUSEISTOPASSINANOBJECTTHATFUNCTIONSASANIMAGEOBSERVERTHATIS,ANOBJECTTHATIMPLEMENTSTHEIMAGEOBSERVERINTERFACEIMAGEOBSERVERSENABLEYOUTOWATCHTHEPROGRESSOFHOWFARALONGANIMAGEISINTHELOADINGPROCESSANDTOMAKEDECISIONSWHENTHEIMAGEISONLYFULLYORPARTIALLYLOADEDTHEAPPLETCLASS,WHICHYOURAPPLETINHERITSFROM,CONTAINSDEFAULTBEHAVIORFORWATCHINGFORIMAGESTHATSHOULDWORKINTHEMAJORITYOFCASESHENCE,THETHISARGUMENTTODRAWIMAGE,GETWIDTH,ANDGETHEIGHTTHEONLYREASONYOULLWANTTOUSEANALTERNATEARGUMENTINITSPLACEISIFYOUARETRACKINGLOTSOFIMAGELOADINGSYNCHRONOUSLYSEETHEJAVAAWTIMAGEIMAGEOBSERVERCLASSFORMOREDETAILSMODIFYINGIMAGESINADDITIONTOTHEBASICSANDHANDLINGIMAGESDESCRIBEDINTHISSECTION,THEJAVAAWTIMAGEPACKAGEPROVIDESMORECLASSESANDINTERFACESTHATENABLEYOUTOMODIFYIMAGESANDTHEIRINTERNALCOLORS,ORTOCREATEBITMAPIMAGESBYHANDMOSTOFTHESECLASSESREQUIREBACKGROUNDKNOWLEDGEINIMAGEPROCESSING,INCLUDINGAGOODGRASPOFCOLORMODELSANDBITWISEOPERATIONSALLTHESETHINGSAREOUTSIDETHESCOPEOFANINTRODUCTORYBOOKONJAVA,BUTIFYOUHAVETHISBACKGROUNDORYOUREINTERESTEDINTRYINGITOUT,THECLASSESINJAVAAWTIMAGEWILLBEHELPFULTOYOUTAKEALOOKATTHEEXAMPLECODEFORCREATINGANDUSINGIMAGESTHATCOMESWITHTHEJAVADEVELOPMENTKITFOREXAMPLESOFHOWTOUSETHEIMAGECLASSESCREATINGANIMATIONUSINGIMAGESCREATINGANIMATIONSBYUSINGIMAGESISMUCHTHESAMEASCREATINGIMAGESBYUSINGFONTS,COLORS,ORSHAPESYOUUSETHESAMEMETHODS,THESAMEPROCEDURESFORPAINTING,REPAINTING,ANDREDUCINGFLICKERTHATYOULEARNEDABOUTYESTERDAYTHEONLYDIFFERENCEISTHATYOUHAVEASTACKOFIMAGESTOFLIPTHROUGHRATHERTHANASETOFPAINTINGMETHODSPROBABLYTHEBESTWAYTOSHOWYOUHOWTOUSEIMAGESFORANIMATIONISSIMPLYTOWALKTHROUGHANEXAMPLEHERESANEXTENSIVEONEOFANANIMATIONOFASMALLCATCALLEDNEKOANEXAMPLENEKONEKOWASASMALLMACINTOSHANIMATION/GAMEWRITTENANDDRAWNBYKENJIGOTOHIN1989“NEKO”ISJAPANESEFOR“CAT,”ANDTHEANIMATIONISOFASMALLKITTENTHATCHASESTHEMOUSEPOINTERAROUNDTHESCREEN,SLEEPS,SCRATCHES,ANDGENERALLYACTSCUTETHENEKOPROGRAMHASSINCEBEENPORTEDTOJUSTABOUTEVERYPOSSIBLEPLATFORM,ASWELLASREWRITTENASAPOPULARSCREENSAVERFORTHISEXAMPLE,YOULLIMPLEMENTASMALLANIMATIONBASEDONTHEORIGINALNEKOGRAPHICSBECAUSETHEORIGINALNEKOTHECATWASAUTONOMOUSITCOULD“SENSE”THEEDGESOFTHEWINDOWANDTURNANDRUNINADIFFERENTDIRECTION,THISAPPLETMERELYCAUSESNEKOTORUNINFROMTHELEFTSIDEOFTHESCREEN,STOPINTHEMIDDLE,YAWN,SCRATCHITSEAR,SLEEPALITTLE,ANDTHENRUNOFFTOTHERIGHTNOTETHISISBYFARTHELARGESTOFTHEAPPLETSDISCUSSEDINTHISBOOK,ANDIFIEITHERPRINTITHEREANDTHENDESCRIBEIT,ORBUILDITUPLINEBYLINE,YOULLBEHEREFORDAYSINSTEAD,IMGOINGTODESCRIBETHEPARTSOFTHISAPPLETINDEPENDENTLY,ANDIMGOINGTOLEAVEOUTTHEBASICSTHESTUFFYOULEARNEDYESTERDAYABOUTSTARTINGANDSTOPPINGTHREADS,WHATTHERUNMETHODDOES,ANDSOONALLTHECODEISPRINTEDLATERTODAYSOTHATYOUCANPUTITALLTOGETHERBEFOREYOUBEGINWRITINGJAVACODETOCONSTRUCTANANIMATION,YOUSHOULDHAVEALLTHEIMAGESTHATFORMTHEANIMATIONITSELFFORTHISVERSIONOFNEKOTHEREARENINEOFTHEMTHEORIGINALHAS36IVESTOREDTHESEIMAGESINASUBDIRECTORYOFMYAPPLETDIRECTORYCALLED,APPROPRIATELY,IMAGESWHEREYOUSTOREYOURIMAGESISNTALLTHEIMPORTANT,BUTYOUSHOULDTAKENOTEOFWHEREYOUVEPUTTHEMBECAUSEYOULLNEEDTHATINFORMATIONNOW,ONTOTHEAPPLETTHEBASICIDEAOFANIMATIONBYUSINGIMAGESISTHATYOUHAVEASETOFIMAGES,ANDYOUDISPLAYTHEMONEATATIME,RAPIDLY,SOTHEYGIVETHEAPPEARANCEOFMOVEMENTTHEEASIESTWAYTOMANAGETHISINJAVAISTOSTORETHEIMAGESINANARRAYOFCLASSIMAGE,ANDTHENTOHAVEASPECIALVARIABLETHATSTORESAREFERENCETOTHECURRENTIMAGETECHNICALNOTETHEJAVAUTILCLASSCONTAINSACLASSHASHTABLETHATIMPLEMENTSAHASHTABLEFORLARGEAMOUNTSOFIMAGES,AHASHTABLEISFASTERTOFINDANDRETRIEVEIMAGESFROMTHANANARRAYISBECAUSEYOUHAVEARELATIVELYSMALLAMOUNTOFIMAGESHERE,ANDBECAUSEARRAYSAREEASIERTODEALWITH,ILLUSEANARRAYHEREFORTHENEKOAPPLET,YOULLINCLUDEINSTANCEVARIABLESTOIMPLEMENTBOTHTHESETHINGSANARRAYTOHOLDTHEIMAGESCALLEDNEKOPICS,ANDAVARIABLEOFTYPEIMAGETOHOLDTHECURRENTIMAGEIMAGENEKOPICSNEWIMAGE9IMAGECURRENTIMGBECAUSEYOULLNEEDTOPASSTHEPOSITIONOFTHECURRENTIMAGEAROUNDBETWEENTHEMETHODSINTHISAPPLET,YOULLALSONEEDTOKEEPTRACKOFTHECURRENTXANDYPOSITIONSTHEYSTAYSCONSTANTFORTHISPARTICULARAPPLET,BUTTHEXMAYVARYLETSADDTWOINSTANCEVARIABLESFORTHOSETWOPOSITIONSINTXPOSINTYPOS50NOW,ONTOTHEBODYOFTHEAPPLETDURINGTHEAPPLETSINITIALIZATION,YOULLREADINALLTHEIMAGESANDSTORETHEMINTHENEKOPICSARRAYTHISISTHESORTOFOPERATIONTHATWORKSESPECIALLYWELLINANINITMETHODGIVENTHATYOUHAVENINEIMAGESWITHNINEDIFFERENTFILENAMES,YOUCOULDDOASEPARATECALLTOGETIMAGEFOREACHONEYOUCANSAVEATLEASTALITTLETYPING,HOWEVER,BYCREATINGANARRAYOFTHEFILENAMESNEKOSRC,ANARRAYOFSTRINGSANDTHENJUSTUSINGAFORLOOPTOITERATEOVEREACHONEHERESTHEINITMETHODFORTHENEKOAPPLETTHATLOADSALLTHEIMAGESINTOTHENEKOPICSARRAYPUBLICVOIDINITSTRINGNEKOSRC“RIGHT1GIF”,“RIGHT2GIF”,“STOPGIF”,“YAWNGIF”,“SCRATCH1GIF”,“SCRATCH2GIF”,”SLEEP1GIF”,“SLEEP2GIF”,“AWAKEGIF”FORINTI0INEKOPICSLENGTHINEKOPICSIGETIMAGEGETCODEBASE,“IMAGES/”NEKOSRCINOTEHEREINTHECALLTOGETIMAGETHATTHEDIRECTORYTHESEIMAGESARESTOREDINISINCLUDEDASPARTOFTHEPATHWITHTHEIMAGESLOADED,THENEXTSTEPISTOSTARTANIMATINGTHEBITSOFTHEAPPLETYOUDOTHISINSIDETHEAPPLETSTHREADSRUNMETHODINTHISAPPLET,NEKODOESFIVEMAINTHINGS1RUNSINFROMTHELEFTSIDEOFTHESCREEN2STOPSINTHEMIDDLEANDYAWNS3SCRATCHESFOURTIMES4SLEEPSWAKESUPANDRUNSOFFTOTHERIGHTSIDEOFTHESCREENBECAUSEYOUCOULDANIMATETHISAPPLETBYMERELYPAINTINGTHERIGHTIMAGETOTHESCREENATTHERIGHTTIME,ITMAKESMORESENSETOWRITETHISAPPLETSOTHATMANYOFNEKOSACTIVITIESARECONTAINEDININDIVIDUALMETHODSTHISWAY,YOUCANREUSESOMEOFTHEACTIVITIESTHEANIMATIONOFNEKORUNNING,INPARTICULARIFYOUWANTNEKOTODOTHINGSINADIFFERENTORDERLETSSTARTBYCREATINGAMETHODTOMAKENEKORUNBECAUSEYOUREGOINGTOBEUSINGTHISONETWICE,MAKINGITGENERICISAGOODPLANLETSCREATETHENEKORUNMETHOD,WHICHTAKESTWOARGUMENTSTHEXPOSITIONTOSTART,ANDTHEXPOSITIONTOENDNEKOTHENRUNSBETWEENTHOSETWOPOSITIONSTHEYREMAINSCONSTANTTHEREARETWOIMAGESTHATREPRESENTNEKORUNNINGSO,TOCREATETHERUNNINGEFFECT,YOUNEEDTOALTERNATEBETWEENTHOSETWOIMAGESSTOREDINPOSITIONS0AND1OFTHEIMAGEARRAY,ASWELLASMOVETHEMACROSSTHESCREENTHEMOVINGPARTISASIMPLEFORLOOPBETWEENTHESTARTANDENDARGUMENTS,SETTINGTHEGLOBALXPOSITIONTOTHECURRENTLOOPVALUESWAPPINGTHEIMAGESMEANSMERELYTESTINGTOSEEWHICHONEISACTIVEATANYTURNOFTHELOOPANDASSIGNINGTHEOTHERONETOTHECURRENTIMAGEFINALLY,ATEACHNEWFRAME,YOULLCALLREPAINTANDSLEEPFORABITACTUALLY,GIVENTHATDURINGTHISANIMATIONTHEREWILLBEALOTOFSLEEPINGOFVARIOUSINTERVALS,ITMAKESSENSETOCREATEAMETHODTHATDOESTHESLEEPINGFORTHEAPPROPRIATETIMEINTERVALCALLITPAUSEHERESITSDEFINITIONVOIDPAUSEINTTIMETRYTHREADSLEEPTIMECATCHINTERRUPTEDEXCEPTIONEBACKTOTHENEKORUNMETHODTOSUMMARIZE,NEKORUNITERATESFROMTHESTARTPOSITIONTOTHEENDPOSITIONFOREACHTURNOFTHELOOP,ITSETSTHECURRENTXPOSITION,SETSCURRENTIMGTOTHERIGHTANIMATIONFRAME,CALLSREPAINT,ANDPAUSESGOTITHERESTHEDEFINITIONOFNEKORUNVOIDNEKORUNINTSTART,INTENDFORINTISTARTIENDI10THISXPOSI/SWAPIMAGESIFCURRENTIMGNEKOPICS0CURRENTIMGNEKOPICS1ELSEIFCURRENTIMGNEKOPICS1CURRENTIMGNEKOPICS0REPAINTPAUSE150NOTETHATINTHATSECONDLINEYOUINCREMENTTHELOOPBYTENPIXELSWHYTENPIXELS,ANDNOT,SAY,FIVEOREIGHTTHEANSWERISDETERMINEDMOSTLYTHROUGHTRIALANDERRORTOSEEWHATLOOKSRIGHTTENSEEMSTOWORKBESTFORTHEANIMATIONWHENYOUWRITEYOUROWNANIMATIONS,YOUHAVETOPLAYWITHBOTHTHEDISTANCESANDTHESLEEPTIMESUNTILYOUGETANANIMATIONYOULIKESPEAKINGOFREPAINT,LETSCOVERTHEPAINTMETHOD,WHICHPAINTSEACHFRAMEHERETHEPAINTMETHODISTRIVIALLYSIMPLEALLPAINTISRESPONSIBLEFORISPAINTINGTHECURRENTIMAGEATTHECURRENTXANDYPOSITIONSALLTHATINFORMATIONISSTOREDINGLOBALVARIABLES,SOTHEPAINTMETHODHASONLYASINGLELINEINITPUBLICVOIDPAINTGRAPHICSGGDRAWIMAGECURRENTIMG,XPOS,YPOS,THISNOWLETSBACKUPTOTHERUNMETHOD,WHERETHEMAINPROCESSINGOFTHISANIMATIONISHAPPENINGYOUVECREATEDTHENEKORUNMETHODINRUNYOULLCALLTHATMETHODWITHTHEAPPROPRIATEVALUESTOMAKENEKORUNFROMTHERIGHTEDGEOFTHESCREENTOTHECENTER/RUNFROMONESIDEOFTHESCREENTOTHEMIDDLENEKORUN0,THISSIZEWIDTH/2THESECONDMAJORTHINGNEKODOESINTHISANIMATIONISSTOPANDYAWNYOUHAVEASINGLEFRAMEFOREACHOFTHESETHINGSINPOSITIONS2AND3INTHEARRAY,SOYOUDONTREALLYNEEDASEPARATEMETHODFORTHEMALLYOUNEEDTODOISSETTHEAPPROPRIATEIMAGE,CALLREPAINT,ANDPAUSEFORTHERIGHTAMOUNTOFTIMETHISEXAMPLEPAUSESFORASECONDEACHTIMEFORBOTHSTOPPINGANDYAWNINGAGAIN,USINGTRIALANDERRORHERESTHECODE/STOPANDPAUSECURRENTIMGNEKOPICS2REPAINTPAUSE1000/YAWNCURRENTIMGNEKOPICS3REPAINTPAUSE1000中文翻译基于实时仿真的嵌入式系统结构设计摘要看这篇文章将介绍一种新的嵌入式系统设计方法。由于硬件和软件在技术发展水平上不平衡的限制,我们开发了基于使用方便的可改变结构的器件的一种仿真方法,如现场可编程门阵列FPGA。我们使用被称作为敞蓬工具箱的仿真环境;它最适合嵌入式系统的硬件设计仿真。1、绪论如今大多数现有的应用技术都被所谓的嵌入式系统统所控制1。现在存在许多需要特定的嵌入式系统构架的应用领域。因此,一个普通的嵌入式系统的定义不能被广泛的接收。在这个领域,嵌入式系统结构由受环境影响的各个有特定应用的硬件组成。同时一个有特定应用的软件涉及一个微控制器。在最近几年中微电子技术迅猛的发展,在增长微控制器和具有特点应用的硬件的复杂程度的同时,元件的成本却随之降低了。然而,嵌入式系统的开发人员不得不设计成本低、性能高的系统,而且要将产品投放市场的时间降到最低。一个必须完成且是最重要的步骤是将系统分成两部分。第一部份是涉及一个微控制器的软件。性能强劲的芯片具有数据和指令的高速缓冲存储器,以及可编程的总线接口和更高的时钟频率,极大地提升了系统的性能和简化了系统的设计。这些硬件从根本上允许实时操作系统RTOS的运行,这将使得系统迅速提高整体性能和功能复杂度。然而,如果要保证快速的响应时间,位于顶层的软件将由于任务切换机制而成为一个限制性能的因素,而且要运行具有特殊应用的硬件。这可以由正在发展的ASIC特定用途集成电路来完成。由于许多高端电子产品的生命周期越来越少,在巨额的开发费用和ASICS的限制使用之间存在着隔阂。在过去几年之内,所谓的IP核元件变得越来越流行。与软件库一样,他们提供重复利用硬件元件的可能性。为了创造这样的IP核元件,系统设计师使用现场可编程门阵列代替ASICS。设计师必须将系统设计分成特定的硬件部分和基本的微型控制器部份。2、设计方法基本上有两种主要的嵌入式系统设计方法。21硬件优先设计应用在工业上的最普遍的方法是以连续的设计流程为基础。如图1说明了这种方法的设计向导图略这种方法第一步里程碑1是嵌入式系统的详细规划,包括功能、电力消费、费用等。完成详细规划之后,紧接着是被称作为“分离”的步骤。设计将被分成两个部分硬件部分,通过在扩展硬件元件像ASICS或IP核上执行功能来实现。软件部分,通过在微控制器上运行代码来实现,代码可以单独运行,也可以与实时操作系统RTOS一起运行。第二步里程碑2基本上是依靠系统设计师的经验和直觉,完成这一步之后,将设计和执行全部的硬件结构里程碑3和4。当目标硬件可用之后,软件部分就可以执行了。连续设计流程的最后一步是测试整个系统,这意味着要评估所有的硬件元件和软件元件。不幸的是,开发人员在最后的开发阶段只能核实硬件部分的正确性或软件部分的正确性。如果有任何无法纠正的错误,设计流程必须从头开始,这将导致巨额的花费。因为这个原因,开发人员经常使用众所周知的一个理念“现有的元件比新的可利用的电路更好”。他们希望减少设计失败的风险,以及重复利用现有知识和技术。这对设计小型的系统特别重要,但不适合很复杂的系统。这种方法的另外一个缺点就是在硬件结构的设计和测试完成之前无法进行软件开发。软件开发人员不得不一直等待,直到一个无任何毛病的硬件结构产生为止。图1中里程碑2和里程碑4之间显示出了这种时间上的巨大延迟和金钱上巨额花费。总的来说,这种方法有如下几种缺点一旦发生设计错误将导致整个系统重新设计、降低了选择元件的自由度由于知识和经验的重复使用的同时也在时间上有延迟。然而硬件优先设计的方法对于设计中低等复杂度的系统来说依然是个不错选择,因为相对其他方法来说,最初的分离步骤是比较节省时间的。高端的嵌入式系统在使用新方法的时候在设计的最初阶段必须进行错误检查。22软硬件协同设计图2显示出这种方法的第一个步骤中,最关键的是完成一个详细的正式系统设计规划。这个详细规划不涉及具体的硬件或软件结构,如特定的微型控制器或IP核心。使用一些数学和计算机科学的方法,如陪替氏网、数据流图表、系统和并行程序设计语言;这种方法设法建立一个完全的系统行为描述。结果是将系统的行为功能分离,形式是设置许多不同的组件,这些组件将执行不同的功能。由于采用了正式的描述方法,就能发现不同的方法来分配这些组件。图略下一步是被称作为硬件/软件分离的步骤。功能组件将被指定在硬件中执行或在软件中执行。目标是评估组件在硬件和软件中优缺点。根据功能模块的参数,如复杂算法的运行时间,各模块之间的关系来设法发现最佳的选择。选择最佳方案之后,下一步就是执行这些组件,图2中显示这些执行分别是软件合成、界面合成、硬件合成。硬件组件可以用VHDL语言来执行,软件代码可以使用JAVA、C或者C语言编写。最后一步是系统综合,系统综合把所有硬件和软件元件汇集在一起,然后用一个步骤评估这套方案是否遵照系统规范。如果不是,硬件/软件的分离过程再重新开始。今天研究的一个根本目标是通过评估各个分离的方案来发现和优选算法。使用这些算法,它从理论上可能实现一个自动化的软硬件协同设计过程。由于算法是基于软硬件协同设计的概念,所以这种方法具有许多优点。系统设计可以在设计流程过程的前期被核实和修改。然而,使用这种方法会有一些基本的制约知识不足如所描述在这个部分,软硬件协同设计是以系统的正式描述和功能的分解为基础。为了实现实际的应用,系统开发人员必须使用可利用的组件如IP核。使用这种方法,它必须完整地描述这些元件的行为和属性。由于IP核的黑匣子本质,它不可能适合所有的情况。自由度实施软硬件协同设计的另一个障碍是无限制的使用软件元件代替硬件元件,反之亦然。在实际应用中,微控制器的自由度很小,但对于ASIC或IP核来说就有很大的自由度。这是由于相比较微控制器,IP核具有更好的应用能力。由于所提到的一些限制,一些工程不适合用软硬件协同设计的方法,如非常复杂的汽车、飞机、太空技术系统。23关于以上两种设计方法的结论这两种方法都有缺点。硬件优先设计方法不允许在连续的设计流程前期检查系统设计的正确性,软硬件协同设计的方法受到对硬件或软件IP核的内部机制了解不够的限制,以及在选择微控制器元件的自由度的限制。这两种方法都不适合开发具有高度复杂元件的嵌入式系统。根据以上的分析,我们开发了一种新的方法,这种方法集成了硬件优先设计、软硬件协同设计这两种方法的优点。3、基于仿真的设计方法通过分析,我们得到了硬件优先设计方法的主要优点。开发人员使用这种方法可以尽可能快的将注意力集中在开发原型上。这种策略主要适合于当今高科技工业的产品投放市场时间的约束。为了降低设计失败的风险和花费巨额的重新设计的费用,系统开发师通常使用已经是众所周知的元件代替新的可以利用的技术。我们的设计方法试图从快速系统设计的优势中获利,同时摆脱先前两种方法的一些受限制的缺点,这种方法可以用两个步骤来描述第一步评估系统设计这一步最基本的目标是评估在系统设计中有哪些元件可以使用。相比硬件优先设计的方法,这种方法不再局限于使用已知的或已经使用过的硬件和软件元件。所有潜在的可以利用的元件将通过如功能性、技术复杂性、易测性来分析他们的使用标准。标准的来源可以是数据表、参考手册等等。这一步将完成确定一些有可能要使用的元件,并将这些元件按顺序排列好。第二步可行性评估虽然第一步是基于在功能上是否可行的标准,但系统设计师的经验和直觉将在很大程度上影响方案的选择。为了避免致命的设计错误,第二步将对第一步的选择进行可行性评估。基本的可行性评估方法是进行系统评估。类似于电脑仿真的方法,系统评估可以通过实时检测的方法查出许多问题。非常有必要确认在第一步中使用的标准的正确性,如数据表详细规划的正确性。图略图3显示了这种方法的详细

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论