Changeset 1224 for trunk/csctapi/io_serial.c
- Timestamp:
- 01/14/10 16:41:02 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/csctapi/io_serial.c
r1222 r1224 60 60 static int IO_Serial_Bitrate(int bitrate); 61 61 62 static bool IO_Serial_WaitToRead ( int hnd,unsigned delay_ms, unsigned timeout_ms);63 64 static bool IO_Serial_WaitToWrite ( IO_Serial *io,unsigned delay_ms, unsigned timeout_ms);62 static bool IO_Serial_WaitToRead (unsigned delay_ms, unsigned timeout_ms); 63 64 static bool IO_Serial_WaitToWrite (unsigned delay_ms, unsigned timeout_ms); 65 65 66 66 static void IO_Serial_DeviceName (char * filename, unsigned length); … … 79 79 { 80 80 extern int *oscam_sem; 81 if ((reader[ridx].typ !=R_DB2COM1) && (reader[ridx].typ!=R_DB2COM2)) return;81 if ((reader[ridx].typ != R_DB2COM1) && (reader[ridx].typ != R_DB2COM2)) return; 82 82 if (!flag) 83 83 *oscam_sem=0; … … 183 183 184 184 if(io->reader_type!=R_INTERNAL) 185 IO_Serial_Flush( io);185 IO_Serial_Flush(); 186 186 187 187 return TRUE; … … 579 579 } 580 580 581 void IO_Serial_Flush ( IO_Serial * io)581 void IO_Serial_Flush () 582 582 { 583 583 BYTE b; 584 while(IO_Serial_Read( io,1000, 1, &b));584 while(IO_Serial_Read(1000, 1, &b)); 585 585 } 586 586 … … 598 598 599 599 600 bool IO_Serial_Read ( IO_Serial * io,unsigned timeout, unsigned size, BYTE * data)600 bool IO_Serial_Read (unsigned timeout, unsigned size, BYTE * data) 601 601 { 602 602 BYTE c; … … 607 607 #endif 608 608 609 if(( io->reader_type!=R_INTERNAL) && (io->wr>0))609 if((reader[ridx].typ != R_INTERNAL) && (wr>0)) 610 610 { 611 611 BYTE buf[256]; 612 int n = io->wr;613 io->wr = 0;614 615 if(!IO_Serial_Read ( io,timeout, n, buf))612 int n = wr; 613 wr = 0; 614 615 if(!IO_Serial_Read (timeout, n, buf)) 616 616 { 617 617 return FALSE; … … 631 631 while( (((tv_spent.tv_sec-tv.tv_sec)*1000) + ((tv_spent.tv_usec-tv.tv_usec)/1000L))<timeout ) 632 632 { 633 if (read ( io->fd, &c, 1) == 1)633 if (read (reader[ridx].handle, &c, 1) == 1) 634 634 { 635 635 readed=TRUE; … … 646 646 #endif 647 647 #else 648 if (IO_Serial_WaitToRead ( io->fd,0, timeout))648 if (IO_Serial_WaitToRead (0, timeout)) 649 649 { 650 if (read ( io->fd, &c, 1) != 1)650 if (read (reader[ridx].handle, &c, 1) != 1) 651 651 { 652 652 #ifdef DEBUG_IO … … 669 669 fflush (stdout); 670 670 #endif 671 tcflush ( io->fd, TCIFLUSH);671 tcflush (reader[ridx].handle, TCIFLUSH); 672 672 return FALSE; 673 673 } … … 688 688 689 689 690 bool IO_Serial_Write ( IO_Serial * io,unsigned delay, unsigned size, BYTE * data)690 bool IO_Serial_Write (unsigned delay, unsigned size, BYTE * data) 691 691 { 692 692 unsigned count, to_send, i_w; … … 708 708 to_send = (delay? 1: size); 709 709 710 if (IO_Serial_WaitToWrite ( io,delay, 1000))710 if (IO_Serial_WaitToWrite (delay, 1000)) 711 711 { 712 712 for (i_w=0; i_w < to_send; i_w++) { … … 716 716 } 717 717 } 718 unsigned int u = write ( io->fd, data_w, (1+io_serial_need_dummy_char)*to_send);718 unsigned int u = write (reader[ridx].handle, data_w, (1+io_serial_need_dummy_char)*to_send); 719 719 _in_echo_read = 1; 720 720 if (u != (1+io_serial_need_dummy_char)*to_send) … … 724 724 fflush (stdout); 725 725 #endif 726 if( io->reader_type!=R_INTERNAL)727 io->wr += u;726 if(reader[ridx].typ != R_INTERNAL) 727 wr += u; 728 728 return FALSE; 729 729 } 730 730 731 if( io->reader_type!=R_INTERNAL)732 io->wr += to_send;731 if(reader[ridx].typ != R_INTERNAL) 732 wr += to_send; 733 733 734 734 #ifdef DEBUG_IO … … 844 844 } 845 845 846 static bool IO_Serial_WaitToRead ( int hnd,unsigned delay_ms, unsigned timeout_ms)846 static bool IO_Serial_WaitToRead (unsigned delay_ms, unsigned timeout_ms) 847 847 { 848 848 fd_set rfds; … … 865 865 } 866 866 867 in_fd= hnd;867 in_fd=reader[ridx].handle; 868 868 869 869 FD_ZERO(&rfds); … … 895 895 } 896 896 897 static bool IO_Serial_WaitToWrite ( IO_Serial *io,unsigned delay_ms, unsigned timeout_ms)897 static bool IO_Serial_WaitToWrite (unsigned delay_ms, unsigned timeout_ms) 898 898 { 899 899 fd_set wfds; … … 904 904 905 905 #ifdef SCI_DEV 906 if( io->reader_type==R_INTERNAL)906 if(reader[ridx].typ == R_INTERNAL) 907 907 return TRUE; 908 908 #endif … … 921 921 } 922 922 923 out_fd= io->fd;923 out_fd=reader[ridx].handle; 924 924 925 925 FD_ZERO(&wfds); … … 960 960 memset (io->PnP_id, 0, IO_SERIAL_PNPID_SIZE); 961 961 io->PnP_id_size = 0; 962 io->wr = 0;962 wr = 0; 963 963 //modifyable properties: 964 964 io->input_bitrate = 0; … … 992 992 return FALSE; 993 993 994 while ((i < IO_SERIAL_PNPID_SIZE) && IO_Serial_Read ( io,200, 1, &(io->PnP_id[i])))994 while ((i < IO_SERIAL_PNPID_SIZE) && IO_Serial_Read (200, 1, &(io->PnP_id[i]))) 995 995 i++; 996 996
Note:
See TracChangeset
for help on using the changeset viewer.