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