drivers/unix/unix.c
changeset 162 8331c670a3de
parent 155 746b49869cbc
child 197 182008694a32
equal deleted inserted replaced
161:c4908cc776a9 162:8331c670a3de
   156         	fprintf(stderr,"CanOpen : Can Driver dll not loaded\n");
   156         	fprintf(stderr,"CanOpen : Can Driver dll not loaded\n");
   157         	return NULL;
   157         	return NULL;
   158 	}
   158 	}
   159 #endif	
   159 #endif	
   160 	CAN_HANDLE fd0 = DLL_CALL(canOpen)(board);
   160 	CAN_HANDLE fd0 = DLL_CALL(canOpen)(board);
   161 
   161 	if(fd0){
   162 	canports[i].used = 1;
   162 		canports[i].used = 1;
   163 	canports[i].fd = fd0;
   163 		canports[i].fd = fd0;
   164 	canports[i].d = d;
   164 		canports[i].d = d;
   165 
       
   166 	CreateReceiveTask(&(canports[i]), &canports[i].receiveTask, &canReceiveLoop);
       
   167 	
   165 	
   168 	EnterMutex();
   166 		CreateReceiveTask(&(canports[i]), &canports[i].receiveTask, &canReceiveLoop);
   169 	d->canHandle = (CAN_PORT)&canports[i];
   167 		
   170 	LeaveMutex();
   168 		EnterMutex();
   171 	return (CAN_PORT)&canports[i];
   169 		d->canHandle = (CAN_PORT)&canports[i];
       
   170 		LeaveMutex();
       
   171 		return (CAN_PORT)&canports[i];
       
   172 	}else{
       
   173         	fprintf(stderr,"CanOpen : Cannot open board {busname='%s',baudrate='%s'}\n",board->busname, board->baudrate);
       
   174 		return NULL;
       
   175 	}
   172 }
   176 }
   173 
   177 
   174 int canClose(CO_Data * d)
   178 int canClose(CO_Data * d)
   175 {
   179 {
   176 	EnterMutex();
   180 	EnterMutex();