示例#1
0
int main()
{
    HANDLE fd; 
    DCB OldConf;
    char cad[16]="Enviando Texto\n";
    int n;
    
    fd=Open_Port("COM1");               // Abre el puerto serie
                                        // fd=Open_Port("/dev/ttyS0"); 
    
    OldConf=Get_Configure_Port(fd);     // guardo la configuracion del puerto 
    
    Configure_Port(fd,B115200,"8N1");   // Configuro el puerto serie 
    
    IO_Blocking(fd,TRUE);               // Bloqueante por defecto, pero tambien
                                        // se puede usar
                                        // IO_Blocking(fd,TRUE); 
    
    n=Write_Port(fd,cad,16);            // Escribo en el puerto serie
    
    Create_Thread_Port(&fd);            // Creo un hilo y le paso el manejador 

    while(TRUE);
    
    Set_Configure_Port(fd,OldConf);     // Restituyo la antigua configuracion 
                                        // del puerto 

    Close_Port(fd);                     // Cierro el puerto serie 
    
    printf("\nPresione ENTER para terminar\n");
    getchar();
    
    return 0;
}
示例#2
0
文件: term.c 项目: erhuoqiang/Linux-C
int main(int argc, char **argv)
{
     INT8  port_fd = 0;
     msg_que msg_buf;
     int err = 0;
     rev_pthread_param rev_param;
     pthread_t rev_pthid,read_msg_pthid; //pthread;

     port_fd = Open_Port(DEV_PORT0);
     Serial_Init(port_fd, 115200, 8, 'N', 1);
     rev_param.port_id = port_fd;// Init port_id

     Create_MSG_QUE("./term.c",6);  //Create message queue attention  the path
     err = pthread_create(&rev_pthid, NULL,(void *(*)(void *))Data_Rev, (void *)&rev_param);
     if(err != 0 )
        printf("Create Data_Rev pthread error!\n");
     else
        printf("Create Data_Rev pthread success!\n");
     err = pthread_create(&read_msg_pthid, NULL,(void *(*)(void *))Read_MSG_QUE, (void *)NULL);
     if(err != 0 )
        printf("Create Read_MSG_QUE pthread error!\n");
     else
        printf("Create Read_MSG_QUE pthread success!\n");
     while(1);

}
示例#3
0
static PyObject *
RegisterEventFunc(PyObject *self, PyObject *args)
{
	PyObject *callback;
    PyObject *result = NULL;

    if (PyArg_ParseTuple(args, "O:set_callback", &callback))
	{
		if (callback == Py_None)
		{
			Py_XDECREF(gCallback);  /* Dispose of previous callback */
			gCallback = NULL;
			Close_Port();
			Py_RETURN_NONE;
		}
		if ((callback != Py_None) && (!PyCallable_Check(callback)) )
		{
            PyErr_SetString(PyExc_TypeError, "parameter must be callable");
            return NULL;
        }
        if(gCallback == NULL)
		{
			PyEval_InitThreads();
			Open_Port();
		}
		Py_XINCREF(callback);  /* Add a reference to new callback */
        Py_XDECREF(gCallback); /* Dispose of previous callback */
        gCallback = callback;  /* Remember new callback */
        /* Boilerplate to return "None" */
        Py_INCREF(Py_None);
        result = Py_None;
    }
    return result;
}
示例#4
0
int main()
{
    HANDLE fd; 
    DCB OldConf;
    char cad[16]="Enviando Texto";
    int n;
    
    fd=Open_Port("/dev/ttyUSB0");       // Abre el puerto serie.
    
    OldConf=Get_Configure_Port(fd);     // Guardo la configuración del puerto.
    
    Configure_Port(fd,B115200,"8N1");   // Configuro el puerto serie.
    
    IO_Blocking(fd,FALSE);              // Seleccionamos lectura no bloqueante.
    
    n=Write_Port(fd,cad,16);            // Escribo en el puerto serie.
    
    while(Kbhit_Port(fd)<16);           // Espero a leer hasta que se tengan
                                        // 16 bytes en el buffer de entrada.

    n=Read_Port(fd,cad,16);             // Leo el puerto serie.
    printf("%s",cad);                   // Muestro loas datos.

    
    Set_Configure_Port(fd,OldConf);     // Restituyo la antigua configuración 
                                        // del puerto.

    Close_Port(fd);                     // Cierro el puerto serie.
    
    return 0;
}
示例#5
0
HANDLE 
initialize_serial(char* puerto)
{
    HANDLE fd; 
    fd = Open_Port(puerto);             // Open the serial port. 
    //OldConf = Get_Configure_Port(fd);   // Save the previous configuration. 
    Configure_Port(fd,B9600,"8N1");     // Use the current configuration. 
    return fd;
}
示例#6
0
文件: serial.cpp 项目: MirShu/ArcFace
jlong NS_Init(JNIEnv *env, jobject object, jint port, jbyteArray data, jint type)
{
	char dev[256];
	int error;
	LPSERIAL engine = (LPSERIAL)malloc(sizeof(SERIAL));
	if (engine == NULL) {
		LOGE("memory not enough!");
		return 0;
	}
	memset(engine, 0, sizeof(SERIAL));

	engine->pWriteBuffer = (unsigned char *)malloc(BUFFER_SIZE);
	engine->pReadBuffer = (unsigned char *)malloc(BUFFER_SIZE + 1);

#ifdef DEBUG_DUMP
	engine->pfile = fopen("/sdcard/dump_nv12_800x600.nv21", "wb");
	engine->frame = 5;
#endif
	if (data != NULL) {
		int size = env->GetArrayLength(data);
		if (size > 256) {
			LOGE("The byte is out range");
			return 0;
		} else {
			env->GetByteArrayRegion(data, 0, size, (signed char *)dev);
			dev[size] = '\0';
			LOGE("%s;", dev);
		}
	}

	engine->mHandle = Open_Port(port, dev, &error, type);
	if (engine->mHandle < 0) {
		engine->mStatus =  engine->mHandle;
	} else {
		engine->mStatus = 0;
	}

	if (engine->mStatus == -1) {
		LOGE("The port is out range");
		return 0;
	} else if (engine->mStatus == -2) {
		LOGE("Open serial port FAIL %d", error);
		return 0;
	} else if (engine->mStatus == -3) {
		LOGE("fcntl F_SETFL");
		return 0;
	} else if (engine->mStatus == -4) {
		LOGE("isatty is not a terminal device");
		return 0;
	}

	return (jlong)engine;
}
示例#7
0
int main()
{
	//int fd = 0;
	char buffer[BUFFER_SIEZE] = {0};

	if((fd = Open_Port(HOST_PORT)) == -1)
	{
		perror("Open port");
		return -1;
	}
	
	if( Set_Port(fd,9600,8,'N',1) == -1)
	{
		perror("Set_Port");
		return -1;
	}
	
	//Serial_SendStr(fd,"Hello This is from Ubuntu\n");

	pthread_mutex_init(&mut,NULL);
	
	while(1)
	{
		time(&now);
		tm_now = localtime(&now);
		datetime=asctime(tm_now);
		
		create_thread();
        wait_thread();
		if( IsReceve ==1)
        {
	        printf("\n%sInput the Send Message:\n",datetime);
       memset(buffer,0,BUFFER_SIEZE);
        if(fgets(buffer,BUFFER_SIEZE,stdin) == NULL)//get input chars
        {
			perror("Fgets");
			break;
		}
		write(fd,buffer,strlen(buffer));//send chars		
			IsReceve = 0;
			
		}
        

	}
	
	close(fd);
	
	return 0;
 
}
示例#8
0
int main()
{
    HANDLE fd; 
    DCB OldConf;
    char cad[16]="Enviando Texto";
    int n;
    
    fd=Open_Port("COM1");               // Abre el puerto serie
                                        // fd=Open_Port("/dev/ttyS0"); 
    
    OldConf=Get_Configure_Port(fd);     // guardo la configuracion del puerto 
    
    Configure_Port(fd,B115200,"8N1");   // Configuro el puerto serie 
    
                                        // Bloqueante por defecto, pero tambien
                                        // se puede usar
                                        // IO_Blocking(fd,TRUE); 
    
    n=Write_Port(fd,cad,16);            // Escribo en el puerto serie
    
    while(Kbhit_Port(fd)<16);           // Espero a leer hasta que se tengan
                                        // 16 bytes en el buffer de entrada 

    n=Read_Port(fd,cad,16);             // Leo el puerto serie 
    printf(cad);                        // Muestro los datos
    
    Set_Configure_Port(fd,OldConf);     // Restituyo la antigua configuracion 
                                        // del puerto 

    Close_Port(fd);                     // Cierro el puerto serie 
    
    printf("\nPresione ENTER para terminar\n");
    getchar();
    
    return 0;
}