@@ -737,6 +737,82 @@ Blockly.Python['coderbot_adv_cnn_classify'] = function(block) {
737
737
return [ class_scores , Blockly . Python . ORDER_ATOMIC ] ;
738
738
} ;
739
739
740
+
741
+ Blockly . Blocks [ 'coderbot_event_generator' ] = {
742
+ init : function ( ) {
743
+ this . appendStatementInput ( "event_generator_function" )
744
+ . appendField ( "event generator" )
745
+ . setCheck ( null ) ;
746
+ this . setColour ( 15 ) ;
747
+ this . setTooltip ( "event generator" ) ;
748
+ this . setHelpUrl ( "" ) ;
749
+ }
750
+ } ;
751
+
752
+ var coderbot_generator_id = 1 ;
753
+ Blockly . Python [ 'coderbot_event_generator' ] = function ( block ) {
754
+ Blockly . Generator . prototype . INDENT = ' ' ;
755
+ var statements_event_generator = Blockly . Python . statementToCode ( block , 'event_generator_function' ) ;
756
+ Blockly . Generator . prototype . INDENT = ' ' ;
757
+ // TODO: Assemble Python into code variable.
758
+ var code = 'def event_generator_' + coderbot_generator_id + '():\n' +
759
+ ' while True:\n' +
760
+ ' get_prog_eng().check_end()\n' +
761
+ statements_event_generator + '\n' +
762
+ 'get_event().register_event_generator(event_generator_' + coderbot_generator_id + ')'
763
+ coderbot_generator_id ++ ;
764
+ return code ;
765
+ } ;
766
+
767
+ Blockly . Blocks [ 'coderbot_event_listener' ] = {
768
+ init : function ( ) {
769
+ this . appendDummyInput ( )
770
+ . appendField ( "event listener for: " )
771
+ . appendField ( new Blockly . FieldDropdown ( [ [ "image/classified" , "image/classified" ] , [ "image/face_detected" , "image/face_detected" ] , [ "sonar/obstacle" , "sonar/obstacle" ] ] ) , "event_topic" ) ;
772
+ this . appendStatementInput ( "event_listener_code" )
773
+ . setCheck ( null ) ;
774
+ this . setColour ( 15 ) ;
775
+ this . setTooltip ( "event listener" ) ;
776
+ this . setHelpUrl ( "" ) ;
777
+ }
778
+ } ;
779
+
780
+ var coderbot_listener_id = 1 ;
781
+ Blockly . Python [ 'coderbot_event_listener' ] = function ( block ) {
782
+ var event_topic = block . getFieldValue ( 'event_topic' ) ;
783
+ var statements_event_listener = Blockly . Python . statementToCode ( block , 'event_listener_code' ) ;
784
+ // TODO: Assemble Python into code variable.
785
+ var code = 'def event_listener_' + coderbot_listener_id + '(event_data):\n' +
786
+ statements_event_listener + '\n' +
787
+ 'get_event().register_event_listener(\'' + event_topic + '\', event_listener_' + coderbot_listener_id + ')'
788
+ coderbot_listener_id ++ ;
789
+ return code ;
790
+ } ;
791
+
792
+ Blockly . Blocks [ 'coderbot_event_publisher' ] = {
793
+ init : function ( ) {
794
+ this . appendDummyInput ( )
795
+ . appendField ( "publish event on topic:" )
796
+ . appendField ( new Blockly . FieldTextInput ( "event_topic" ) , "event_topic" ) ;
797
+ this . appendValueInput ( "event_data" )
798
+ . setCheck ( null )
799
+ . appendField ( "data:" ) ;
800
+ this . setInputsInline ( true ) ;
801
+ this . setPreviousStatement ( true , null ) ;
802
+ this . setNextStatement ( true , null ) ;
803
+ this . setColour ( 15 ) ;
804
+ this . setTooltip ( "event publisher" ) ;
805
+ this . setHelpUrl ( "" ) ;
806
+ }
807
+ } ;
808
+
809
+ Blockly . Python [ 'coderbot_event_publisher' ] = function ( block ) {
810
+ var event_topic = block . getFieldValue ( 'event_topic' ) ;
811
+ var event_data = Blockly . Python . valueToCode ( block , 'event_data' , Blockly . Python . ORDER_ATOMIC ) ;
812
+ var code = 'get_event().get_publisher(\'' + event_topic + '\').publish(' + event_data + ')' ;
813
+ return code ;
814
+ } ;
815
+
740
816
Blockly . Blocks [ 'coderbot_audio_record' ] = {
741
817
/**
742
818
* Block for findLogo function.
0 commit comments