Fórum Ubuntu CZ/SK
		Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Cendas  28 Prosince 2014, 09:09:16
		
			
			- 
				Ahoj potřeboval bych napsat program pro otevření supliku který vyšle signál na jeden pin a počká na odpověď která přijde po druhém pinu. Napsal jsem to kdysi pro windows a teď bych to potřeboval pod Linuxem.
Tady je výpis toho programu pro windows .
//PortCom.h
#ifndef header_PortCom
#define header_PortCom
#include <windows.h>
#include <mmsystem.h>
#include <iostream>
#include <stdio.h>
#include <ctime>
//--------------------------------------------------------------------------//
bool OpenCom(int CisloComu);
void CloseCom(void);
void Wait_us(unsigned __int64 prodleva);
void CloseI2C(void);
void SetDTR(bool x);
void SetRTS(bool x);
void SetTX(bool x);
bool GetCTS(void);
bool GetDSR(void);
bool GetRing(void);
bool GetRLSD(void);
void Wait_us(unsigned __int64 prodleva);
void Wait_s(int prodleva);
#endif
#include "PortCom.h"
int main(int argc, char* argv[])
{
	OpenCom(1);
	std::cout << "Otviram suplik.";
	SetTX(true);
	while(GetCTS() == false);
	SetTX(false);
  std::cout << "\a\rOK koncim.";
  Wait_s(1);
	return 0;
}Tohle se mi podařilo sesmolit pro linux ale nemůžu přijít na to jak vyslat signál na určitý pin konektoru. 
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h> 
#include <stdio.h>
#define SERPORT "/dev/ttyS0"
//---------------------------------------------------------------------------
	int fd;
	int status;
int main(int argc, char **argv)
{
	fd = open(SERPORT, O_RDWR);
		printf	("Otviram suplik.\n");
		do{
		ioctl(fd, TIOCMGET, &status); /* Nacte stav */
		status |= TIOCM_ST;	//pin 2 ST		
		ioctl(fd, TIOCMSET, &status); /* Nastavi bit */
		ioctl(fd, TIOCMGET, &status); /* Nacte stav */
		status |= TIOCM_CTS;	//pin 8 ST	
		}while((status &TIOCM_CTS) != 0);//Stoji dokud je 0
		ioctl(fd, TIOCMGET, &status); /* Nacte stav */
		status |= TIOCM_ST;	//pin 2 ST
		ioctl(fd, TIOCMBIC, & status); /* Vynuluje bit */		
		printf	("OK koncim.\n");	
	close(fd);
	return 0;
}
			 
			
			- 
				Přijde mi poněkud nešťastné používat k ovládání čehokoli signály na pinech sériového portu. Ještě nešťastnější používat k tomuto ovládání TX. Snadněji se ovládají signály DTR a RTS.
Problém bývá v tom, že mnohé porty tuto manipulaci nepodporují (zejména jedná-li se o převodníky USB to SERIAL a podobně)
Mrkni sem třeba ti to pomůže: http://www.teuniz.net/RS-232/
			 
			
			- 
				Ahoj už jsem to vyřešil použil jsem k tomu DTR a RTS .
V každém případě dík za zajímaví odkaz.