1. sayfa
yok mu bi cevap. Nasıl bulacağız bu konuyu ??? |
Eger bu bahsettigin programin acik kaynak kodlari yoksa isin zor ancak acik kaynak kodlari varsa bu dedigin olabilir. Ancak datalar uzerinde bi kontrol saglayacagim diyorsan eger, ayni veri tabanini kullanmak sarti ile sistem uzerine web form olusturulabilir. |
Selam Veli; Öncelikle cevabın için teşekkür ederim. Programın kaynak kodu var. Tamamı bizim tarafımın dan yazıldı. Aslında program üzerinde fazla bir şey yok. bir adet bağlan butonu, cihazdan kayıt indir (txt), Cihaz saatini ayarla ve seçilen cihaz ayarlarını yükle butonları. ben şöyle bir kod olursa bu mantığı uygularım diye düşünüyorum. VB form ile bir buton ve basıldığında merhaba yazan bir label etiketi. Şimdi öyle bir şey yapsak ki bir VB asp.net form sayfası açsak ve buraya bir buton yerleştirsek. şimdi aynı pc üzerinde yayın yapan bir web form var. ve üzerinde de sadece bir buton. Aynı pc de çalışan bir vb basic form ile oluşturulmuş yukarıdaki dediğim labele merhaba yazdıran program. Nasıl olabilir acaba; VB.net web form ile VB form program arasında bir bağlantı olacak. Öyle bir kod yazılacak veya ilişkilendirilecek ki; web form daki butona tıklayınca vb formdaki buton aktif olup label merhabaya dönecek. Sadece bunun tek bir mantık örneğini görsem gerisini benzer şekilde yapabilirim diye düşünüyorum. Yardımınız için şimdiden teşekkürler. |
Kaynak kodlari varsa olur bu bast bak simdi Bir web projesi olustur ve bu projeler arasinda iletisim kuran bir dll olustur eger wcf kullanmayacaksan ancak fotmlar yuklendigi anda ofline olduklari icin arka tarafta kutuphaneni refreshlryecek bir mekanizma olistur en basitinden timer bu sekilde isini halledersin masaustunden webi kontrol ederken ajax kullanman lazim webdende masaustunu kontrol ederken timer kullan bu sayede degisiklikleri canli tutmus olursun |
Ben vb den. Fazla anlamam ama istersen c# ile yapariz bu dedigini |
Veritabanı veyahut xml gibi bir yapı olustur yada web servis yaz masa üstü uygulaması ile sürekli dinle oradan, event tetikle asp.net ile servisi sürekli dinlediğin için gelen dataya göre istediğini yaparsın. |
Son durumuda bir söyleyeyim. programın kaynak kodu var. söylemiştim. windows formdaki kodları alarak web olarak açılan visual basic fomlara yapıştırdık. mesela oluşturulmuş bir butona yazılmış vb kodları (windows formda) .aspx bir boş web formda buton oluşturarak kodları bu butonun içine yapıştırdık. öncel olmaz diye düşümüştük. ancak 2 adet buton bir adet label ve seri port iletişimi ekledik. ve vb formdaki kodlar çalıştı. Ancak başka bir sorun çıktı ve aşamıyoruz. programda bir adet bağlan butonu 1 adet veri gönder butonu var. bir adette label var. label seri porta gönderilen bilgi sonucu dönen bilgiyi gösteriyor. Tabi gerek windows formda ve gerekse web formda seri port komponentini sürükleyip kod sayfasının altında görmelisiniz. afedersiniz web formda başka türlü. çözüm explorerde .aspx sayfanın sağ tık özelliklerinde bileşen ekleme şeklindeydi şanırım. aslen program çalıştı. windows formdaki gibi. ancak bilgisayar seri porta erişim izni vermiyor. Daha doğru şekilde çalışan programı İİS ile yürütünce asp.net in seri porta erişim izni vermediğini gördük. Veya asp.net seri port erişim kodlarını yürütünce bir şekilde engelleniyor. izin konusunu epey irdeledik. otantikauthor identity anonim velhasıl full yerkili kullanıcılar tanımlasakta hala seri port erişimi reddedildi deniyor. çıkamadık işin içinden. program hata vermiyor. cath ile tanımlanan hatayı fırlatıyor ki buda zaten aynı nokta yaNİ seri port erişim hatası. İSS de bir takım ayarlar gerekiyor veya bilgisayar seri port erişim izinleri gibi bir özellik var seri portta. Aslen web formda böyle bir izin gerekmiyor. erişim direk gerçekleşiyor. Sorun web sayfasındaki programın (aspx) işletilmesi olunca olmuyor. Acaba browser ayarı falan olabilir mi ki? basit bir ayardır ayardır muhtemelen ama bilmeyince haftalar. |
Selam arkadaşlar. Sorunları tamamen anladım ve çözdüm diyebilirim. Sizlere de faydası olur belki diye yazıyorum. Elinizdeki windows form ile yazılmış programları web tabanlı olarakta yazabilirsiniz. Benim yapmaya çalıştığımda bu zaten. Seri port ile iletişim kurabilen ve bu özelliğini kullanmak üzere windows form ile visual basic dilinde yazılmış bir programı web platformuna taşımaya çalışıyorum. Bundaki amaç program uzak erişimli hale geliyor. Yani cihazı evinizden bile ayarlayıp değerlerini takip edebileceksiniz. Şimdi konuya gelirsek başlangıçta çaresiz kaldık. Neden derseniz internette bilgi bulamadık bu konuda. yada biz bilemedik neyse. yeni boş bir web form yarattık VB dilinde. Seri port tanıttık. bu windows formdakinden farklı. Araç kutusundan direkt formun üzerine bırakmıyorsunuz. boş web sayfanızı oluşturduktan sonra çözüm gezgini içinde default.aspx veya webaplication.aspx her ne ise sağ tıklayarak bileşen tasarlayıcısını gör ü seçeceksiniz. daha sonra aktif olan araç kutusundan serialpor1 i ekleyeceksiniz. Programa gelince elinizdeki kod varsa birebir aynı öğelere taşıyacaksınız. yani buton1 öğesindeki kodları buton1 oluşturun içine yapıştırın. Eğer sıfırdan yazıyorsanız tabi direk buralara yazacaksınız. Yalnız kodlarda da malesef bir kısım değişiklikler gerekti. Aşağıdaki ilk bölümü eklememiz gerekti web form olarak. İkinci bir sorun tekbir buton içinde yazmamız gerekti seri port erişimini. Yani bir butonla portu açayım diğer butonda veri göneririm dediniz mi? 2 ay kadar bir süre port erişimi engellendi diye bir hata görüyorsunuz ve kodları hallaç pamuğu gibi atıyorsunuz olmuyor. Seri porta izin arıyorsunuz. İİS de port izni arıyorsunuz. veya oturum izini arıyorsunuz. anonim author vs. ama hiç biri ilgisi yok. Hata sizi yanlış yönlendiriyor. aşağıdaki web form için programa bakarsanız port açma veri yollama ve veriyi alma ve portu kapatma tek bir sub içinde. yinede alt program kullanabilirsiniz sub baglan() .............end (sub) gibi buda çaılıyor tabi. İkinci kod başarılı bir şekilde çalıştı. Şimdi programın diğer bölümlerini web forma taşıyorum. Uğraşan arkadaşlara başarılar. Yani VB programların web forma taşınmasında ki mantık bu şekilde. Çok alakasız bilgiler var arkadaşlar. zor bulunabiliyor bazı bilgiler. Herkeze başarılar. Bu arada önemli bir konu İİS de (internet information Server) web yayını yapacağınız klasöre yetki vermeyi unutmayın. klasörü sınayın ve kullanıcı adı ve şifresini yazarak yetkilendirin. Ayrıca klasör yetkili kullanıcılarına İİS yide eklemeniz gerekiyor. Bendeki kullanıcılar; Authenticated User; IUSR SYSTEM NETWORK XXXXXXXXXXXXXXX domain kullanıcı olarak kendim Administrators (kendim) Users (kendim) Network Configuation Operators IIS_IUSRS interactive Bu kullanıcılar yayın klasörüne tam erişim yetkisine sahip. Bunların hepsinin eklenmesi gerekmiyor. Sadece ben uğraşmak zorunda kaldığım için böyle fazla oldu. İİS ile ilgili yetkiler yeterlidir. Ayrıca İİS içindede kimlik dogrulama - anonim kimlik doğrulama (etkin) - sağ tıkla düzenle belirli kullanıcı ile giriş yapabilirsiniz. (yani klasöre erişim için yetkili kullanıcı izni verirsiniz. Klasör oluştururken daha doğrusu İİS ye yol gösterirken de aynı girişi yapmanız istenecektir. WEB FORM A EKLENEN KODLAR -------------------------------------- Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.IO.Ports Public Class WebForm1 Inherits System.Web.UI.Page Public SerialPort1 As SerialPort Public components As System.ComponentModel.IContainer Dim sent1 As String Dim veri(99) As Integer Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load InitializeComponent() End Sub Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components) End Sub -------------------------------------------------------------------------------------------------------------------------------------------------------------- VB FORM İLE YAZILI KODLAR Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click SerialPort1.Close() 'portun başlangıçta açık olma ihtimaline karşı kapatalım. SerialPort1.BaudRate() = 115200 'port ayarlarını yapalım. SerialPort1.Parity = IO.Ports.Parity.None SerialPort1.DataBits = 8 SerialPort1.StopBits = IO.Ports.StopBits.One SerialPort1.Handshake = IO.Ports.Handshake.None SerialPort1.ReadTimeout = 3000 SerialPort1.WriteTimeout = 5000 SerialPort1.Open() 'portu açalım End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim sent1 As String Dim veri(99) As Integer Try sent1 = "Merhaba" 'Bu veri sizin göndereceğiniz özel bilgidir. Protokolünüze göre değişkenlik gösterir. SerialPort1.WriteLine(sent1) 'seri porta verimizi gönderelim. For i = 1 To 63 'bizim döngümüz 63 sizin farklı olabilir. 1 den 63 e kadar veriyi sırayla alıyoruz veri(i) = SerialPort1.ReadByte() 'veri okuyoruz. TextBox1.Text = TextBox1.Text & " " & Convert.ToString(veri(i)) 'textBox'a okuduğumuz veriyi gösteriyoruz. okunanveri & sonraki veri .... Next Catch ex As TimeoutException TextBox1.Text = "hata1" Catch ex As InvalidOperationException TextBox1.Text = "hata2" Catch ex As UnauthorizedAccessException TextBox1.Text = "hata3" End Try SerialPort1.Close() 'işimiz bitti portu ayarladık - portu açtık - veri gönderdik - veri okuduk ve gösterdik - portu kapattık. End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class ----------------------------------------------------------------------------------------------------------------------------------------------------------- WEB FORM İLE YAZILI KODLAR Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.IO.Ports Public Class WebForm1 Inherits System.Web.UI.Page Public SerialPort1 As SerialPort Public components As System.ComponentModel.IContainer Dim sent1 As String Dim veri(99) As Integer Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load InitializeComponent() End Sub Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components) End Sub Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click SerialPort1.BaudRate() = 115200 SerialPort1.Parity = IO.Ports.Parity.None SerialPort1.DataBits = 8 SerialPort1.StopBits = IO.Ports.StopBits.One SerialPort1.Handshake = IO.Ports.Handshake.None SerialPort1.ReadTimeout = 3000 SerialPort1.WriteTimeout = 5000 SerialPort1.Open() Response.Write(" COM1 PORT BAĞLANTISI SAĞLANDI ") Response.Write("") Response.Write("") sent1 = "Merhaba" b]'Bu veri sizin göndereceğiniz özel bilgidir. Protokolünüze göre değişkenlik gösterir. SerialPort1.WriteLine(sent1) For i = 1 To 63 veri(i) = SerialPort1.ReadByte() TextBox1.Text = TextBox1.Text & " " & Convert.ToString(veri(i)) Next SerialPort1.Close() If SerialPort1.IsOpen = False Then Label1.Text = "Port Kapatıldı" End Sub End Class |
1. sayfa
Selam; Eğer mümkünse hiç bir yerde bulamadığım bir konuyu sormak istiyorum.
Sorum; visual basic 2010 ile yazılmış formları ve kontrolleri olan bir program var ve PC de çalışıyor. İsteğimiz bu programın kontrollerinin asp.net ile yazılmış web formları tarafından yönetmek. Mesela bir vb programı var. başlat butonu veya butona basınca labele yazı yardıran bir program. basit bir örnek. Şimdi bir web form oluştursak ve burada bir başlat butonu oluştursak ve buna basınca visual basic programdaki başlat butonuna basılsa ve labele yazı yazsa.
Amaç vbasicle yazılmış basit bir formu uzaktan yönetilebilir yapmak. Yani güzel yazılmış bir pc yazılımımız var. Ben buna bir web form ara yüzü yazmak istiyorum. Ağdaki herhangi bir pc den yayındaki bu web forma browser den erişilecek. bu formda kontroller olacak. Bu kontroller yayının yapıldığı pc deki programın kontrollerini çalıştıracak. Daha ilerisinde bu kontroller vasıtası ile gelen veriler web form ile alınarak gösterilecek.
Malesef ASP ile web talepleri karşılayan programlar yazılabiliyor. Komutlarda buna göre ve kısıtlı. Bizdeki program vb form ile oluşturulmuş bir seri port cihazla konuşuyor ve onu yönetiyor. Eğer programı web arayüzü ile yönetebilirsek uzaktan erişilebilir ve yönetilebilir kılacağız. Tabii bilgi edine bilirsek.
Teşekkürler.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.