test_dis_interface.py

Go to the documentation of this file.
00001 import sys
00002 from debug import SAY, ERROR, DEBUG
00003 import pydim, debug
00004 from time import sleep
00005 
00006 debug._DEBUG = 1
00007 
00008 
00009 global counter
00010 counter = 1
00011 
00012 def dummy(*args):
00013     print 'I am an unbound dummy func', args
00014 
00015 def dis_service1 (tag):
00016     print 'function servce1 called'
00017     global counter
00018     return (counter, counter+1, 10.0, 10.0 , 'CUCU', 'A')
00019 
00020 class Struct:
00021     def dummy(self, *args):
00022         print 'function servce2 called'
00023         print "I am dummy func bound to Struct. Received", args
00024 
00025     def service2(self, tag):
00026         global counter
00027         counter += 1
00028         return counter
00029 
00030 
00031 print dir(pydim)
00032 
00033 
00034 def test_dis_interface():
00035     print 80*'-'
00036     x = pydim.dis_get_dns_node()
00037     pydim.dis_set_dns_node('tralala')
00038     if not pydim.dis_get_dns_node() == 'tralala':
00039         ERORR('get/set dns failed')
00040         sys.exit(1)
00041     pydim.dis_set_dns_node(x)
00042     print 'dis_get/dns_node functions tested'
00043 
00044     print 80*'-'
00045     x = pydim.dis_get_dns_port()
00046     pydim.dis_set_dns_port(-2525)
00047     if not pydim.dis_get_dns_port() == 2525:
00048         ERROR('get/set dns port failed. Received ports',x,pydim.dis_get_dns_port() )
00049     pydim.dis_set_dns_port(x)
00050     print 'dis_get/dns_port functions tested'
00051 
00052     s=Struct()
00053 
00054     pydim.dis_add_exit_handler(dummy)
00055     pydim.dis_add_exit_handler(s.dummy)
00056 
00057     pydim.dis_add_error_handler(dummy)
00058     pydim.dis_add_error_handler(s.dummy)
00059 
00060     pydim.dis_add_client_exit_handler(dummy)
00061     pydim.dis_add_client_exit_handler(s.dummy)
00062 
00063     pydim.dis_start_serving()
00064     pydim.dis_stop_serving()
00065 
00066     print 'dis_update_service', pydim.dis_update_service(1)
00067     print 'dis_selective_update_service', pydim.dis_selective_update_service(1,(1,2,3))
00068     print 'dis_selective_update_service', pydim.dis_selective_update_service(1,[1,2,3])
00069 
00070     print 'dis_set_quality', pydim.dis_set_quality(1, 10)
00071     print 'dis_set_timestamp: ', pydim.dis_set_timestamp(1,1,1)
00072     print 'dis_remove_service: ',pydim.dis_remove_service(1)
00073 
00074     print 'dis_get_next_cmnd: ',pydim.dis_get_next_cmnd(10)
00075     print 'dis_get_client: ', pydim.dis_get_client('fdas')
00076     print 'dis_get_conn_id: ', pydim.dis_get_conn_id()
00077     print 'dis_get_timeout: ', pydim.dis_get_timeout(1, 1)
00078     print 'dis_get_client_services: ', pydim.dis_get_client_services(10)
00079     print 'dis_set_client_exit_handler', pydim.dis_set_client_exit_handler(1,1)
00080     print 'dis_get_error_services', pydim.dis_get_error_services()
00081     i=1
00082     sleep(1)
00083     pydim.dis_add_cmnd('test1', "C:20", dummy, 1)
00084     pydim.dis_add_cmnd('test2', "F:2;D:2;I:3;S:1;C:5;C:1", Struct().dummy, 2)
00085 
00086     svc1 = pydim.dis_add_service('Test Service Nr.1', "F:1;I:1;D:2;C:1;C:1;", service1, 1)
00087     svc2 = pydim.dis_add_service('Test Service Nr.2', "D:1", Struct().service2, 2)
00088 
00089     print("Starting serving services 1 and 2. Their ids are", svc1, svc2)
00090     pydim.dis_start_serving()
00091     while True:
00092          global counter
00093          if counter%2:
00094              counter += 1
00095              print("Updating service nr. 1")
00096              print pydim.dis_update_service( svc1, (counter, counter+1, 999.0, 999.0 , 'BAU', 'B') )
00097              print("Updating service nr. 2")
00098              print pydim.dis_update_service(svc2, 100)
00099          else:
00100              print("Updating service nr. 1")
00101              print pydim.dis_update_service( svc1 )
00102              print("Updating service nr. 2")
00103              print pydim.dis_update_service( svc2 )
00104          sleep(5)
00105 
00106 global __dic_service_not_refreshed
00107 __dic_service_refreshed = 0
00108 
00109 def dic_command_callback(*args):
00110     print 'dic callback called. Args are', args
00111     global __dic_service_refreshed
00112     __dic_service_refreshed = 1
00113 
00114 def test_dic_interface():    
00115     pydim.dic_info_service('SERVICE_NO_FUNC', 'C:1;F:1;C:20', dic_command_callback)
00116     while not __dic_service_refreshed:
00117        sleep(1)
00118 
00119 if __name__=='__main__':
00120     test_dic_interface()
00121 
00122 

Generated on 5 Feb 2014 for PyDIM by  doxygen 1.4.7