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