Ir para conteúdo
Fórum Script Brasil

Roodrigo_OM

Membros
  • Total de itens

    18
  • Registro em

  • Última visita

Tudo que Roodrigo_OM postou

  1. Sim sim, o problema é como fazer isso se não sei como fazer o programa identificar se a luz está acesa ou não, ou seja, ler o status de cada pino separadamente da porta paralela =/
  2. Olá, estou fazendo uma aplicação que controla leds pelo programa, mas um pouco diferente: Tenho 4 leds e um aparelho de RF ligados na porta paralela pelas portas de envio E de recebimento, preciso fazer com que, ao afastar o RF (e perder o alcance), os leds desliguem, exceto os que estiverem marcados nos Checkbox, ou seja, se eu marcar os leds 3 e 4, o programa envia 12 para a Porta Paralela mantendo os leds 3 e 4 acesos e desligando os outros. Mas tenho um problema nisso tudo, ex: Leds 1, 2 e 3 ligados, 3 e 4 marcados no checkbox (ou seja, caso estivessem ligados, o programa deveria manter o 3 e 4 acesos). Ao afastar do RF, o programa desliga os leds 1 e 2, mantem o 3 ligado, MAS liga o 4. E isso é um erro no objetivo do programa, eu queria que ele entendesse que, se o led já estiver desligado, não é pra ligá-lo de volta nessa operaçao. Alguma ideia de como posso fazer isso?
  3. Achei um meio mais facil, mas ele vem com outra dúvida: Ao invés de definir toda URL do programa, seria mais facil definir somente a porta que seria usada (Os 4 numeros depois de 127.0.0.1)? E se for, como faço isso?
  4. Acho que Intraweb não tem essa funçao, so se estiver com outro nome ou for necessario algum comando, coisa que eu não sei D:
  5. Olá! Estou no 2º ano da escola técnica e estou trabalhando em uma aplicação Intraweb para que todo o sistema possa ser acessado tambem pelo celular, mas tenho uma dúvida quanto a URL da aplicação: Como a ideia é ter o sistema acessado por mobile, digitar toda url do programa intraweb em um celular é complicado, pois o usuario teria que substituir o 127.0.0.1 pela ip da rede de seu pc, alem de ter que digitar todo o resto da url que não é algo pequeno, então eu e meu grupo pensamos em gerar um QR Code e abri-lo na pagina para facilitar o acesso pelos celulares, contando que eles tenham leitores de QR Code ( O que a maioria já tem), porem, a url muda toda vez que se reinicia o programa, tornando a opçao do QR Code bem menos viavel, então queria saber se é possivel definir um padrão para a URL do programa, ou se alguém tem uma ideia melhor e mais viavel de como mandar um link para o celular direto pelo programa, nos ajudaria bastante. Desde já agradeço, abraços!
  6. Segui pelo caminho mais complicado e fiz um botão que cria o arquivo .Ini salvando a configuração do ScrollBar1.Position, e no FormCreate fiz ele rodar esse .Ini, agora eu posso controlar quando eu quero ou não salvar o brilho. Muito Obrigado Jhonas, o que aprendi com esse projeto, e nesse fórum, são coisas que eu provavelmente não iria aprender tão cedo na escola e me dão mais motivação ainda pra continuar aprendendo a programar, fiz uma ótima escolha na minha vida ao ir pra escola técnica e escolher Informática. PS: Você parece MUITO com um professor meu, tem certeza que você não tem nenhum irmão chamado Sérgio não? KKK Abraços
  7. Daqui a pouco to voltando da casa da minha namorada, e dou uma testada nisso, acho que até la eu tenho alguma idéia
  8. Meu maior problema é usar esse GetDeviceGammaRamp e o SetDeviceGammaRamp, porque eu me enrolei um pouco pra entender como funcionava essa parte do código, mas eu não consigo pensar em um jeito de transformar o GetDeviceGammaRamp em um valor que eu possa manipular, sei que não é assim, mas sempre que eu tento utilizar ele numa label, por exemplo Label3.Caption:=(GetDeviceGammaRamp) ele da erro de not enough actual parameters. Se eu tentar jogar ele em um scroll, será que funciona?
  9. Acho que eu teria que deixar o Label3.Caption := inttostr(ScrollBar1.Position); E tentar fazer de um jeito que a ScrollBar iniciasse na posição que ela estava quando o programa foi fechado, ou inicie na posição correspondente ao brilho da tela da pessoa, sem precisar de uma execução anterior como na primeira opção, mas não faço a mínima idéia de como fazer nenhuma dessas duas, sei que na primeira eu teria que ter um arquivo externo pra salvar essa configuração, certo? Mas na segunda opção parece ser mais fácil, só não tenho muita certeza de qual variavel usar, e como setar o ScrollBar1.Position sem criar conflito com o SetBrilhoMonitor(ScrollBar1.Position); Abraço
  10. Agora me surgiu outra dúvida, que já tentei pensar numa solução mas não consegui, que seria o programa mostrar o nível de brilho antes deu mudar ele, porque como ele ta agora, não mostra nada, só mostra quando eu mexo na scrollbar, e ai ele começa em 0 ou outro numero da posiçao na scrollbar. Tinha pensado em mudar essa parte: Label3.Caption := inttostr(ScrollBar1.Position); Para: Label3.Caption := inttostr(SetBrilhoMonitor); Mas como esperado, não funciona, não sei se o problema é na conversão para string ou se não dá pra usar o SetBrilhoMonitor nesse caso. Por que fui testar em outros PCs e eu acabo me perdendo na quantidade de brilho que havia antes de eu mexer no ScrollBar e se outras pessoas fossem testar, também poderiam se perder. Pensei também em usar a Variável DC, mas eu recebo um número enorme :s
  11. Sim sim, mas a intenção era essa, limitar a 3 níveis somente (Baixa, Média e Alta). Eu não achei que teria como usar todas as variações e ainda estava na idéia de usar os prints, por isso limitei a esses 3 quando falei com o professor. Eu até mudaria a placa, mas como pediram pra eu apresentar o programa segunda-feira, prefiro deixar assim mesmo. Tudo está funcionando certinho de acordo com os testes que eu fiz aqui, e depois testarei no computador do meu amigo. Só mais uma coisa: Será que botar o programa em Windows XP dará algum problema de compatibilidade? Acredito que não, mas sempre fico preocupado com isso... Obrigado Jhonas, muito, muito obrigado mesmo.
  12. O código final ficou assim: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, shellapi; type TForm1 = class(TForm) Timer1: TTimer; Edit1: TEdit; Edit2: TEdit; Leds: TLabel; StaticText1: TStaticText; Label1: TLabel; Image1: TImage; Image2: TImage; Timer2: TTimer; Button2: TButton; ScrollBar1: TScrollBar; procedure Timer1Timer(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; type TGamma = packed record Vermelho: array[0..255] of Word; Verde: array[0..255] of Word; Azul: array[0..255] of Word; end; var Form1: TForm1; trocou:boolean; a,b:integer; implementation uses Math; function inportb(EndPorta:integer):byte stdcall; external 'inpout32.dll' name 'Inp32'; procedure outportb(EndPorta:integer;Valor:integer); stdcall; external 'inpout32.dll' name 'Out32'; {$R *.DFM} //Configuração do Brilho e afins// procedure SetBrilhoMonitor(brilho: Byte); var i, Value: Integer; DC: HDC; gama: tGamma; begin // Calcular a nova gama de acordo com o brilho passado for i := 0 to 255 do begin Value := Min(Round(i * (brilho + 128) / 255), 255); gama.Vermelho[i] := Value shl 8; gama.verde[i] := Value shl 8; gama.Azul[i] := Value shl 8; end; // Aplicar a nova calibragem para o monitor DC := GetDC(0); SetDeviceGammaRamp(DC, gama); ReleaseDC(0, DC); end; //ScrollBar procedure TForm1.ScrollBar1Change(Sender: TObject); begin // testar usando o componente ScrollBar1 // min = 0 e max = 255 SetBrilhoMonitor(ScrollBar1.Position); Edit1.Text := inttostr(ScrollBar1.Position); end; //Timer procedure TForm1.Timer1Timer(Sender: TObject); begin Edit1.Text:=IntToStr( inportb($379) ); a := inportb($379); if (a = 127) then begin edit2.text := ('Iluminação Baixa'); SetBrilhoMonitor(35); ScrollBar1.Position := 35; trocou:=true; {pino 10} end else if (a = 63) then begin edit2.text :=('Iluminação Ideal'); {pino 11} SetBrilhoMonitor(100); ScrollBar1.Position := 100; trocou:=true; end else if (a = 31) then begin edit2.text:=('Iluminação Excessiva'); {pino 12} SetBrilhoMonitor(185); ScrollBar1.Position := 185; trocou:=true; end else if (a = 121) then begin edit2.Text:=('Placa Desconectada'); SetBrilhoMonitor(100); ScrollBar1.Position := 100; end; end; //Liga o timer e define trocou para false// procedure TForm1.Image1Click(Sender: TObject); begin Timer1.enabled:=true; end; //Desliga o timer// procedure TForm1.Image2Click(Sender: TObject); begin Timer1.Enabled:=false; edit1.Text:='Clique em Iniciar'; edit2.text:=(''); SetBrilhoMonitor(100); end; //Pergunta se o usuário quer entrar no site// procedure TForm1.FormCreate(Sender: TObject); begin if Application.MessageBox('Deseja entrar no nosso site?','', mb_iconquestion + mb_yesno) = idYes then ShellExecute(Handle, nil, 'J:\Programa Lumus - FUCKING FINISHED MOTHERFUCKER AW YEAH\site projeto\index.html' , nil, nil, SW_SHOWNORMAL) else; ShowWindow(Handle, SW_SHOWMAXIMIZED); end; //Mudar brilho ao fechar programa procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ScrollBar1.Position := 100; /// brilho padrão ao sair end; end. Mas ainda assim o FormClose ainda não muda o brilho quando fecha o programa, não sei porque, por isso mandei o código todo, acho que ajustei alguma coisa errada nele e por isso não funciona.
  13. Opa, consegui chegar em casa mais cedo e fiz todos os ajustes no programa, e tenho 99,9% de certeza que deu certo, é porque meu computador não tem entrada pra porta paralela e a placa não está comigo, está com meu amigo, mas fiz uns testes mudando valores, etc, e parece que está tudo certo. Só mais uma pergunta: Adicionei essa linha de código no programa: procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin SetBrilhoMonitor(100); ScrollBar1.Position := 100; end; Mas ela simplesmente não funciona, não sei se está certa, mas o brilho da tela não volta ao normal quando eu fecho o programa. EDIT: Agora que vi seu último post, pelo jeito acho que botei o código certo, mas ainda assim não está funcionando
  14. Dei uma improvisada aqui e consegui testar o que você mandou, e deu tudo certo, mas só uma pergunta: A scrollbar só vai até 100 mesmo? Não tem como passar? porque o a tela aqui que eu improvisei o brilho era maior, ai fui testar ficou mais escurinho e não volta mais HUAHSUAHUSHAUSHUA. E também na hora de apresentar o programa, queria tentar pôr um brilho bem alto quando eu recebesse 31 (Iluminaçao alta), mas se não der não tem problema, faço uns ajustes e fica certinho. Edit: Consegui mudar essa tolerância de brilho modificando o Value := Min(Round(i * (brilho + 128) / 255), 255); Para Value := Min(Round(i * (brilho + 200) / 255), 255); Mas ainda assim não tem uma diferença muito absurda do ponto 0 pro 100. Acho que quando botei as prints exagerei muito na diferença e o ideal seria como tá o programa agora, mas só por curiosidade, tem como "aumentar" essa "diferença" de brilho do ponto 0 e 100, tipo, o 0 BEM escuro, o 50 normal como a maioria usa e o 100 BEM claro? Se eu tirar a linha de código que faz com que ele conte o brilho a partir do anterior, será que funciona como eu quero? Abraços
  15. Como eu estou na casa da minha avó, quando eu chegar em casa eu implemento esse código, faço os ajustes necessários, e aviso aqui se deu tudo certo. Muito obrigado Jhonas, abraço.
  16. Não, tipo, o Trimpot é só pra ajustar a "tolerância" de luminosidade, por exemplo, o trimpot é uma posiçao, ele recebia 63 (luminosidade média) até quando eu botava a lâmpada quase em cima do LDR, ai ajustando ele eu recebo luminosidade média, baixa, alta certinho. Então eu receberia diferentes niveis da luminosidade dependendo do quanto eu rotacionasse o dimmer da lâmpada incandescente, os Trimpots vão estar sempre na mesma posiçao agora. Quando eu desligo a lâmpada, eu recebo 127, que seria a luminosidade baixa. Quando eu ligo a lâmpada levemente, só dando uma clareada, eu recebo 63, que seria luminosidade média. Quando eu ligo a lâmpada no máximo, eu recebo 31, que seria Luminosidade Alta. Só recebo esses 3 mesmo. E como funcionaria esse SetDeviceGammaRamp? É uma biblioteca específica, tem alguma DLL que eu precisaria baixar, porque não entendi muito bem o funcionamento disso :s
  17. Bom, eu faço curso de Informática lá, então não entendo taaaanto de eletrônica, e um professor do curso de eletrônica que me ajudou a montar, mas pelo que entendi, o circuito tem o CI LM339, com os devidos cabos de alimentação e o ldr ligados. Nesse circuito, tem 3 Trimpots (potênciometros) e em um outro lado da placa (Placa universal infelizmente, então ela meio que foi dividida em dois cortando uma trilha) tem 3 opto-acopladores (Para fototransistores) e neles estão ligados os pinos 10, 11 e 12 da porta paralela. Tipo, quando eu aciono o programa, o valor que eu recebo depende da quantidade de luz que eu estiver recebendo, mas o que eu planejo é receber, quando eu inicio o programa, o valor de luminosidade média, no caso 63 (Ontem dei uma ajeitada nos Trimpots pois tinha um pequeno bug, e recebi valores novos, mas agora perfeitamente coordenados como eu queria - Depois atualizo os valores no meu código la em cima para como está agora). E como fiz uma pequena casa de madeira, com uma cortina e uma lâmpada incandescente ligada num dimmer, o LDR não vai pegar muita "interferência" de luz do ambiente ao redor, só da lâmpada dessa casinha de madeira, por isso que provavelmente eu vo iniciar o programa com a lâmpada ligada no médio e receber o valor de luminosidade média, 63. E assim, pela distância que a placa fica da lâmpada e ângulo, o único jeito que eu achei de receber o valor de luminosidade baixa, fosse quando o LDR acusasse 127 que é o valor que recebo quando não tem cabo nenhum de porta paralela ligado no computador, ou quando a placa ta sem fonte de alimentação etc, mas pelos meus testes não atrapalhou em nada Ah, e uso Windows 7 x64 aqui para fazer o programa, mas o computador que eu vou usar pro projeto é windows XP, então não sei se eu conseguirei testar agora se a biblioteca da função for diferente nos dois sistemas etc já que o computador do projeto é de um amigo meu, mas segunda, ou então amanhã (com MUITA sorte, hoje) eu posso testar no dele. Abraços.
  18. Olá, bem, sou meio novo no delphi, 1º ano de escola técnica ainda, mas resolvi fazer por conta própria um projeto, onde haveria um circuito com LDR integrado, e porta paralela, com 3 pinos ligados. No começo eu iria só imprimir uma mensagem dizendo qual o nível de luminosidade do ambiente naquele momento, mas achei que era pouca coisa, e quis tentar fazer com que o brilho da tela mudasse conforme a luminosidade (Valor do inportb($379)) recebido. Como o que estou aprendendo de delphi é bem básico ainda, toda a estrutura de form e porta paralela eu fiz de curioso, estudando em fóruns, sites etc, foi quando resolvi perguntar pra 2 dos meus professores se seria possível mudar o brilho da tela pelo delphi, e ambos responderam que não, mas disseram pra eu fazer um projeto que iria propor essa idéia, o controle do brilho como configuraçao num sistema. Eu tenho 3 prints da mesma tela, com brilho diferente (uma escura, outra normal e uma com brilho alto) e consegui fazer com que elas mudassem certinho de acordo com o valor que eu recebesse. A questão é, encontrei uma funçao do Windows 7 chamada Brilho Adaptavel, que faz exatamente o que eu queria que meu programa fizesse, mudar o brilho da tela de acordo com a luminosidade, só que não faço a mínima idéia de como eles fizeram isso, e seria uma enorme alavancada no projeto se eu conseguisse fazer isso. Outra alternativa que pensei, porém não sei como usar no código, é como o programa DimScreen faz, pelo que eu entendi e testei, ele só escurece a tela, e esse nivel de "escuridão" é controlado em porcentagem tipo 10%, 20%, 50%, 100%, e queria saber se tem como eu fazer algo parecido no meu programa, ou se eu seria capaz de controlar o DimScreen automaticamente pelo meu programa para que ele escurecesse a tela dependendo da luminosidade. Uso Delphi 7, segue o código do meu programa. Quaisquer erros por favor me avisem, fiz tudo sozinho sem ter aprendido na escola ainda, então se tiver algo que eu possa melhorar, ficaria muito feliz se me apontassem, Obrigado galera. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, shellapi; type TForm1 = class(TForm) Timer1: TTimer; Edit1: TEdit; Edit2: TEdit; Leds: TLabel; StaticText1: TStaticText; Label1: TLabel; Image1: TImage; Image2: TImage; Image3: TImage; Timer2: TTimer; Button2: TButton; procedure Timer1Timer(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; trocou:boolean; a,b:integer; implementation function inportb(EndPorta:integer):byte stdcall; external 'inpout32.dll' name 'Inp32'; procedure outportb(EndPorta:integer;Valor:integer); stdcall; external 'inpout32.dll' name 'Out32'; {$R *.DFM} procedure TForm1.Timer1Timer(Sender: TObject); begin edit1.Text := IntToStr( inportb($379) ); a := inportb($379); if (b<>a) then trocou:=false; if (a = 127) and (trocou=false) then begin edit2.text := ('Iluminação Baixa'); Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Baixo2.jpeg'); trocou:=true; {pino 10} end else if (a = 63) and (trocou=false) then begin edit2.text :=('Iluminação Ideal'); {pino 11} Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Normal2.jpeg'); trocou:=true; end else if (a = 31) and (trocou=false) then begin edit2.text:=('Iluminação Excessiva'); {pino 12} Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Alto2.jpeg'); trocou:=true; end else if (a = 121) and (trocou=false) then begin edit2.Text:=('Placa Desconectada'); Image3.Picture.LoadFromFile(GetCurrentDir() + '\Print Tela\Brilho Normal2.jpeg'); trocou:=true; end b:=a; end; //Liga o timer e define trocou para false// procedure TForm1.Image1Click(Sender: TObject); begin Timer1.enabled:=true; trocou:=false; end; //Desliga o timer// procedure TForm1.Image2Click(Sender: TObject); begin Timer1.Enabled:=false; edit1.Text:='Clique em Iniciar'; edit2.text:=(''); Image3.Picture.LoadFromFile(GetCurrentDir()+'\Print Tela\Brilho Normal2.jpeg'); end; //Pergunta se o usuário quer entrar no site// procedure TForm1.FormCreate(Sender: TObject); begin if Application.MessageBox('Deseja entrar no nosso site?','', mb_iconquestion + mb_yesno) = idYes then ShellExecute(Handle, nil, 'J:\Programa Lumus - FUCKING FINISHED MOTHERFUCKER AW YEAH\site projeto\index.html' , nil, nil, SW_SHOWNORMAL) else; ShowWindow(Handle, SW_SHOWMAXIMIZED); end; end.
×
×
  • Criar Novo...