PageRenderTime 56ms CodeModel.GetById 4ms app.highlight 41ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/resources/com/ardublock/block/ardublock.xml

https://github.com/haobug/ardublock
XML | 3100 lines | 2895 code | 180 blank | 25 comment | 0 complexity | dc91ca0956c5a3b8991fbe75a260676c MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1<?xml version="1.0" encoding="UTF-8"?>
   2<!DOCTYPE BlockLangDef SYSTEM "lang_def.dtd">
   3<!-- This describes every BlockGenus, BlockDrawer, BlockFamilies in Starlogo-TNG. 
   4	Note: For BlockGenus, if genus A relies on another genus B, that genus B 
   5	must be specified in the xml file before genus A is specified./ We impose 
   6	this requirement so that sanity checks can be made regarding the validity 
   7	of a default argument when the BlockGenuses are first loaded. -->
   8<BlockLangDef>
   9
  10	<BlockConnectorShapes>
  11		<BlockConnectorShape shape-type="number"
  12			shape-number="1" />
  13		<BlockConnectorShape shape-type="number-list"
  14			shape-number="2" />
  15		<BlockConnectorShape shape-type="number-inv"
  16			shape-number="3" />
  17		<BlockConnectorShape shape-type="boolean"
  18			shape-number="4" />
  19		<BlockConnectorShape shape-type="boolean-list"
  20			shape-number="5" />
  21		<BlockConnectorShape shape-type="boolean-inv"
  22			shape-number="6" />
  23		<BlockConnectorShape shape-type="string"
  24			shape-number="7" />
  25		<BlockConnectorShape shape-type="string-list"
  26			shape-number="8" />
  27		<BlockConnectorShape shape-type="string-inv"
  28			shape-number="9" />
  29		<BlockConnectorShape shape-type="poly"
  30			shape-number="10" />
  31		<BlockConnectorShape shape-type="poly-list"
  32			shape-number="11" />
  33		<BlockConnectorShape shape-type="poly-inv"
  34			shape-number="12" />
  35		<BlockConnectorShape shape-type="proc-param"
  36			shape-number="13" />
  37		<BlockConnectorShape shape-type="cmd"
  38			shape-number="14" />
  39	</BlockConnectorShapes>
  40
  41	<BlockGenuses>
  42		<!-- Number -->
  43
  44		<BlockGenus name="number" kind="data" color="208 10 16"
  45			initlabel="bg.number" editable-label="yes">
  46			<BlockConnectors>
  47				<BlockConnector connector-type="number"
  48					connector-kind="plug" position-type="mirror" />
  49			</BlockConnectors>
  50		</BlockGenus>
  51
  52		<BlockGenus name="digital-high" kind="data" color="208 10 16"
  53			initlabel="bg.digital-high">
  54			<BlockConnectors>
  55				<BlockConnector connector-type="boolean"
  56					connector-kind="plug" position-type="mirror" />
  57			</BlockConnectors>
  58		</BlockGenus>
  59		<BlockGenus name="digital-low" kind="data" color="208 10 16"
  60			initlabel="bg.digital-low">
  61			<BlockConnectors>
  62				<BlockConnector connector-type="boolean"
  63					connector-kind="plug" position-type="mirror" />
  64			</BlockConnectors>
  65		</BlockGenus>
  66
  67		<BlockGenus name="digital-on" kind="data" color="208 10 16"
  68			initlabel="bg.digital-on">
  69			<BlockConnectors>
  70				<BlockConnector connector-type="boolean"
  71					connector-kind="plug" position-type="mirror" />
  72			</BlockConnectors>
  73		</BlockGenus>
  74
  75		<BlockGenus name="digital-off" kind="data" color="208 10 16"
  76			initlabel="bg.digital-off">
  77			<BlockConnectors>
  78				<BlockConnector connector-type="boolean"
  79					connector-kind="plug" position-type="mirror" />
  80			</BlockConnectors>
  81		</BlockGenus>
  82
  83		<BlockGenus name="true" kind="data" initlabel="bg.true"
  84			color="208 10 16">
  85			<description>
  86				<text>
  87					Reports the boolean true.
  88				</text>
  89			</description>
  90			<BlockConnectors>
  91				<BlockConnector connector-kind="plug" connector-type="boolean"
  92					position-type="mirror" />
  93			</BlockConnectors>
  94		</BlockGenus>
  95
  96		<BlockGenus name="false" kind="data" initlabel="bg.false"
  97			color="208 10 16">
  98			<description>
  99				<text>
 100					Reports the boolean false.
 101				</text>
 102			</description>
 103			<BlockConnectors>
 104				<BlockConnector connector-kind="plug" connector-type="boolean"
 105					position-type="mirror" />
 106			</BlockConnectors>
 107		</BlockGenus>
 108
 109		<BlockGenus name="message" kind="data" color="0 0 255"
 110			initlabel="bg.message" editable-label="yes">
 111			<description>
 112				<text>string message</text>
 113			</description>
 114			<BlockConnectors>
 115				<BlockConnector connector-type="string"
 116					connector-kind="plug" />
 117				<BlockConnector connector-type="string"
 118					connector-kind="socket" />
 119			</BlockConnectors>
 120		</BlockGenus>
 121
 122		<BlockGenus name="glue_sn" kind="data" color="127 127 127"
 123			initlabel="bg.glue_sn">
 124			<description>
 125				<text>glue number to string</text>
 126			</description>
 127			<BlockConnectors>
 128				<BlockConnector connector-type="string"
 129					connector-kind="plug" />
 130				<BlockConnector connector-type="number"
 131					connector-kind="socket" />
 132			</BlockConnectors>
 133		</BlockGenus>
 134
 135		<BlockGenus name="glue_sb" kind="data" color="127 127 127"
 136			initlabel="bg.glue_sb">
 137			<description>
 138				<text>glue boolean to string</text>
 139			</description>
 140			<BlockConnectors>
 141				<BlockConnector connector-type="string"
 142					connector-kind="plug" />
 143				<BlockConnector connector-type="boolean"
 144					connector-kind="socket" />
 145			</BlockConnectors>
 146		</BlockGenus>
 147
 148		<!-- Basic -->
 149
 150		<BlockGenus name="loop" kind="command" color="255 221 0"
 151			initlabel="bg.loop" is-starter="yes" is-terminator="yes"
 152			label-unique="yes">
 153			<description>
 154				<text>this is the loop of the arduino</text>
 155			</description>
 156			<BlockConnectors>
 157				<BlockConnector connector-type="cmd" connector-kind="socket"
 158					label="bc.do" />
 159			</BlockConnectors>
 160		</BlockGenus>
 161
 162		<BlockGenus name="pin-read-digital" kind="data" color="77 191 169"
 163			initlabel="bg.pin-read-digital">
 164			<description>
 165				<text>Read digital value from pin</text>
 166			</description>
 167			<BlockConnectors>
 168				<BlockConnector connector-type="number"
 169					connector-kind="socket" label="#">
 170					<DefaultArg genus-name="number" label="1" />
 171				</BlockConnector>
 172				<BlockConnector connector-type="boolean"
 173					connector-kind="plug" />
 174			</BlockConnectors>
 175		</BlockGenus>
 176
 177		<BlockGenus name="pin-read-analog" kind="data" color="77 191 169"
 178			initlabel="bg.pin-read-analog">
 179			<description>
 180				<text>Read analog value from pin</text>
 181			</description>
 182			<BlockConnectors>
 183				<BlockConnector connector-type="number"
 184					connector-kind="socket" label="#">
 185					<DefaultArg genus-name="number" label="1" />
 186				</BlockConnector>
 187				<BlockConnector connector-type="number"
 188					connector-kind="plug" />
 189			</BlockConnectors>
 190		</BlockGenus>
 191
 192		<BlockGenus name="pin-write-digital" kind="command" color="77 191 169"
 193			initlabel="bg.pin-write-digital">
 194			<description>
 195				<text>write digital to pin</text>
 196			</description>
 197			<BlockConnectors>
 198				<BlockConnector connector-type="number"
 199					connector-kind="socket" label="#">
 200					<DefaultArg genus-name="number" label="1" />
 201				</BlockConnector>
 202				<BlockConnector connector-type="boolean"
 203					connector-kind="socket">
 204					<DefaultArg genus-name="digital-high" label="HIGH" />
 205				</BlockConnector>
 206			</BlockConnectors>
 207		</BlockGenus>
 208
 209		<BlockGenus name="setter_variable_number" kind="command"
 210			color="255 0 0" initlabel="bg.setter_variable_number">
 211			<description>
 212				<text>set a number variable</text>
 213			</description>
 214			<BlockConnectors>
 215				<BlockConnector connector-type="number"
 216					connector-kind="socket" label="bc.variable">
 217					<DefaultArg genus-name="variable_number" label="var name" />
 218				</BlockConnector>
 219				<BlockConnector connector-type="number"
 220					connector-kind="socket" label="bc.value">
 221					<DefaultArg genus-name="number" label="0" />
 222				</BlockConnector>
 223			</BlockConnectors>
 224		</BlockGenus>
 225
 226		<BlockGenus name="variable_number" kind="data"
 227			initlabel="bg.variable_number" editable-label="yes" is-label-value="yes"
 228			color="255 0 255">
 229			<description>
 230				<text>
 231					Digital Var
 232				</text>
 233			</description>
 234			<BlockConnectors>
 235				<BlockConnector connector-type="number"
 236					connector-kind="plug" position-type="mirror" />
 237			</BlockConnectors>
 238		</BlockGenus>
 239
 240		<BlockGenus name="setter_variable_digital" kind="command"
 241			color="255 0 0" initlabel="bg.setter_variable_digital">
 242			<description>
 243				<text>write digital to pin</text>
 244			</description>
 245			<BlockConnectors>
 246				<BlockConnector connector-type="boolean"
 247					connector-kind="socket" label="bc.variable">
 248					<DefaultArg genus-name="variable_digital" label="variable name" />
 249				</BlockConnector>
 250				<BlockConnector connector-type="boolean"
 251					connector-kind="socket" label="bc.value">
 252					<DefaultArg genus-name="digital-high" label="HIGH" />
 253				</BlockConnector>
 254			</BlockConnectors>
 255		</BlockGenus>
 256
 257		<BlockGenus name="variable_digital" kind="data"
 258			initlabel="bg.variable_digital" editable-label="yes" is-label-value="yes"
 259			color="255 0 255">
 260			<description>
 261				<text>
 262					Digital Var
 263				</text>
 264			</description>
 265			<BlockConnectors>
 266				<BlockConnector connector-type="boolean"
 267					connector-kind="plug" position-type="mirror" />
 268			</BlockConnectors>
 269		</BlockGenus>
 270
 271		<BlockGenus name="pin-write-analog" kind="command" color="77 191 169"
 272			initlabel="bg.pin-write-analog">
 273			<description>
 274				<text>write analog to pin</text>
 275			</description>
 276			<BlockConnectors>
 277				<BlockConnector connector-type="number"
 278					connector-kind="socket" label="#">
 279					<DefaultArg genus-name="number" label="1" />
 280				</BlockConnector>
 281				<BlockConnector connector-type="number"
 282					connector-kind="socket">
 283					<DefaultArg genus-name="number" label="255" />
 284				</BlockConnector>
 285			</BlockConnectors>
 286		</BlockGenus>
 287
 288		<BlockGenus name="servo" kind="command" color="77 191 169"
 289			initlabel="bg.servo">
 290			<description>
 291				<text>set a pin to pwm</text>
 292			</description>
 293			<BlockConnectors>
 294				<BlockConnector connector-type="number"
 295					connector-kind="socket" label="bc.pin_number">
 296					<DefaultArg genus-name="number" label="1" />
 297				</BlockConnector>
 298				<BlockConnector connector-type="number"
 299					connector-kind="socket" label="bc.angle">
 300					<DefaultArg genus-name="number" label="1" />
 301				</BlockConnector>
 302			</BlockConnectors>
 303		</BlockGenus>
 304
 305		<BlockGenus name="ultrasonic" kind="data" color="77 191 169"
 306			initlabel="bg.ultrasonic">
 307			<description>
 308				<text>Ultrasonic distance sensor</text>
 309			</description>
 310			<BlockConnectors>
 311				<BlockConnector connector-type="number"
 312					connector-kind="plug" label="cm" />
 313				<BlockConnector connector-type="number"
 314					connector-kind="socket" label="trigger #">
 315					<DefaultArg genus-name="number" label="1" />
 316				</BlockConnector>
 317				<BlockConnector connector-type="number"
 318					connector-kind="socket" label="echo #">
 319					<DefaultArg genus-name="number" label="2" />
 320				</BlockConnector>
 321			</BlockConnectors>
 322			<Images>
 323				<Image>
 324					<FileLocation>com/ardublock/block/ultrasonic.jpg</FileLocation>
 325				</Image>
 326			</Images>
 327		</BlockGenus>
 328
 329		<BlockGenus name="tone" kind="command" color="77 191 169"
 330			initlabel="tone">
 331			<description>
 332				<text>Generates a square wave of the specified frequency (and 50%
 333					duty cycle) on a pin.
 334				</text>
 335			</description>
 336			<BlockConnectors>
 337				<BlockConnector connector-type="number"
 338					connector-kind="socket" label="bc.pin_number">
 339					<DefaultArg genus-name="number" label="8" />
 340				</BlockConnector>
 341				<BlockConnector connector-type="number"
 342					connector-kind="socket" label="bc.frequency">
 343					<DefaultArg genus-name="number" label="440" />
 344				</BlockConnector>
 345
 346			</BlockConnectors>
 347		</BlockGenus>
 348
 349		<BlockGenus name="tone_time" kind="command" color="77 191 169"
 350			initlabel="tone">
 351			<description>
 352				<text>Generates a square wave of the specified frequency (and 50%
 353					duty cycle) on a pin.
 354				</text>
 355			</description>
 356			<BlockConnectors>
 357				<BlockConnector connector-type="number"
 358					connector-kind="socket" label="bc.pin_number">
 359					<DefaultArg genus-name="number" label="8" />
 360				</BlockConnector>
 361				<BlockConnector connector-type="number"
 362					connector-kind="socket" label="bc.frequency">
 363					<DefaultArg genus-name="number" label="440" />
 364				</BlockConnector>
 365				<BlockConnector connector-type="number"
 366					connector-kind="socket" label="bc.milliseconds">
 367					<DefaultArg genus-name="number" label="1000" />
 368				</BlockConnector>
 369			</BlockConnectors>
 370		</BlockGenus>
 371
 372		<BlockGenus name="no_tone" kind="command" color="77 191 169"
 373			initlabel="noTone">
 374			<description>
 375				<text>Stops the generation of a square wave triggered by tone().
 376				</text>
 377			</description>
 378			<BlockConnectors>
 379				<BlockConnector connector-type="number"
 380					connector-kind="socket" label="bc.pin_number">
 381					<DefaultArg genus-name="number" label="8" />
 382				</BlockConnector>
 383			</BlockConnectors>
 384		</BlockGenus>
 385
 386
 387
 388		<BlockGenus name="if" kind="command" initlabel="bg.if"
 389			color="255 221 0">
 390			<description>
 391				<text>
 392					If
 393					<arg n="1" />
 394					is true, the agent will run the blocks attached to
 395					<arg n="2" />
 396				</text>
 397				<arg-description n="1" name="test">
 398					The condition being
 399					tested.
 400				</arg-description>
 401
 402				<arg-description n="2" name="then">
 403					The set of instructions
 404					that is done when the condition is true.
 405				</arg-description>
 406			</description>
 407			<BlockConnectors>
 408				<BlockConnector label="bc.test" connector-kind="socket"
 409					connector-type="boolean" />
 410				<BlockConnector label="bc.then" connector-kind="socket"
 411					connector-type="cmd" />
 412			</BlockConnectors>
 413		</BlockGenus>
 414
 415		<BlockGenus name="ifelse" kind="command" initlabel="bg.ifelse"
 416			color="255 221 0">
 417			<description>
 418				<text>
 419					Does the first set of commands if the condition specified is
 420					true,
 421					otherwise it will do the second set of commands.
 422				</text>
 423				<arg-description n="1" name="test">
 424					The condition being
 425					tested.
 426				</arg-description>
 427
 428				<arg-description n="2" name="then">
 429					The set of instructions
 430					that is done when the condition is true.
 431				</arg-description>
 432
 433				<arg-description n="3" name="else">
 434					The set of instructions
 435					that is done when the condition is false.
 436				</arg-description>
 437			</description>
 438			<BlockConnectors>
 439				<BlockConnector label="bc.test" connector-kind="socket"
 440					connector-type="boolean" />
 441				<BlockConnector label="bc.then" connector-kind="socket"
 442					connector-type="cmd" />
 443				<BlockConnector label="bc.else" connector-kind="socket"
 444					connector-type="cmd" />
 445			</BlockConnectors>
 446		</BlockGenus>
 447
 448		<BlockGenus name="while" kind="command" initlabel="bg.while"
 449			color="255 221 0">
 450			<description>
 451				<text>
 452					While Block
 453				</text>
 454			</description>
 455			<BlockConnectors>
 456				<BlockConnector label="bc.condition" connector-kind="socket"
 457					connector-type="boolean" />
 458				<BlockConnector label="" connector-kind="socket"
 459					connector-type="cmd" />
 460			</BlockConnectors>
 461		</BlockGenus>
 462
 463		<BlockGenus name="repeat_times" kind="command" color="255 221 0"
 464			initlabel="bg.repeat_times">
 465			<description>
 466				<text>repeat</text>
 467			</description>
 468			<BlockConnectors>
 469				<BlockConnector connector-type="number"
 470					connector-kind="socket">
 471					<DefaultArg genus-name="number" label="5" />
 472				</BlockConnector>
 473				<BlockConnector connector-type="cmd" connector-kind="socket" />
 474			</BlockConnectors>
 475		</BlockGenus>
 476		
 477		<BlockGenus name="subroutine" kind="command" color="177 10 255" initlabel="bg.subroutine" is-starter="yes" is-terminator="yes"
 478			label-unique="yes" editable-label="yes">
 479		    <description>
 480		    	<text>subroutine</text>
 481		    </description>
 482		    <BlockConnectors>
 483		        <BlockConnector connector-type="cmd" connector-kind="socket" />
 484		    </BlockConnectors>
 485		</BlockGenus>
 486		
 487		<BlockGenus name="subroutine-ref" kind="command" color="177 10 255" initlabel="bg.subroutine" editable-label="yes">
 488		    <description>
 489		    	<text>invoke subroutine</text>
 490		    </description>
 491		</BlockGenus>
 492
 493		<!-- operator -->
 494
 495		<BlockGenus name="and" kind="data" initlabel="bg.and"
 496			color="149 193 31">
 497			<description>
 498				<text>
 499					Reports true if both of the two conditions are true.
 500				</text>
 501			</description>
 502			<BlockConnectors>
 503				<BlockConnector connector-kind="plug" connector-type="boolean" />
 504				<BlockConnector label="" connector-kind="socket"
 505					connector-type="boolean" />
 506				<BlockConnector label="" connector-kind="socket"
 507					connector-type="boolean" />
 508			</BlockConnectors>
 509		</BlockGenus>
 510
 511
 512		<BlockGenus name="or" kind="function" initlabel="bg.or"
 513			color="149 193 31">
 514			<description>
 515				<text>
 516					Reports true if one or both of the two conditions are true.
 517				</text>
 518			</description>
 519			<BlockConnectors>
 520				<BlockConnector connector-kind="plug" connector-type="boolean" />
 521				<BlockConnector label="" connector-kind="socket"
 522					connector-type="boolean" />
 523				<BlockConnector label="" connector-kind="socket"
 524					connector-type="boolean" />
 525			</BlockConnectors>
 526		</BlockGenus>
 527
 528		<BlockGenus name="not" kind="function" initlabel="bg.not"
 529			color="149 193 31">
 530			<description>
 531				<text>
 532					Reports the opposite of
 533					<arg n="1" />
 534					.
 535				</text>
 536			</description>
 537			<BlockConnectors>
 538				<BlockConnector connector-kind="plug" connector-type="boolean" />
 539				<BlockConnector label="" connector-kind="socket"
 540					connector-type="boolean" />
 541			</BlockConnectors>
 542		</BlockGenus>
 543
 544
 545		<!-- Math -->
 546
 547		<BlockGenus name="addition" kind="function" initlabel="bg.addition"
 548			color="149 193 31">
 549			<description>
 550				<text>
 551					Reports the sum of two numbers (
 552					<arg n="1" />
 553					+
 554					<arg n="2" />
 555					).
 556				</text>
 557			</description>
 558			<BlockConnectors>
 559				<BlockConnector label="" connector-kind="plug"
 560					connector-type="number" position-type="mirror" />
 561				<BlockConnector label="" connector-kind="socket"
 562					connector-type="number" position-type="bottom" />
 563				<BlockConnector label="" connector-kind="socket"
 564					connector-type="number" position-type="bottom" />
 565			</BlockConnectors>
 566		</BlockGenus>
 567
 568		<BlockGenus name="subtraction" kind="function" initlabel="bg.subtraction"
 569			color="149 193 31">
 570			<description>
 571				<text>
 572					Reports the difference of two numbers (
 573					<arg n="1" />
 574					-
 575					<arg n="2" />
 576					).
 577				</text>
 578			</description>
 579			<BlockConnectors>
 580				<BlockConnector label="" connector-kind="plug"
 581					connector-type="number" position-type="mirror" />
 582				<BlockConnector label="" connector-kind="socket"
 583					connector-type="number" position-type="bottom" />
 584				<BlockConnector label="" connector-kind="socket"
 585					connector-type="number" position-type="bottom" />
 586			</BlockConnectors>
 587		</BlockGenus>
 588
 589		<BlockGenus name="multiplication" kind="function"
 590			initlabel="bg.multiplication" color="149 193 31">
 591			<description>
 592				<text>
 593					Reports the product of two numbers (
 594					<arg n="1" />
 595					x
 596					<arg n="2" />
 597					).
 598				</text>
 599			</description>
 600			<BlockConnectors>
 601				<BlockConnector label="" connector-kind="plug"
 602					connector-type="number" position-type="mirror" />
 603				<BlockConnector label="" connector-kind="socket"
 604					connector-type="number" position-type="bottom" />
 605				<BlockConnector label="" connector-kind="socket"
 606					connector-type="number" position-type="bottom" />
 607			</BlockConnectors>
 608		</BlockGenus>
 609
 610		<BlockGenus name="division" kind="function" initlabel="bg.division"
 611			color="149 193 31">
 612			<description>
 613				<text>
 614					Reports the quotient of two numbers (
 615					<arg n="1" />
 616					÷
 617					<arg n="2" />
 618					).
 619				</text>
 620			</description>
 621			<BlockConnectors>
 622				<BlockConnector label="" connector-kind="plug"
 623					connector-type="number" position-type="mirror" />
 624				<BlockConnector label="" connector-kind="socket"
 625					connector-type="number" position-type="bottom" />
 626				<BlockConnector label="" connector-kind="socket"
 627					connector-type="number" position-type="bottom" />
 628			</BlockConnectors>
 629		</BlockGenus>
 630
 631		<BlockGenus name="modulo" kind="function" color="149 193 31"
 632			initlabel="bg.modulo">
 633			<BlockConnectors>
 634				<BlockConnector label="" connector-kind="plug"
 635					connector-type="number" position-type="mirror" />
 636				<BlockConnector label="" connector-kind="socket"
 637					connector-type="number" position-type="bottom" />
 638				<BlockConnector label="" connector-kind="socket"
 639					connector-type="number" position-type="bottom" />
 640			</BlockConnectors>
 641		</BlockGenus>
 642
 643		<BlockGenus name="min" kind="function" color="149 193 31"
 644			initlabel="bg.min">
 645			<BlockConnectors>
 646				<BlockConnector connector-type="number"
 647					connector-kind="plug" position-type="mirror" />
 648				<BlockConnector connector-type="number"
 649					connector-kind="socket" position-type="bottom" />
 650				<BlockConnector connector-type="number"
 651					connector-kind="socket" position-type="bottom" />
 652			</BlockConnectors>
 653		</BlockGenus>
 654
 655		<BlockGenus name="max" kind="function" color="149 193 31"
 656			initlabel="bg.max">
 657			<BlockConnectors>
 658				<BlockConnector connector-type="number"
 659					connector-kind="plug" position-type="mirror" />
 660				<BlockConnector connector-type="number"
 661					connector-kind="socket" position-type="bottom" />
 662				<BlockConnector connector-type="number"
 663					connector-kind="socket" position-type="bottom" />
 664			</BlockConnectors>
 665		</BlockGenus>
 666
 667		<BlockGenus name="greater" kind="function" color="149 193 31"
 668			initlabel="bg.greater">
 669			<description>
 670				<text>is upper number greater then lower?</text>
 671			</description>
 672			<BlockConnectors>
 673				<BlockConnector connector-type="boolean"
 674					connector-kind="plug" position-type="mirror" />
 675				<BlockConnector connector-type="number"
 676					connector-kind="socket" position-type="bottom" />
 677				<BlockConnector connector-type="number"
 678					connector-kind="socket" position-type="bottom" />
 679			</BlockConnectors>
 680		</BlockGenus>
 681
 682		<BlockGenus name="less" kind="function" color="149 193 31"
 683			initlabel="bg.less">
 684			<description>
 685				<text>is upper number less then lower?</text>
 686			</description>
 687			<BlockConnectors>
 688				<BlockConnector connector-type="boolean"
 689					connector-kind="plug" position-type="mirror" />
 690				<BlockConnector connector-type="number"
 691					connector-kind="socket" position-type="bottom" />
 692				<BlockConnector connector-type="number"
 693					connector-kind="socket" position-type="bottom" />
 694			</BlockConnectors>
 695		</BlockGenus>
 696
 697		<BlockGenus name="equal" kind="function" color="149 193 31"
 698			initlabel="bg.equal">
 699			<description>
 700				<text>is upper number greater then lower?</text>
 701			</description>
 702			<BlockConnectors>
 703				<BlockConnector connector-type="boolean"
 704					connector-kind="plug" position-type="mirror" />
 705				<BlockConnector connector-type="number"
 706					connector-kind="socket" position-type="bottom" />
 707				<BlockConnector connector-type="number"
 708					connector-kind="socket" position-type="bottom" />
 709			</BlockConnectors>
 710		</BlockGenus>
 711
 712		<BlockGenus name="greater_equal" kind="function" color="149 193 31"
 713			initlabel="bg.greater_equal">
 714			<description>
 715				<text>is upper number greater then lower?</text>
 716			</description>
 717			<BlockConnectors>
 718				<BlockConnector connector-type="boolean"
 719					connector-kind="plug" position-type="mirror" />
 720				<BlockConnector connector-type="number"
 721					connector-kind="socket" position-type="bottom" />
 722				<BlockConnector connector-type="number"
 723					connector-kind="socket" position-type="bottom" />
 724			</BlockConnectors>
 725		</BlockGenus>
 726
 727		<BlockGenus name="less_equal" kind="function" color="149 193 31"
 728			initlabel="bg.less_equal">
 729			<description>
 730				<text>is upper number greater then lower?</text>
 731			</description>
 732			<BlockConnectors>
 733				<BlockConnector connector-type="boolean"
 734					connector-kind="plug" position-type="mirror" />
 735				<BlockConnector connector-type="number"
 736					connector-kind="socket" position-type="bottom" />
 737				<BlockConnector connector-type="number"
 738					connector-kind="socket" position-type="bottom" />
 739			</BlockConnectors>
 740		</BlockGenus>
 741
 742		<BlockGenus name="not_equal" kind="function" color="149 193 31"
 743			initlabel="bg.not_equal">
 744			<description>
 745				<text>is upper number greater then lower?</text>
 746			</description>
 747			<BlockConnectors>
 748				<BlockConnector connector-type="boolean"
 749					connector-kind="plug" position-type="mirror" />
 750				<BlockConnector connector-type="number"
 751					connector-kind="socket" position-type="bottom" />
 752				<BlockConnector connector-type="number"
 753					connector-kind="socket" position-type="bottom" />
 754			</BlockConnectors>
 755		</BlockGenus>
 756
 757		<BlockGenus name="abs" kind="function" color="149 193 31"
 758			initlabel="bg.abs">
 759			<BlockConnectors>
 760				<BlockConnector connector-type="number"
 761					connector-kind="plug" />
 762				<BlockConnector connector-type="number"
 763					connector-kind="socket" />
 764			</BlockConnectors>
 765		</BlockGenus>
 766
 767		<BlockGenus name="pow" kind="function" color="149 193 31"
 768			initlabel="bg.pow">
 769			<BlockConnectors>
 770				<BlockConnector connector-type="number"
 771					connector-kind="plug" />
 772				<BlockConnector connector-type="number"
 773					connector-kind="socket" label="bc.base" />
 774				<BlockConnector connector-type="number"
 775					connector-kind="socket" label="bc.exponent" />
 776			</BlockConnectors>
 777		</BlockGenus>
 778
 779		<BlockGenus name="sqrt" kind="function" color="149 193 31"
 780			initlabel="bg.sqrt">
 781			<BlockConnectors>
 782				<BlockConnector connector-type="number"
 783					connector-kind="plug" />
 784				<BlockConnector connector-type="number"
 785					connector-kind="socket" />
 786			</BlockConnectors>
 787		</BlockGenus>
 788
 789		<BlockGenus name="sin" kind="function" color="149 193 31"
 790			initlabel="bg.sin">
 791			<BlockConnectors>
 792				<BlockConnector connector-type="number"
 793					connector-kind="plug" />
 794				<BlockConnector connector-type="number"
 795					connector-kind="socket" />
 796			</BlockConnectors>
 797		</BlockGenus>
 798
 799		<BlockGenus name="cos" kind="function" color="149 193 31"
 800			initlabel="bg.cos">
 801			<BlockConnectors>
 802				<BlockConnector connector-type="number"
 803					connector-kind="plug" />
 804				<BlockConnector connector-type="number"
 805					connector-kind="socket" />
 806			</BlockConnectors>
 807		</BlockGenus>
 808
 809		<BlockGenus name="tan" kind="function" color="149 193 31"
 810			initlabel="bg.tan">
 811			<BlockConnectors>
 812				<BlockConnector connector-type="number"
 813					connector-kind="plug" />
 814				<BlockConnector connector-type="number"
 815					connector-kind="socket" />
 816			</BlockConnectors>
 817		</BlockGenus>
 818
 819
 820
 821
 822		<!-- Utility -->
 823		<BlockGenus name="delay" kind="command" color="142 160 210"
 824			initlabel="bg.delay">
 825			<description>
 826				<text>program delay in x milliseconds</text>
 827			</description>
 828			<BlockConnectors>
 829				<BlockConnector connector-type="number"
 830					connector-kind="socket" label="bc.milliseconds">
 831					<DefaultArg genus-name="number" label="1000" />
 832				</BlockConnector>
 833			</BlockConnectors>
 834		</BlockGenus>
 835
 836		<BlockGenus name="delay_microseconds" kind="command" color="142 160 210"
 837			initlabel="bg.delay_microseconds">
 838			<description>
 839				<text>program delay in x milliseconds</text>
 840			</description>
 841			<BlockConnectors>
 842				<BlockConnector connector-type="number"
 843					connector-kind="socket" label="bc.microseconds">
 844					<DefaultArg genus-name="number" label="1000" />
 845				</BlockConnector>
 846			</BlockConnectors>
 847		</BlockGenus>
 848
 849		<BlockGenus name="random" kind="data" color="142 160 210"
 850			initlabel="bg.random">
 851			<description>
 852				<text>generate a random number less than the number</text>
 853			</description>
 854			<BlockConnectors>
 855				<BlockConnector connector-type="number"
 856					connector-kind="plug" />
 857				<BlockConnector connector-type="number"
 858					connector-kind="socket" label="bc.max">
 859					<DefaultArg genus-name="number" label="1024" />
 860				</BlockConnector>
 861			</BlockConnectors>
 862		</BlockGenus>
 863
 864		<BlockGenus name="millis" kind="data" color="142 160 210"
 865			initlabel="bg.millis">
 866			<description>
 867				<text>generate a random number less than the number</text>
 868			</description>
 869			<BlockConnectors>
 870				<BlockConnector connector-type="number"
 871					connector-kind="plug" position-type="mirror" />
 872			</BlockConnectors>
 873		</BlockGenus>
 874
 875		<BlockGenus name="serial_println" kind="command" color="142 160 210"
 876			initlabel="bg.serial_println">
 877			<description>
 878				<text>send message via Serial port</text>
 879			</description>
 880			<BlockConnectors>
 881				<BlockConnector connector-type="string"
 882					connector-kind="socket">
 883					<DefaultArg genus-name="message" label="message" />
 884				</BlockConnector>
 885			</BlockConnectors>
 886		</BlockGenus>
 887
 888		<BlockGenus name="map_common" kind="data" color="142 160 210"
 889			initlabel="bg.map_common">
 890			<description>
 891				<text>map value from [0, 1023] to [0, 255]</text>
 892			</description>
 893			<BlockConnectors>
 894				<BlockConnector connector-type="number"
 895					connector-kind="plug" />
 896				<BlockConnector connector-type="number"
 897					connector-kind="socket" label="bc.value">
 898					<DefaultArg genus-name="number" label="1" />
 899				</BlockConnector>
 900			</BlockConnectors>
 901		</BlockGenus>
 902
 903		<BlockGenus name="map" kind="data" color="142 160 210"
 904			initlabel="bg.map">
 905			<description>
 906				<text>map</text>
 907			</description>
 908			<BlockConnectors>
 909				<BlockConnector connector-type="number"
 910					connector-kind="plug" />
 911				<BlockConnector connector-type="number"
 912					connector-kind="socket" label="bc.value" />
 913				<BlockConnector connector-type="number"
 914					connector-kind="socket" label="bc.from">
 915					<DefaultArg genus-name="number" label="0" />
 916				</BlockConnector>
 917				<BlockConnector connector-type="number"
 918					connector-kind="socket">
 919					<DefaultArg genus-name="number" label="1023" />
 920				</BlockConnector>
 921				<BlockConnector connector-type="number"
 922					connector-kind="socket" label="bc.to">
 923					<DefaultArg genus-name="number" label="0" />
 924				</BlockConnector>
 925				<BlockConnector connector-type="number"
 926					connector-kind="socket">
 927					<DefaultArg genus-name="number" label="255" />
 928				</BlockConnector>
 929			</BlockConnectors>
 930		</BlockGenus>
 931
 932		<BlockGenus name="wire_read" kind="data" color="142 160 210"
 933			initlabel="bg.wire_read">
 934			<description>
 935				<text>read data from i2c</text>
 936			</description>
 937			<BlockConnectors>
 938				<BlockConnector connector-type="number"
 939					connector-kind="plug" />
 940				<BlockConnector connector-type="number"
 941					connector-kind="socket" label="bc.device_address">
 942					<DefaultArg genus-name="number" label="0" />
 943				</BlockConnector>
 944				<BlockConnector connector-type="number"
 945					connector-kind="socket" label="bc.register_address">
 946					<DefaultArg genus-name="number" label="0" />
 947				</BlockConnector>
 948			</BlockConnectors>
 949		</BlockGenus>
 950
 951		<BlockGenus name="wire_write" kind="command" color="142 160 210"
 952			initlabel="bg.wire_write">
 953			<description>
 954				<text>write data via I2C</text>
 955			</description>
 956			<BlockConnectors>
 957				<BlockConnector connector-type="number"
 958					connector-kind="socket" label="bc.device_address">
 959					<DefaultArg genus-name="number" label="0" />
 960				</BlockConnector>
 961				<BlockConnector connector-type="number"
 962					connector-kind="socket" label="bc.register_address">
 963					<DefaultArg genus-name="number" label="0" />
 964				</BlockConnector>
 965				<BlockConnector connector-type="number"
 966					connector-kind="socket" label="bc.value">
 967					<DefaultArg genus-name="number" label="0" />
 968				</BlockConnector>
 969			</BlockConnectors>
 970		</BlockGenus>
 971
 972		<BlockGenus name="wire_isread" kind="data" color="142 160 210"
 973			initlabel="bg.wire_isread">
 974			<description>
 975				<text>is last read from I2C success?</text>
 976			</description>
 977			<BlockConnectors>
 978				<BlockConnector connector-type="boolean"
 979					connector-kind="plug" position-type="mirror" />
 980			</BlockConnectors>
 981		</BlockGenus>
 982
 983		<!--************************************************************** TinkerKit! **********************************************************************-->
 984		<BlockGenus name="Tinker_LED" kind="command" color="255 255 255"
 985			initlabel="bg.Tinker_LED">
 986			<description>
 987				<text>TinkerKit LED</text>
 988			</description>
 989			<BlockConnectors>
 990				<BlockConnector connector-type="number"
 991					connector-kind="socket" label="bc.pin_number">
 992					<DefaultArg genus-name="Tinker_O1" label="O1" />
 993				</BlockConnector>
 994				<BlockConnector connector-type="boolean"
 995					connector-kind="socket" label="bc.status">
 996					<DefaultArg genus-name="digital-on" label="ON" />
 997				</BlockConnector>
 998			</BlockConnectors>
 999			<Images>
1000				<Image>
1001					<FileLocation>com/ardublock/block/arduino/Tinker_LED.jpg</FileLocation>
1002				</Image>
1003			</Images>
1004		</BlockGenus>
1005
1006		<BlockGenus name="Tinker_LED_pwm" kind="command" color="255 255 255"
1007			initlabel="bg.Tinker_LED_pwm">
1008			<description>
1009				<text>TinkerKit LED</text>
1010			</description>
1011			<BlockConnectors>
1012				<BlockConnector connector-type="number"
1013					connector-kind="socket" label="bc.pin_number">
1014					<DefaultArg genus-name="Tinker_O1" label="O1" />
1015				</BlockConnector>
1016				<BlockConnector connector-type="number"
1017					connector-kind="socket" label="bc.level">
1018					<DefaultArg genus-name="number" label="255" />
1019				</BlockConnector>
1020			</BlockConnectors>
1021			<Images>
1022				<Image>
1023					<FileLocation>com/ardublock/block/arduino/Tinker_LED.jpg</FileLocation>
1024				</Image>
1025			</Images>
1026		</BlockGenus>
1027
1028		<BlockGenus name="Tinker_Mosfet" kind="command" color="255 255 255"
1029			initlabel="bg.Tinker_Mosfet">
1030			<description>
1031				<text>TinkerKit Mosfet</text>
1032			</description>
1033			<BlockConnectors>
1034				<BlockConnector connector-type="number"
1035					connector-kind="socket" label="bc.pin_number">
1036					<DefaultArg genus-name="Tinker_O1" label="O1" />
1037				</BlockConnector>
1038				<BlockConnector connector-type="boolean"
1039					connector-kind="socket" label="bc.status">
1040					<DefaultArg genus-name="digital-high" label="HIGH" />
1041				</BlockConnector>
1042			</BlockConnectors>
1043			<Images>
1044				<Image>
1045					<FileLocation>com/ardublock/block/arduino/Tinker_Mosfet.jpg</FileLocation>
1046				</Image>
1047			</Images>
1048		</BlockGenus>
1049
1050		<BlockGenus name="Tinker_Mosfet_pwm" kind="command" color="255 255 255"
1051			initlabel="bg.Tinker_Mosfet_pwm">
1052			<description>
1053				<text>TinkerKit Mosfet</text>
1054			</description>
1055			<BlockConnectors>
1056				<BlockConnector connector-type="number"
1057					connector-kind="socket" label="bc.pin_number">
1058					<DefaultArg genus-name="Tinker_O1" label="O1" />
1059				</BlockConnector>
1060				<BlockConnector connector-type="number"
1061					connector-kind="socket" label="bc.level">
1062					<DefaultArg genus-name="number" label="255" />
1063				</BlockConnector>
1064			</BlockConnectors>
1065			<Images>
1066				<Image>
1067					<FileLocation>com/ardublock/block/arduino/Tinker_Mosfet.jpg</FileLocation>
1068				</Image>
1069			</Images>
1070		</BlockGenus>
1071
1072		<BlockGenus name="Tinker_Relay" kind="command" color="255 255 255"
1073			initlabel="bg.Tinker_Relay">
1074			<description>
1075				<text>TinkerKit Relay</text>
1076			</description>
1077			<BlockConnectors>
1078				<BlockConnector connector-type="number"
1079					connector-kind="socket" label="bc.pin_number">
1080					<DefaultArg genus-name="Tinker_O1" label="O1" />
1081				</BlockConnector>
1082				<BlockConnector connector-type="boolean"
1083					connector-kind="socket" label="bc.status">
1084					<DefaultArg genus-name="digital-high" label="HIGH" />
1085				</BlockConnector>
1086			</BlockConnectors>
1087			<Images>
1088				<Image>
1089					<FileLocation>com/ardublock/block/arduino/Tinker_Relay.jpg</FileLocation>
1090				</Image>
1091			</Images>
1092		</BlockGenus>
1093
1094		<BlockGenus name="Tinker_Servo" kind="command" color="255 255 255"
1095			initlabel="bg.Tinker_Servo">
1096			<description>
1097				<text>TinkerKit Servo</text>
1098			</description>
1099			<BlockConnectors>
1100				<BlockConnector connector-type="number"
1101					connector-kind="socket" label="bc.pin_number">
1102					<DefaultArg genus-name="Tinker_O1" label="O1" />
1103				</BlockConnector>
1104				<BlockConnector connector-type="number"
1105					connector-kind="socket" label="bc.angle">
1106					<DefaultArg genus-name="number" label="90" />
1107				</BlockConnector>
1108			</BlockConnectors>
1109			<Images>
1110				<Image>
1111					<FileLocation>com/ardublock/block/arduino/Tinker_Servo.jpg</FileLocation>
1112				</Image>
1113			</Images>
1114		</BlockGenus>
1115
1116		<BlockGenus name="Tinker_Button" kind="data" color="255 255 255"
1117			initlabel="bg.Tinker_Button">
1118			<description>
1119				<text>TinkerKit Button</text>
1120			</description>
1121			<BlockConnectors>
1122				<BlockConnector connector-type="boolean"
1123					connector-kind="plug" />
1124				<BlockConnector connector-type="number"
1125					connector-kind="socket" label="bc.pin_number">
1126					<DefaultArg genus-name="Tinker_I1" label="I1" />
1127				</BlockConnector>
1128			</BlockConnectors>
1129			<Images>
1130				<Image>
1131					<FileLocation>com/ardublock/block/arduino/Tinker_Button.png</FileLocation>
1132				</Image>
1133			</Images>
1134		</BlockGenus>
1135
1136		<BlockGenus name="Tinker_Accmeter" kind="data" color="255 255 255"
1137			initlabel="bg.Tinker_Accmeter">
1138			<description>
1139				<text>TinkerKit Accelerometer</text>
1140			</description>
1141			<BlockConnectors>
1142				<BlockConnector connector-type="number"
1143					connector-kind="plug" />
1144				<BlockConnector connector-type="number"
1145					connector-kind="socket" label="bc.pin_number">
1146					<DefaultArg genus-name="Tinker_I1" label="I1" />
1147				</BlockConnector>
1148			</BlockConnectors>
1149			<Images>
1150				<Image>
1151					<FileLocation>com/ardublock/block/arduino/Tinker_Accmeter.png</FileLocation>
1152				</Image>
1153			</Images>
1154		</BlockGenus>
1155
1156		<BlockGenus name="Tinker_Hall" kind="data" color="255 255 255"
1157			initlabel="bg.Tinker_Hall">
1158			<description>
1159				<text>TinkerKit Hall Sensor</text>
1160			</description>
1161			<BlockConnectors>
1162				<BlockConnector connector-type="number"
1163					connector-kind="plug" />
1164				<BlockConnector connector-type="number"
1165					connector-kind="socket" label="bc.pin_number">
1166					<DefaultArg genus-name="Tinker_I1" label="I1" />
1167				</BlockConnector>
1168			</BlockConnectors>
1169			<Images>
1170				<Image>
1171					<FileLocation>com/ardublock/block/arduino/Tinker_Hall.png</FileLocation>
1172				</Image>
1173			</Images>
1174		</BlockGenus>
1175
1176		<BlockGenus name="Tinker_LDR" kind="data" color="255 255 255"
1177			initlabel="bg.Tinker_LDR">
1178			<description>
1179				<text>TinkerKit LDR</text>
1180			</description>
1181			<BlockConnectors>
1182				<BlockConnector connector-type="number"
1183					connector-kind="plug" />
1184				<BlockConnector connector-type="number"
1185					connector-kind="socket" label="bc.pin_number">
1186					<DefaultArg genus-name="Tinker_I1" label="I1" />
1187				</BlockConnector>
1188			</BlockConnectors>
1189			<Images>
1190				<Image>
1191					<FileLocation>com/ardublock/block/arduino/Tinker_LDR.jpg</FileLocation>
1192				</Image>
1193			</Images>
1194		</BlockGenus>
1195
1196		<BlockGenus name="Tinker_LinearPotentiometer" kind="data"
1197			color="255 255 255" initlabel="bg.Tinker_LinearPotentiometer">
1198			<description>
1199				<text>TinkerKit Accelerometer</text>
1200			</description>
1201			<BlockConnectors>
1202				<BlockConnector connector-type="number"
1203					connector-kind="plug" />
1204				<BlockConnector connector-type="number"
1205					connector-kind="socket" label="bc.pin_number">
1206					<DefaultArg genus-name="Tinker_I1" label="I1" />
1207				</BlockConnector>
1208			</BlockConnectors>
1209			<Images>
1210				<Image>
1211					<FileLocation>com/ardublock/block/arduino/Tinker_LinearPotentiometer.jpg</FileLocation>
1212				</Image>
1213			</Images>
1214		</BlockGenus>
1215
1216		<BlockGenus name="Tinker_RotaryPotentiometer" kind="data"
1217			color="255 255 255" initlabel="bg.Tinker_RotaryPotentiometer">
1218			<description>
1219				<text>TinkerKit RotaryPotentiometer</text>
1220			</description>
1221			<BlockConnectors>
1222				<BlockConnector connector-type="number"
1223					connector-kind="plug" />
1224				<BlockConnector connector-type="number"
1225					connector-kind="socket" label="bc.pin_number">
1226					<DefaultArg genus-name="Tinker_I1" label="I1" />
1227				</BlockConnector>
1228			</BlockConnectors>
1229			<Images>
1230				<Image>
1231					<FileLocation>com/ardublock/block/arduino/Tinker_RotaryPotentiometer.jpg</FileLocation>
1232				</Image>
1233			</Images>
1234		</BlockGenus>
1235
1236		<BlockGenus name="Tinker_Thermistor" kind="data" color="255 255 255"
1237			initlabel="bg.Tinker_Thermistor">
1238			<description>
1239				<text>TinkerKit Thermistor</text>
1240			</description>
1241			<BlockConnectors>
1242				<BlockConnector connector-type="number"
1243					connector-kind="plug" />
1244				<BlockConnector connector-type="number"
1245					connector-kind="socket" label="bc.pin_number">
1246					<DefaultArg genus-name="Tinker_I1" label="I1" />
1247				</BlockConnector>
1248			</BlockConnectors>
1249			<Images>
1250				<Image>
1251					<FileLocation>com/ardublock/block/arduino/Tinker_Thermistor.jpg</FileLocation>
1252				</Image>
1253			</Images>
1254		</BlockGenus>
1255
1256		<BlockGenus name="Tinker_Touch" kind="data" color="255 255 255"
1257			initlabel="bg.Tinker_Touch">
1258			<description>
1259				<text>TinkerKit Touch Sensor</text>
1260			</description>
1261			<BlockConnectors>
1262				<BlockConnector connector-type="boolean"
1263					connector-kind="plug" />
1264				<BlockConnector connector-type="number"
1265					connector-kind="socket" label="bc.pin_number">
1266					<DefaultArg genus-name="Tinker_I1" label="I1" />
1267				</BlockConnector>
1268			</BlockConnectors>
1269			<Images>
1270				<Image>
1271					<FileLocation>com/ardublock/block/arduino/Tinker_Touch.jpg</FileLocation>
1272				</Image>
1273			</Images>
1274		</BlockGenus>
1275
1276		<BlockGenus name="Tinker_Servo" kind="command" color="255 255 255"
1277			initlabel="bg.Tinker_Servo">
1278			<description>
1279				<text>TinkerKit Servo</text>
1280			</description>
1281			<BlockConnectors>
1282				<BlockConnector connector-type="number"
1283					connector-kind="socket" label="bc.pin_number">
1284					<DefaultArg genus-name="Tinker_I1" label="I1" />
1285				</BlockConnector>
1286				<BlockConnector connector-type="number"
1287					connector-kind="socket" label="bc.angle">
1288					<DefaultArg genus-name="number" label="90" />
1289				</BlockConnector>
1290			</BlockConnectors>
1291			<Images>
1292				<Image>
1293					<FileLocation>com/ardublock/block/arduino/Tinker_Servo.jpg</FileLocation>
1294				</Image>
1295			</Images>
1296		</BlockGenus>
1297
1298
1299		<BlockGenus name="Tinker_Tilt" kind="data" color="255 255 255"
1300			initlabel="bg.Tinker_Tilt">
1301			<description>
1302				<text>TinkerKit Tilt</text>
1303			</description>
1304			<BlockConnectors>
1305				<BlockConnector connector-type="boolean"
1306					connector-kind="plug" />
1307				<BlockConnector connector-type="number"
1308					connector-kind="socket" label="bc.pin_number">
1309					<DefaultArg genus-name="Tinker_I1" label="I1" />
1310				</BlockConnector>
1311			</BlockConnectors>
1312			<Images>
1313				<Image>
1314					<FileLocation>com/ardublock/block/arduino/Tinker_Tilt.jpg</FileLocation>
1315				</Image>
1316			</Images>
1317		</BlockGenus>
1318
1319		<BlockGenus name="Tinker_I0" kind="data" color="255 255 255"
1320			initlabel="bg.Tinker_I0" editable-label="no">
1321			<BlockConnectors>
1322				<BlockConnector connector-type="number"
1323					connector-kind="plug" position-type="mirror" />
1324			</BlockConnectors>
1325		</BlockGenus>
1326		<BlockGenus name="Tinker_I1" kind="data" color="255 255 255"
1327			initlabel="bg.Tinker_I1" editable-label="no">
1328			<BlockConnectors>
1329				<BlockConnector connector-type="number"
1330					connector-kind="plug" position-type="mirror" />
1331			</BlockConnectors>
1332		</BlockGenus>
1333		<BlockGenus name="Tinker_I2" kind="data" color="255 255 255"
1334			initlabel="bg.Tinker_I2" editable-label="no">
1335			<BlockConnectors>
1336				<BlockConnector connector-type="number"
1337					connector-kind="plug" position-type="mirror" />
1338			</BlockConnectors>
1339		</BlockGenus>
1340		<BlockGenus name="Tinker_I3" kind="data" color="255 255 255"
1341			initlabel="bg.Tinker_I3" editable-label="no">
1342			<BlockConnectors>
1343				<BlockConnector connector-type="number"
1344					connector-kind="plug" position-type="mirror" />
1345			</BlockConnectors>
1346		</BlockGenus>
1347		<BlockGenus name="Tinker_I4" kind="data" color="255 255 255"
1348			initlabel="bg.Tinker_I4" editable-label="no">
1349			<BlockConnectors>
1350				<BlockConnector connector-type="number"
1351					connector-kind="plug" position-type="mirror" />
1352			</BlockConnectors>
1353		</BlockGenus>
1354		<BlockGenus name="Tinker_I5" kind="data" color="255 255 255"
1355			initlabel="bg.Tinker_I5" editable-label="no">
1356			<BlockConnectors>
1357				<BlockConnector connector-type="number"
1358					connector-kind="plug" position-type="mirror" />
1359			</BlockConnectors>
1360		</BlockGenus>
1361
1362		<BlockGenus name="Tinker_O0" kind="data" color="214 169 54"
1363			initlabel="bg.Tinker_O0" editable-label="no">
1364			<BlockConnectors>
1365				<BlockConnector connector-type="number"
1366					connector-kind="plug" position-type="mirror" />
1367			</BlockConnectors>
1368		</BlockGenus>
1369		<BlockGenus name="Tinker_O1" kind="data" color="214 169 54"
1370			initlabel="bg.Tinker_O1" editable-label="no">
1371			<BlockConnectors>
1372				<BlockConnector connector-type="number"
1373					connector-kind="plug" position-type="mirror" />
1374			</BlockConnectors>
1375		</BlockGenus>
1376		<BlockGenus name="Tinker_O2" kind="data" color="214 169 54"
1377			initlabel="bg.Tinker_O2" editable-label="no">
1378			<BlockConnectors>
1379				<BlockConnector connector-type="number"
1380					connector-kind="plug" position-type="mirror" />
1381			</BlockConnectors>
1382		</BlockGenus>
1383		<BlockGenus name="Tinker_O3" kind="data" color="214 169 54"
1384			initlabel="bg.Tinker_O3" editable-label="no">
1385			<BlockConnectors>
1386				<BlockConnector connector-type="number"
1387					connector-kind="plug" position-type="mirror" />
1388			</BlockConnectors>
1389		</BlockGenus>
1390		<BlockGenus name="Tinker_O4" kind="data" color="214 169 54"
1391			initlabel="bg.Tinker_O4" editable-label="no">
1392			<BlockConnectors>
1393				<BlockConnector connector-type="number"
1394					connector-kind="plug" position-type="mirror" />
1395			</BlockConnectors>
1396		</BlockGenus>
1397		<BlockGenus name="Tinker_O5" kind="data" color="214 169 54"
1398			initlabel="bg.Tinker_O5" editable-label="no">
1399			<BlockConnectors>
1400				<BlockConnector connector-type="number"
1401					connector-kind="plug" position-type="mirror" />
1402			</BlockConnectors>
1403		</BlockGenus>
1404
1405		<!-- Xinchejian -->
1406
1407		<BlockGenus name="xcj_motor_forward" kind="command" color="0 255 0"
1408			initlabel="bg.xcj_motor_forward">
1409			<description>
1410				<text>forward</text>
1411			</description>
1412			<BlockConnectors>
1413				<BlockConnector connector-type="number"
1414					connector-kind="socket" label="M#">
1415					<DefaultArg genus-name="number" label="1" />
1416				</BlockConnector>
1417				<BlockConnector connector-type="number"
1418					connector-kind="socket" label="speed">
1419					<DefaultArg genus-name="number" label="255" />
1420				</BlockConnector>
1421			</BlockConnectors>
1422			<Images>
1423				<Image>
1424					<FileLocation>com/ardublock/block/motor.jpg</FileLocation>
1425				</Image>
1426			</Images>
1427		</BlockGenus>
1428
1429		<BlockGenus name="xcj_motor_backward" kind="command" color="0 255 0"
1430			initlabel="bg.xcj_motor_backward">
1431			<description>
1432				<text>Moving the car backward</text>
1433			</description>
1434			<BlockConnectors>
1435				<BlockConnector connector-type="number"
1436					connector-kind="socket" label="M#">
1437					<DefaultArg genus-name="number" label="1" />
1438				</BlockConnector>
1439				<BlockConnector connector-type="number"
1440					connector-kind="socket" label="speed">
1441					<DefaultArg genus-name="number" label="255" />
1442				</BlockConnector>
1443			</BlockConnectors>
1444			<Images>
1445				<Image>
1446					<FileLocation>com/ardublock/block/motor.jpg</FileLocation>
1447				</Image>
1448			</Images>
1449		</BlockGenus>
1450
1451		<BlockGenus name="xcj_ms_digital_write" kind="command"
1452			color="0 255 0" initlabel="bg.xcj_ms_digital_write">
1453			<description>
1454				<text>Write ditial singal to Socket</text>
1455			</description>
1456			<BlockConnectors>
1457				<BlockConnector connector-type="number"
1458					connector-kind="socket" label="S#">
1459					<DefaultArg genus-name="number" label="1" />
1460				</BlockConnector>
1461				<BlockConnector connector-type="boolean"
1462					connector-kind="socket" label="bc.status">
1463					<DefaultArg genus-name="digital-high" label="HIGH" />
1464				</BlockConnector>
1465			</BlockConnectors>
1466		</BlockGenus>
1467
1468		<BlockGenus name="xcj_ms_digital_read" kind="data" color="0 255 0"
1469			initlabel="bg.xcj_ms_digital_read">
1470			<description>
1471				<text>Read digital status from socket</text>
1472			</description>
1473			<BlockConnectors>
1474				<BlockConnector connector-type="boolean"
1475					connector-kind="plug" />
1476				<BlockConnector connector-type="number"
1477					connector-kind="socket" label="S#">
1478					<DefaultArg genus-name="number" label="1" />
1479				</BlockConnector>
1480			</BlockConnectors>
1481		</BlockGenus>
1482
1483		<!--************************************************************** DFRobot ***************************************************************************-->
1484
1485
1486		<BlockGenus name="df_digital_viberation_sensor" kind="data"
1487			color="255 102 0" initlabel="bg.df_digital_viberation_sensor">
1488			<BlockConnectors>
1489				<BlockConnector connector-type="boolean"
1490					connector-kind="plug" />
1491				<BlockConnector connector-type="number"
1492					connector-kind="socket" label="bc.pin_number">
1493					<DefaultArg genus-name="number" label="1" />
1494				</BlockConnector>
1495			</BlockConnectors>
1496			<Images>
1497				<Image>
1498					<FileLocation>com/ardublock/block/dfrobot/dfr0027.png</FileLocation>
1499				</Image>
1500			</Images>
1501		</BlockGenus>
1502		
1503		<BlockGenus name="df_digital_tilt_sensor" kind="data"
1504			color="255 102 0" initlabel="bg.df_digital_tilt_sensor">
1505			<BlockConnectors>
1506				<BlockConnector connector-type="boolean"
1507					connector-kind="plug" />
1508				<BlockConnector connector-type="number"
1509					connector-kind="socket" label="bc.pin_number">
1510					<DefaultArg genus-name="number" label="1" />
1511				</BlockConnector>
1512			</BlockConnectors>
1513			<Images>
1514				<Image>
1515					<FileLocation>com/ardublock/block/dfrobot/dfr0028.png</FileLocation>
1516				</Image>
1517			</Images>
1518		</BlockGenus>
1519
1520		<BlockGenus name="df_digital_infrared_motion_sensor" kind="data"
1521			color="255 102 0" initlabel="bg.df_digital_infrared_motion_sensor">
1522			<BlockConnectors>
1523				<BlockConnector connector-type="boolean"
1524					connector-kind="plug" />
1525				<BlockConnector connector-type="number"
1526					connector-kind="socket" label="bc.pin_number">
1527					<DefaultArg genus-name="number" label="1" />
1528				</BlockConnector>
1529			</BlockConnectors>
1530			<Images>
1531				<Image>
1532					<FileLocation>com/ardublock/block/dfrobot/sen0018.png</FileLocation>
1533				</Image>
1534			</Images>
1535		</BlockGenus>
1536
1537		<BlockGenus name="df_digital_ir_receiver_module" kind="data"
1538			color="255 102 0" initlabel="bg.df_digital_ir_receiver_module">
1539			<BlockConnectors>
1540				<BlockConnector connector-type="boolean"
1541					connector-kind="plug" />
1542				<BlockConnector connector-type="number"
1543					connector-kind="socket" label="bc.pin_number">
1544					<DefaultArg genus-name="number" label="1" />
1545				</BlockConnector>
1546			</BlockConnectors>
1547			<Images>
1548				<Image>
1549					<FileLocation>com/ardublock/block/dfrobot/dfr0094.jpg</FileLocation>
1550				</Image>
1551			</Images>
1552		</BlockGenus>
1553
1554		<BlockGenus name="df_adjustable_infrared_sensor_switch"
1555			kind="data" color="255 102 0" initlabel="bg.df_adjustable_infrared_sensor_switch">
1556			<BlockConnectors>
1557				<BlockConnector connector-type="boolean"
1558					connector-kind="plug" />
1559				<BlockConnector connector-type="number"
1560					connector-kind="socket" label="bc.pin_number">
1561					<DefaultArg genus-name="number" label="1" />
1562				</Bloc…

Large files files are truncated, but you can click here to view the full file