56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from eca import *
 | |
| 
 | |
| import random
 | |
| 
 | |
| ## You might have to update the root path to point to the correct path
 | |
| ## (by default, it points to <rules>_static)
 | |
| # root_content_path = 'template_static'
 | |
| 
 | |
| 
 | |
| # binds the 'setup' function as the action for the 'init' event
 | |
| # the action will be called with the context and the event
 | |
| @event('init')
 | |
| def setup(ctx, e):
 | |
|     ctx.count = 0
 | |
|     fire('sample', {'previous': 0.0})
 | |
| 
 | |
| 
 | |
| # define a normal Python function
 | |
| def clip(lower, value, upper):
 | |
|     return max(lower, min(value, upper))
 | |
| 
 | |
| @event('sample')
 | |
| def generate_sample(ctx, e):
 | |
|     ctx.count += 1
 | |
|     if ctx.count % 50 == 0:
 | |
|         emit('debug', {'text': 'Log message #'+str(ctx.count)+'!'})
 | |
|         emit('barsample', {'action': 'reset'})
 | |
| 
 | |
|     # base sample on previous one
 | |
| 
 | |
|     sample = random.uniform(+5.0, -5.0)
 | |
| 
 | |
|     li = int(random.uniform(+5.0,0))+1
 | |
|     l = 'cat'+str(li)
 | |
|     v = random.uniform(+10.0,0)
 | |
| 
 | |
|     # emit to outside world
 | |
|     # emit('linesample',{
 | |
|         # 'action': 'add',
 | |
| 	# 'series' : 'lineA',
 | |
|         # 'value': [[ctx.count,random.uniform(+10.0,0)]]
 | |
|     # })
 | |
|     # emit('linesample',{
 | |
|         # 'action': 'add',
 | |
| 	# 'series' : 'lineB',
 | |
|         # 'value': [[ctx.count,random.uniform(+10.0,0)]]
 | |
|     # })
 | |
|     emit('barsample',{ 'action': 'set', 'series': 'serie'+str(int(random.uniform(1,4))), 'value': [l,v] })
 | |
|     emit('wordsample',{
 | |
|         'action': 'add',
 | |
|         'value': [l,v]
 | |
|     })
 | |
|     # chain event
 | |
|     fire('sample', {'previous': sample}, delay=0.05)
 | |
| 
 |