# Code Blocks
Blocks:
- name: pc_ledWrite
parameter:
- {type: number, label: bc.pc_led, default: [number, '1']}
- {type: boolean, label: bc.pc_state, default: [digital-on, 'ON']}
return:
translator:
name: PcLedWrite
headers: ['PC42.h', 'Wire.h']
setup: ['pc.begin();']
code:
- 'return "pc.ledWrite(" + arg1 + ", " + arg2 + ");";'
properties:
bg.pc_ledWrite: Led Write
# Common properties
Properties:
bc.pc_led: Led
bc.pc_state: State
<BlockGenus name="pc_ledWrite" kind="command" color="160 0 0" initlabel="bg.pc_ledWrite">
<BlockConnectors>
<BlockConnector connector-type="number" connector-kind="socket" label="bc.pc_led">
<DefaultArg genus-name="number" label="1" />
</BlockConnector>
<BlockConnector connector-type="boolean" connector-kind="socket" label="bc.pc_state">
<DefaultArg genus-name="digital-on" label="ON" />
</BlockConnector>
</BlockConnectors>
</BlockGenus>
<BlockDrawerSets>
<BlockDrawerSet name="factory" type="stack" location="southwest" window-per-drawer="no" drawer-draggable="no">
<BlockDrawer button-color="160 0 0" name="bd.Picuino" type="factory">
<BlockGenusMember>pc_ledWrite</BlockGenusMember>
</BlockDrawer>
</BlockDrawerSet>
</BlockDrawerSets>
bg.pc_ledWrite=Led Write
bc.pc_led=Led
bc.pc_state=State
package com.ardublock.translator.block;
import com.ardublock.translator.Translator;
import com.ardublock.translator.block.NumberBlock;
import com.ardublock.translator.block.TranslatorBlock;
import com.ardublock.translator.block.exception.BlockException;
import com.ardublock.translator.block.exception.SocketNullException;
import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
public class PcLedWrite extends TranslatorBlock {
public PcLedWrite(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) {
super(blockId, translator, codePrefix, codeSuffix, label);
}
@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException {
translator.addHeaderFile("PC42.h");
translator.addHeaderFile("Wire.h");
translator.addSetupCommand("pc.begin();");
TranslatorBlock translatorBlock;
translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String arg1 = translatorBlock.toCode();
translatorBlock = this.getRequiredTranslatorBlockAtSocket(1);
String arg2 = translatorBlock.toCode();
return "pc.ledWrite(" + arg1 + ", " + arg2 + ");";
}
}
Definitions:
- pc3: &PICUINO_BEGIN [pc_begin, pc_dispBegin, pc_buzzBegin, pc_ledBegin, pc_keyBegin]
Blocks:
- name: *PICUINO_BEGIN
parameter:
return:
translator:
name: PcBegin
headers: ['PC42.h', 'Wire.h']
setup: ['pc.begin();']
code:
- 'String functionName = this.getTranslator().getBlock(blockId).getGenusName();'
- 'if (functionName == "pc_keyBegin")'
- ' return "pc.keyBegin();";'
- 'else if (functionName == "pc_ledBegin")'
- ' return "pc.ledBegin();";'
- 'else if (functionName == "pc_buzzBegin")'
- ' return "pc.buzzBegin();";'
- 'else if (functionName == "pc_dispBegin")'
- ' return "pc.dispBegin();";'
- 'else'
- ' return "pc.begin();";'
properties:
bg.pc_begin: Reset Panel
bg.pc_keyBegin: Reset Keys
bg.pc_ledBegin: Reset Leds
bg.pc_buzzBegin: Reset Buzzer
bg.pc_dispBegin: Reset Display