Category Archives: Visual C#

contoh code C# menulis-write type data long ke modbus register

buat project baru

buat form sbb

code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using www.counterproduksi.com;

namespace ConvertInt32ToMSBandLSB
{
    public partial class Form1 : Form
    {

     //   private www.counterproduksi.com.CounterEthernet  MBCounter1;
        private www.counterproduksi.com.CounterEthernet MBCounter1; 

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            int PLAN = Convert.ToInt32(textBox1.Text);
        
             

            int HighINT = (PLAN   >> 16) & 0x0000ffff;
            int LowINT = PLAN & 0x0000ffff;
            int LSBUnsigned = (Int16)LowINT; // y = -1


            txtMSB.Text =  HighINT.ToString();  
            txtLSB.Text  = LSBUnsigned.ToString(); 

        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show(" di disable");
            /*
            byte[] data1 = new Byte[2];
            int[] word = new int[1];


            word[0] = Convert.ToInt16(txtLSB.Text);
            byte[] dat = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)word[0]));
            data1[0] = dat[0];
            data1[1] = dat[1];
            try
            {
          
                   //   MBCounter1.WriteSingleRegister(4, 0, 30, data1);
                MBCounter1.WriteDataCounter(4, 0, 5, data1);
        

            }
            catch (SystemException error)
            {
                MessageBox.Show(error.Message);
            }
        
        */
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                MBCounter1 = new CounterEthernet("127.0.0.1", 502);
                txtVersiLibrary.Text = MBCounter1.versi;
              //  MBCounter1.OnResponseData += new ModbusTCP.Master.ResponseData(MBCounter1_OnResponseData);
               // MBCounter1.timeout = 6000;
                button3.Enabled = false;
                button4.Enabled = true;
                button5.Enabled = true;
                button6.Enabled = true;
                button2.Enabled = true;
            }//end try
            catch (SystemException ex)
            {
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
           
            try
            {
                MBCounter1.disconnect();
                MBCounter1.Dispose();
                button3.Enabled = true;
                button4.Enabled = false;
                button5.Enabled = false;
                button6.Enabled = false;
                button2.Enabled = false;

            }//end try
            catch (SystemException ex)
            {
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            button4.Enabled = false;
            button5.Enabled = false;
            button6.Enabled = false;
            button2.Enabled = false;

           
        }

        private void button5_Click(object sender, EventArgs e)
        {
            MessageBox.Show(" di disable");
            /*
            byte[] data1 = new Byte[2];
            int[] word = new int[1];


            word[0] = Convert.ToInt16(txtMSB.Text);
            byte[] dat = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder(( short)word[0]));
            data1[0] = dat[0];
            data1[1] = dat[1];
            try
            {

                //   MBCounter1.WriteSingleRegister(4, 0, 30, data1);
                MBCounter1.WriteDataCounter(4, 0, 4, data1);


            }
            catch (SystemException error)
            {
                MessageBox.Show(error.Message);
            }

         */
        }

        private void button6_Click(object sender, EventArgs e)
        {
            byte[] data1 = new Byte[4];
            int[] word = new int[2];


            word[0] = Convert.ToInt16(txtMSB.Text);
            byte[] dat = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)word[0]));
            data1[0] = dat[0];
            data1[1] = dat[1];

            word[1] = Convert.ToInt16(txtLSB.Text);
            byte[] dat1 = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)word[1]));
            data1[2] = dat1[0];
            data1[3] = dat1[1];

            try
            {


               // MBCounter1.WriteDataCounter(4, 0, 5, data1);
                MBCounter1.WriteMultipleRegister(4, 0, 4, data1);


            }
            catch (SystemException error)
            {
                MessageBox.Show(error.Message);
            }

            //======================
        }
    }
}

Pengetahuan Dasar Membuat Aplikasi VB.Net untuk Monitoring Counter Produksi via LAN

sumber  :  www.counterproduksi.com

Panduan teknis  untuk membaca/menulis  data  ke  mikro counter dan Andon 7 segment maupun Andon matrik p10.

vbcounter

Untuk  mengakses data counter menggunakan aplikasi VB.Net atau C#  anda akan diberikan class library untuk setiap pembelian counter produksi. Dengan class library ini pemrograman VB.net atau C# untuk mengakses data counter menjadi sangat mudah  dilakukan.

vbcounter

Step by step Cara Mengakses (baca/tulis)  Data Counter dengan VB.Net  via LAN (TCP)

1. Menambahkan library counter*  ke dalam projet VB.net

Melalui menu Project->Add reference
Lalu pada code tambahkan:
Imports CounterTCP
——————————————————————————–
2. Membuat Obect counter

Private CounterLineA As CounterTCP.Client
Private CounterLineB As CounterTCP.Client

——————————————————————————–
3. Membuat koneksi ke Counter

Try
‘ Create new client Counter  and add event functions
CounterLineA = New Client(txtAlamatIPLineA..Text, NoPort)

AddHandler CounterLineA.OnResponseData, New CounterTCP.Client.ResponseData(AddressOf CounterLineA_OnResponseData)

Catch [error] As SystemException
‘MessageBox.Show([error].Message)
End Try
——————————————————————————–
4. Membaca Counter

// Membaca data Counter Line A
Try
CounterLineA.ReadDataCounter( 0, 15)  ‘baca data  0 – 15
Catch [error] As SystemException
MessageBox.Show(“READ EROR”)
End Try

// Membaca data Counter Line B
Try
CounterLineB.ReadDataCounter( 0, 15)  ‘baca data  0 – 15
Catch [error] As SystemException
MessageBox.Show(“READ EROR”)
End Try

——————————————————————————– 
5. Menampilkan Data Counter ke Form

Private Sub CounterLineA_OnResponseData()

Dim data As Byte()

data = values
TextBox1.Text = (data(0) * 256 + data(1)).ToString()   ‘ data  ke-1  plan
TextBox2.Text = (data(2) * 256 + data(3)).ToString()  ‘data ke-2    actual
TextBox3.Text = (data(4) * 256 + data(5)).ToString()   ‘data ke-3   target
TextBox4.Text = (data(6) * 256 + data(7)).ToString()    ‘data ke- 4… dst

End Sub
——————————————————————————–

6. Menulis data ke   Counter

Private Sub Button9_Click()
Dim data(1) As Integer
Dim Address As UShort

Address = Convert.ToUInt16(txtAdress.Text)
data(0) = Convert.ToInt16(txtData.Text)

Try
CounterLineA.WriteDataCounter(Address, data)
Catch [error] As SystemException
MessageBox.Show([error].ToString)
End Try

End Sub

——————————————————————————–
7. Memutus koneksi aplikasi  dgn  Counter

CounterLineA.disconnect()

——————————————————————————–

Contoh Form menampilkan data Counter

form display counter

*Class Library Counter untuk VB.net / C# disertakan pada setiap pembelian counter produksi  . www.counterproduksi.com

iklan

 

Contoh Program C# Menyimpan Data string di Slave Modbus RTU

Seperti kita ketahui bahwa type data yg dipakai dlm Modbus RTU,  master atau slave adalah integer.namun  seringkali kita membutuhkan menyimpan data dalambentuk string / ascii . untuk ini kita bisa mensiasati memperlakukan string/ kode  ascii sebagai integer.

modbus_string

Gambar 1.  Contoh sebuah Slave Modbus RTU  yg menerima/menyimpan “data string”

Untuk jelasnya langsung saja kita lihat contoh program di PC sebagai Master modbus yg akan menulis string berupa 8 buah kode ascii   ke modbus slave.

1.Buatlah project C# baru

2. buat form dan isi dengan objek  textBoxt  ganti namamenjadi txtDataString  dan Buton menjadi btnSimpan spt pada gambar dibawah ini

datastring

isikan kode berikut ini

private void btnSimpan_Click(object sender, EventArgs e)
{
int i,j,tambahanchar;
byte address = 1; // alamat slave yg akan ditulis

ushort[] value = new ushort[4];

if (txtDataString.Text.Length < 8) // tambahkan space
{
tambahanchar = 8 – txtDataString.Text.Length;
for (j = 0; j < tambahanchar; j++)
txtDataString.Text =txtDataString.Text + ” “;

}

if (txtDataString.Text.Length > 8) // potong string
{
MessageBox.Show(“batas max 8 huruf”);
txtDataString.Text = txtDataString.Text.Substring(0, 8);
}

this.Convertstrtohex();

for (i = 0; i < 4; i++)
value[i] = Convert.ToUInt16(datasend[i]);

if (mb.Open(lstPorts.SelectedItem.ToString(), Convert.ToInt32(lstBaudrate.SelectedItem.ToString()),
8, Parity.None, StopBits.One))
{
try
{

if (ModbusObjek.SendFc16(address, 8, (ushort)4, value)) ;   // modbus fungsi 16 menyimpan data ke beberapa register
{
lbstatus.Text = “berhasil ditulis”;
}

}
catch (Exception err)
{
lbstatus.Text =”gagal ditulis”;
}
}

mb.Close();
}

private void Convertstrtohex()
{ //BUAT ARRAY STRING HEXA
// AB CD EF GH
//4142 4344 4546 4748
// 0 4 8 12
// 0 1 2 3
string hexResult, SubstringResult, nilairegister;
hexResult = this.ConvertToHex(txtDataString.Text).ToString();
SubstringResult = hexResult.Substring(0, 4);
nilairegister = (int.Parse(SubstringResult, System.Globalization.NumberStyles.HexNumber)).ToString();

for (int i = 0; i < 4; i++)
{

datasend[i] = (int.Parse(hexResult.Substring(i * 4, 4), System.Globalization.NumberStyles.HexNumber)).ToString();

}

}

public string ConvertToHex(string asciiString)
{
string hex = “”;
foreach (char c in asciiString)
{
int tmp = c;
hex = hex + String.Format(“{0:x2}”, (uint)System.Convert.ToUInt32(tmp.ToString()));
}
return hex;
}

Menampilkan data register   dlm bentuk string pada arduino 

setelah  arduino menerima data ascii  dalam bentuk hex ,maka untuk menampilkan kita harus merubah data hex tersebut menjadi ascii   .

berikut ini contoh mudah merubah data 4 buah register menjadi string   sebanyak 8 karakter yg disimpan di variable array  namaModelDariPc .   1 register dirubah menjadi 2 karater.

seperti kita ketahui ,  string adalah array yg berakhiran NULL .

void printNamaModel(int regAwal)
{
namaModelDariPc[0] =(Mb.MbData[regAwal] & 0xff00)>>8;
namaModelDariPc[1] = Mb.MbData[regAwal] & 0x00ff;
namaModelDariPc[2] = (Mb.MbData[regAwal+1] & 0xff00)>>8;
namaModelDariPc[3] = Mb.MbData[regAwal+1] & 0x00ff;
namaModelDariPc[4] =(Mb.MbData[regAwal+2] & 0xff00)>>8;
namaModelDariPc[5] = Mb.MbData[regAwal+2] & 0x00ff;
namaModelDariPc[6] = (Mb.MbData[regAwal+3] & 0xff00)>>8;
namaModelDariPc[7] = Mb.MbData[regAwal+3] & 0x00ff;
namaModelDariPc[8] = 0x00;

Serial.print(namaModelDariPc);
}

 

Kesimpulan

Modbus RTU tetap tidak bisa  menyimpan data kode ascii  secara langsung. contoh diatas adalah merubah tiap kode ascii dari sebuah string menjadi type integer.

Pengetahuan Dasar C# : Menulis dan Membaca File

Untuk menulis  file text kita bisa menggunakan objek dari class StreamWriter dan untuk membaca file text  kita gunakan  objek dari class StreamReader. Class class tsb berada pada namespace System.IO.

Langkah langkah membuat aplikasi sederhana menulis dan membaca file text.

1. Buat project C# baru  jenis windows application  , buat form  spt pd gambar berikut

 

filestream

2. Kode program
using System;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace aksesfile
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnsave_Click(object sender, EventArgs e)
{

StreamWriter  ObjekTulis = new StreamWriter(System.Windows.Forms.Application.StartupPath + "\\test.txt");

ObjekTulis.Write(txtuser.Text + "\r\n" );

ObjekTulis.Write(txtpassword.Text + "\r\n");

ObjekTulis.Close();

ObjekTulis = null;

}

private void btnRead_Click(object sender, EventArgs e)
{
StreamReader objekbaca = new StreamReader("test.txt");

txtoutput.Text = objekbaca.ReadToEnd();

objekbaca.Close();

objekbaca = null;
}
}
}
3. buat  file text dgn notepad atau text editor lainya,  save as file test.txt  simpan di output direktory yaitu  ..\bin/debug    outputdirektory

Pengetahuan Dasar Membuat Class Library ( file berektensi *.dll) dgn C#

Dalam pembuatan program dgn  C#  supaya lebih  simple,  class class kita pisahkan ke dlm file terpisah  antara lain yg berextensi *.dll atau bisa disebut class library.

Keuntungan dipisahnya code class ke dlm  class library  antara lain:

– Menyederhanakan program

– Class tsb mudah digunakan kembali di program lain.

Langkah langkah membuat  class library.

1.  Buka project baru

2. Pilih kategory class library

3.  Klik menu project properties, rubah output type defaultnya dari “windows application”  menjadi  “class library” .

3. Ketik class yg anda buat , pastikan access modifier class nya public !

misal

namespace  librariku
{
public class librarymu   //  class modifier diset public agar bisa diakses dari luar
{
//code disini
}
}

4. Simpan file project.

kemudian compile dengan perintah sbb:

csc /target:library  namafile.cs

Seperti tampak pd gambar berikut:

compile_classlibrary

jangan lupa sebelumnya set PATH environment dgn tambahan 
;C:\WINDOWS\Microsoft.NET\Framework\v3.5

setpath

Pengetahuan Dasar ADO.NET C# untuk Pemrograman Database

Aplikasi yang kita buat seringkali menyertakan database  untuk menyimpan data  misalnya aplikasi monitoring temperatur , data temperatur harian atau per menit kita simpan di MsAccess , Mysql  atau yg lainya.  Untuk menghubungkan aplikasi berbasisi .NET (dot net) spt  C#, VB.net, ASPX dll  dengan berbagai database  dibutuhkan suatu penghubung  yaitu   ADO.NET . Pada masa sebelumnya  untuk menghubungkan aplikasi dgn database kita  menggunakan  ADO , OLEDB dan ODBC.

Mengenal ADO.NET

ADO.NET merupakan    kumpulan  class yang memberikan  akses ke database serta XML  ditujukan   buat para  programmer  .NET.   Class class  tsb merupakan bagian dari framework .NET  yg terletak  di namespace   system.data.dll

Didalam ADO.NET tersedia berrbagai  data provider spt OLEDB, ODBC dan data provider khusus untuk database tertentu spt untuk SQL server  dan oracle. Selain untuk database  juga tersedia data provider untuk XML.

XML digunakan untuk pertukaran data antar  system yg berbeda contoh sebuah system di linux dgn aplikasi  java dan mysql  akan bertukar data dgn system lain yg mengunakan  os windows dgn aplikasi  C# dan MsAccess . Cara mudah pertukaran data antara dua system tsb  adalah data yg dipertukarkan  mempunyai format yang sama yaitu dlm  bentuk XML. Pada artikel ini sy tdk membahas tentang XML.

Arsitektur ADO.NET

Terdapat 2 kelompok  class utama dlm ADO.Net:
Pertama data provider :    digunakan  untuk koneksi ke database .
Kedua adalah data set :  digunankan untuk menyimpan dan mengelola data. Lebih jelasnya bisa dilihat dlm arsitektur ADO.Net berikut ini:

adonet

Conected dan Disconected

ADO.NET  menyediakan mode conected dan disconected dlm mengelola database.  Pada Mode conected  client memodifikasi data dlm keadaan online  sedangkan mode disconected adalah fitur baru ADO.NET  gambaran mekanismenya antara lain  sbb: client membuka  koneksi ke server database kemudian   data disimpan di  buffer(dataset) client  lalu koneksi server diputus setelah  data diolah baru dibuat  lagi koneksi ke server untuk transfer data. model disconected  spt ini  sangat membantu karena bisa mengurangi trafik data dlm jaringan  terutama jika jumlah client sangat banyak

conected_disconected

Melalui gambar  arsitektur diatas saya ingin memperjelas perbedaan cara mengases database dgn conected ( client dan server database tergubung terus selama  manipulasi data) dgn data reader. dan  disconected , pemilihan kedua  cara tsb tergantung  kebutuhan aplikasi yg kita buat. misalnya untuk mengisi datagridview maka kita gunakan data adafter dan data set sedangkan jika kita ingin mengambil satu baris atau beberapa baris data maka kita gunakan data reader.

Connection
Komponen ini digunakan untuk mengatur koneksi dengan sebuah data source..

Command
command adalah pernyataan SQL atau prosedur yang tersimpan digunakan untuk mengambil, insert, delete atau update data dalam  sebuah data source.

DataReader
Datareader digunakan untuk mengambil data dari database dalam mode read-only dan mode forward.

DataSet
DataSet adalah representasi data di memori . dataset terputus dari database, ia menyimpan cached sejumlah record yang diambil dari database. Ketika sambungan dibuat dengan database, data adapter membuat dataset dan menyimpan data di dalamnya. Setelah data diambil dan disimpan dalam dataset, koneksi dengan database ditutup. Hal ini yg disebut  sebagai ‘arsitektur terputus/disconected’. dataset bekerja sebagai database virtual yg berada di memori  yang berisi tabel.

DataAdapter
DataAdapter merupakan bagian integral dari kerja ADO.Net karena data ditransfer ke dan dari database melalui data adafter. Data adafter mengambil data dari database dan menyimpanya ke dalam dataset selain itu data adafter juga mengupdate database.
Ketika perubahan  terjadi di dataset, perubahan juga terjadi di dalam database yg  dilakukan oleh data adapter

Data Provider
Dataprovider digunakan untuk menghubungkan aplikasi dgn database, mengeksekusi perintah dan mengambil data, menyimpannya dalam dataset, membaca data yang diambil dan memperbarui database.

sedangkan yang dimaksud data provider  adalah  bagian yg spt tampak berikut ini:

dataprovider

Tiap  data provider  mempunyai namespace masing2 yg ada di NET Framework antara lain :

– System.Data.SqlClient  :  data provider  untuk  SQL Server
– System.Data.OracleClient :   data provider untuk  Oracle
– System.Data.Odbc   :  data provider untuk  ODBC
-System.Data.OleDb  :  data provider  untuk  OLEDB

1. Data Provider  untuk  database SQL SERVER

Data Profider SQL Server ada di namespace System.Data.SqlClient. Berikut ini  beberapa class class   yg disediakan  dlm namespace tsb :
– SqlConnection: class yg digunakan untuk koneksi  ke database SQL Server
– SqlCommand   : class yg digunakan untuk mengeksekusi SQL query  atau  store procedures
– SqlDataAdapter: class yg menghubungkan  dataset  dan  database SQL Server
– SqlDataReader :  class yg digunakan untuk membaca database secara read only.

2. Data provider untuk  database ORACLE

Data provider  khusus  untuk database Oracle tersedia di namespace System.Data.OracleClient. Berikut ini  beberapa class class   yg disediakan  dlm namespace tsb :
– OracleConnection
– OracleCommand
– OracleDataAdafter
– OracledataReader

3. Data provider  OLEDB  untuk database dg teknoogi yg lama

OLEDB digunakan untuk database lama antara lain : Pradox, Dbase, MsAccess ,Mysql ,DB2 dan  sql server versi lama. selain itu  OLEDB juga digunakan ketika kita menggunakan 2 database yg berbeda   misal kita menggunakan MsAccess dan SQL server dlm satu aplikasi secara simultan.

Data provider OLEDB harus melalui beberapa layer untuk mengakses database. sehingga lebih efisien anda menggunakan data provider yg spesifik untuk tiap database. mial untuk Oracle gunakanlah data provider  yg ada di System.Data.OracleClient  bgitupun untuk SQL Server lebih efisien menggunakan dataprovider yg tersedia di System.Data.SqlClient dari pada anda menggunakan data provider OLEDB (System.Data.OleDb).

Class class yg digunakan oleh data provider OLEDB  (class class tsb ada di  namespace System.Data.OleDb)  antar lain:

–  OleDbConnection,  class untuk mengkoneksi  database
–  OleDbCommand,   class untuk  menjalankan  SQL query
–  OleDbDataAdapter, class untuk menghubungkan  dataset  dg database
–  OleDbDataReader,   membaca hasil output dari database

classdataprofider
=================teori end=========================

Sekarang waktunya kita akan lihat contoh konkrit  bagaimana aplikasi C# mengakses database secara “conected” dgn objek DataReader .

Contoh1 :   aplikasi console  C#  mengkases database sql server dgn  data provider  SQL Server (using System.Data.SqlClient )  :

using System;
using System.Data.SqlClient;   // namespace data provider sql server
namespace  ContohAksesSqlServer
{
  class ContohSqlServerProvider
  {
   static void Main(string[] args)
    {
   // buat string untuk koneksi
     string  stringKoneksi = @ &amp;quot; server =  .\sqlexpress;  integrated security = true;  database = perpustakaan &amp;quot; ;

    // buat query
    string SQL = @ &amp;quot; select * from  data_buku &amp;quot;;

    // deklarasikan objek  connection dan  data reader
    SqlConnection  koneksi_database = null;
    SqlDataReader  baca_data = null;
   try
    {
  // 1. buka koneksi ke database
     koneksi_database  = new SqlConnection(stringkoneksi);
   koneksi_database.Open();

    // 2. jalankan query
    SqlCommand cmd = new SqlCommand(SQL, koneksi_database);
    // tampilkan judul kolom data
      Console.WriteLine(&amp;quot;Judul buku \t  Pengarang\n&amp;quot;);

    // 3. proses output table

     baca_data = cmd.ExecuteReader();
    while(baca_data.Read())
     {
    Console.WriteLine(&amp;quot;{0} | {1}&amp;quot;, baca_data[0].ToString(baca_data[1].ToString());
     }
    }
  catch (Exception e)
     {
     Console.WriteLine(&amp;quot;Error: &amp;quot; + e);
      }

finally
    {
     //4.  Tutup Koneksi
   koneksi_database.Close();
    }
}
}

Untuk menghubungkan aplikasi C# dng  database sql server selain dengan data provider  khusu untuk sql server spt diatas ( using System.Data.SqlClient) juga bisa dengan OLEDB ataupun dgn ODBC adapun  dimana letak perbedaan utamanya  bisa dilihat di table berikut ini:

perbedaan1

Contoh2 :  Koneksi Aplikasi C#  dg database MsAccess  menggunakan data provider OLEDB (using System.Data.OleDb;)

 https://pccontrol.wordpress.com/2011/08/05/contoh-koneksi-c-dengan-ms-access-2003-mdb-dan-2007-accdb/

contoh3 : koneksi aplikasi C# dengan MYSQL  menggunakan data provider milik mysql  (using MySql.Data.MySqlClient;)

https://pccontrol.wordpress.com/2011/04/28/pemrograman-c-dengan-mysql/

contoh4:  VB.Net dengan database MYSQL

https://pccontrol.wordpress.com/2014/12/17/pengetahuan-dasar-koneksi-vb-net-dan-database-mysql/

Pengetahuan Dasar C# .Net Micro Framework untuk microcontroller ARM (modul Netduino)

Apa itu .Net Micro Framework?

.Net Micro Framework adalah  flatform NET untuk pemrograman embeded yg terintegrasi dengan Visual studio  ,  menggunakan bahasa pemrograman  C#.

perbandingan Net Micro

Kelebihan .Net Micro:

  • Easily develop powerful, interactive, and complex applications
  • Securely connect devices over wired or wireless protocol
  • Develop full solutions using .NET including devices, servers, and the cloud
  • Rich base class library
Kekurangan dari .Net Micro
Exsekusi program .net micro  lebih lambat dari pemrograman native code  (asembler atau bhs c) .

Sofware yg dibutuhkan


1. Microsoft Visual C# Express 2010

2. Microsoft .NET Micro Framework v4.1 SDK

3.  Netduino1 SDK 4  (disediakan oleh  SecretLabs)

(jika anda menggunakan modul selain netduino maka kebutuhan software no 3 juga di sesuaikkan dgn modul yg anda gunakan)

Hardware

Modul hardware yang kita gunakan  adalah Netduino  sebuah open-source electronic  platform  yg menggunakan  .NET Micro Framework .  Rangkaiannya ada disini .  Kalau mau beli sepertinya sudah ada di prasimax.

saat ini Netduino ada 3 model

1. Netduino

2. Netduino mini

3. Netduino plus

Netduino spec

Membuat Project Baru

1. Buka Visual Studio atau C# express

2. New Project

3. Pilih template Micro Framework spt tampak dibawah ini , sesuaikan dgn modul netduino yg anda miliki.

Tanpilan Menu pilihan C# micro

5. Klik program.cs

copy dan pasta program    C# Net Micro  Netduino  berikut ini.

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
public class BlinkingLed
{
public static void Main()
{
var ledPort = new OutputPort(Pins.ONBOARD_LED, false);
while (true)
{
ledPort.Write(true);               //  LED on
Thread.Sleep(500);              // delay 500 ms
ledPort.Write(false);           //  LED off
Thread.Sleep(500);           // delay 500 ms
}
}
}

6. klik menu Debug->Build Solution

Jika sukses maka kita bisa melanjutkan dengan mengirim program yang sudah di buld ke Modul melalui port komunikasi USB.

Langkah mentrasfer program yg sudah dibuild ke modul sebagai berikut

1. klik kanan pada project dan klik properties

net micro project properties

2.  klik tab menu .NET Micro Framework. kemudian set spt gambar  antara lain:

  • Configuration  :  Active (Debug)
  • Platform             :  Active (Any CPU)
  • Transport          :   USB
  • Device                :   select your Netduino from the drop-down list.
  • Generate native stubs for internal methods  :    unchecked

Properties net microframework

Kalau pada isian text boxt  “Device”  kosong , kita harus mengkoneksi modul netduino ke PC kita dulu lewat port  USB nya.

3. Klik menu Debug-Start Debugging , maka program akan ditransfer ke Modul Netduino.

Untuk menghapus program di modul gunakan MFDeploy lokasinya ada di :

C:\Program Files\Microsoft .NET Micro framework\v4.1\Tools\MFDeploy.exe

Tool MFDeploy net Micro framework

Langkah langkah Menghapus program di Modul Netduino

1. Buka MFDeploy  pastikan  pilih “USB” pada  pilihan Device spt pd gambar diatas.

2.  Cabut dan pasang kembali USB cable  sambil tombol di netduino ditekan.

3. lepas tombol dan klik erease pada MFDeploy.

selesai.

Contoh 2  membaca penekanan tombol

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;

namespace ButtonApp
{
public class Program
{
public static void Main()
{
// write your code here
OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
InputPort button = new InputPort(Pins.ONBOARD_SW1, false, Port.ResistorMode.Disabled);
bool buttonState = false;

while (true)
{
buttonState = button.Read();
led.Write(!buttonState);
}

}

}
}

Untuk  memperdalam C# .Net Micro Framework  ada baiknya  anda  pelajari juga  dasar  bahasa pemrograman C#   .

sumber

http://www.netduino.com

– http://www.microsoft.com/en-us/netmf/default.aspx

Dasar Merancang Tabel , Relasi antar Tabel dan Data Integrity dgn MYSQL – C#

Buat anda yang sedang atau pernah  kuliah di informatika mungkin artikel ini tdk terlalu berguna. Artikel ini saya tujukan buat anda yang belum pernah mempelajari dasar membuat  tabel di dalam sebuah database.

Merancang Tabel

Penjelasan tujuan perancangan tabel di dalam database diantaranya bisa dilihat pada contoh berikut:

Misalnya pada sebuah manufacture yang memproduksi  Televisi , mempunya tabel output produksi sbb:

no LINE TGL WAKTU MODEL SIZE Tujuan
 1 A  4/27/2010  09:03:22 AAA 14 Australia
2 A 4/27/2010  09:04:21 AAA 14 Australia
3 B 4/27/2010  09:05:13 ABC 21 Pilipina
4 B 4/28/2010  09:05:34 ABC 21 Pilipina
5 B 4/28/2010  09:06:22 ABC 21 Pilipina

TABEL 1

Tabel diatas sepertinya tampak biasa saja bagi anda yang belum pernah mempelajari dasar dasar merancang tabel / database. Tapi sebenarnya tabel diatas bukanlah tabel yang baik.  Kekurangan dari tabel diatas antara lain:

– Jika pada hari itu tdk ada produksi di line B , maka kita akan kehilangan informasi ttg model ABC.   ini disebut anomali.

– Jika saya ingin mengganti  data kolom  Tujuan  untuk  model ABC  dari Pilipina ke Banglades maka semua tujuan pd tiap  baris harus diganti satu persatu. begitu juga  jika size ingin dirubah maka semua data size  tiap baris harus dirubah. hal ini tentu bukan cara  yg efisien.

– Adanya  data yang sama di input berulang,   data size dan tujuan  untuk model yg sama akan diinput kembali  pada tiap baris  hal ini disebut redudant .  ini memboroskan  lokasi memori tempat menyimpan data.

Tabel yang baik tdk mengandung anomali ataupun redudant.

Untuk  memperbaiki tabel diatas,   hilangkan anomali dan redudant. Salah satu caranya adalah dengan membuat tabel di atas menjadi 2 tabel sbb:

Tabel MasterModel :

idmodel MODEL SIZE Tujuan
 01A AAA 14 Australia
01B AAA 14 Belgia
02A ABC 21 Jepang
02B ABC 21 Rusia
02C ABC 21 Pilipina

TABEL 2

Tabel OutputProduksi :

idmodel TGL WAKTU LINE
 01A   4/27/2010  09:03:22 A
01B  4/27/2010   09:04:21 A
02C  4/27/2010 09:05:13  B
02C  4/28/2010   09:05:34 B
02C  4/28/2010 09:06:22 B
02C  4/29/2010 09:06:22 A
02C  4/29/2010 09:06:22 A
02B  4/29/2010 09:06:22 B
02B  4/30/2010 09:06:22 B
01A  4/30/2010 09:06:22 A
02C  4/30/2010 09:06:22 A

TABEL 3

Setelah tabel 1 dipecah menjadi  dua tabel yaitu tabel 2 dan tabel 3 maka :

– Jika kita ingin merubah data pada model , size  atau  data pd kolom tujuan kita cukup sekali saja merubahnya yaitu pada tabel 2.

–  Jika tdk ada produksi pada tgl berapapun data informasi model tdk  akan hilang  dan tetap ada di tabel 2.

– Data output produksi menjadi lebih hemat memori karena kolom  model size dan tujuan tdk diikutkan dalam tabel output produksi.

Yang  jadi pertanyaan  sekarang adalah dari mana aplikasi tahu kalau tabel 3 mempunyai hubungan /relasi dengan tabel 2?

Pada contoh di atas idmodel pada tabel 3 mengacu pada idmodel pada tabel2.

kesimpulan yg bisa diambil dari  hubungan/relasi   antara tabel 2 dan tabel3 :

  • pertama : data dalam kolom  idmodel pada tabel2 tdk boleh kosong ( ketika kolom lain ada isinya) atau istilahnya NOT NULL.  contoh  pada baris kedua data pada tabel dibawah ini.
idmodel MODEL SIZE Tujuan
 01A AAA 14 Australia
AAA 14 Belgia
02A ABC 21 Jepang


  • kedua :  data dalam kolom idmodel tabel2  tidak boleh ada yg sama. contoh pada tabel dibawah ini data kolom idmodel ada yg sama hal ini tdk di izinkan.
idmodel MODEL SIZE Tujuan
 01A AAA 14 Australia
 01A AAA 14 Belgia
 02A ABC 21 Jepang
  • kolom idmodel pada tabel 3 mengacu pada idmodel tabel 2 dan isinya boleh kosong  atau NULL.

Dalam istilah database,  kolom  idmodel pada  tabel 2 disebut  Primary Key  yaitu  kolom yang unik sebagai indentitas record dlm sebuah tabel  dan idmodel pada tabel 3 disebut Foreign Key.

Untuk membuat  Tabel2  dengan Primary key dan tabel 3 dgn  Foreign Key  perintah nya  SQL untuk database mysql seperti dibawah ini:

CREATE TABLE MasterModel(
idmodel  INT  NOT NULL PRIMARY KEY,
MODEL    VARCHAR(50),
SIZE     VARCHAR(50),
Tujuan   VARCHAR(50),
);

Sedangkan untuk membuat tabel 3 dengan idmodel sebagai Foreign key
CREATE TABLE OutputProduksi(
idmodel FOREIGN KEY REFERENCES MasterModel(idmodel))
TGL    DATE,
WAKTU  TIME,
LINE   VARCHAR(10)
);
Baris perintah diatas memberitahu DBMS bahwa terjadi hubungan antara tabel sbb:

Relasi antara tabel

Data Integrity (integritas data) 

Data integrity  artinya data di database  benar dan konsisten. Ada dua aspek yang membentuk data integrity yaitu:

  • Entity Integrity  (EI) :  Bahwa nilai data pada primary key harus ada dan nilainya tdk boleh ada yang sama. DBMS (database managamen system spt SQL Server, MYSQl dll)  memberlakukan  EI  dgn tdk mengijinkan operasi INSERT atau UPDATE dan  menghasilkan pesan kesalahan jika ada Nilai kosong atau sama. Untuk membuat EI anda harus mendefinisikan kolom yg dijadikan Primary Key.
  • Referensial Integrity  adalah konsep database yang memastikan bahwa hubungan antara tabel tetap konsisten.  Misalnya Pada contoh hubungan tabel MasterModel dan OutputProduksi. Kita tidak bisa menghapus data model di tabel MasterModel, karena data tsb terkait ke tabel OutputProduksi.

to be continyu

referensi:

http://functionx.com/mysqlnet/csharp/Lesson12.htm

Contoh Koneksi C# dengan MS Access 2003 (*.mdb) dan 2007 (*.accdb)

Artikel ini adalah lanjutan/contoh program dari artikel Pengetahuan Dasar  ADO.NET   C#  untuk Pemrograman Database


using System;
using System.Data;
using System.Data.OleDb;
using System.Collections.Generic;
using System.Text; 

/*
untuk Ms aceess2007 ganti connStr dengan:
@"Provider=Microsoft.ACE.OLEDB.12.0;  Data Source=D:\dataaccess2007.accdb;Persist Security Info=False;"
*/  

private void cmdConnect_Click(object sender, EventArgs e)
        {
string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dataaccess2003.mdb;Persist Security Info=False;";
        if (connMsAccess != null)
            connMsAccess.Close();

            string connStrMsaccess = String.Format(connStr);

            try
            {
                connMsAccess = new OleDbConnection(connStrMsAccess);
                connMsAccess.Open();

                txtRemark.Text = "ONLINE";
                 tmrUpdate_datanya.Enabled = true;

            }
            catch
            {
                this.txtRemark.Text = "koneksi gagal";

            }
        }

private void tmrupdate_datanya_Tick(object sender, EventArgs e)
        {
            OleDbCommand cmdMsaccess = new OleDbCommand();
            cmdMsaccess.Connection = connMsAccess;
            cmdMsaccess.CommandText = "select * from tabel_output_akhir where id = 1";

            OleDbDataReader ReaderMsAccess = null;
            try
            {

                ReaderMsAccess = cmdMsaccess.ExecuteReader();

                while (ReaderMsAccess.Read())
                txtPlanF.Text = reader["plan"].ToString();
                txtTargetF.Text = reader["target"].ToString();
                txtActualF.Text = reader["actual"].ToString();

                ReaderMsAccess.Close();
                txtRemarkG.Text = "Network ok";
            }

            catch
            {
                txtRemarkG.Text = "terputus";
            }
        }

Konversi Bilangan Integer ke Hexa pada C# (C sharp)

Form Untuk Konversi bilangan Integer ke Hexa dan sebaliknya

 Code Program C# untuk konversi  Integer ke Hexa dan sebaliknya:

privatevoid button1_Click(object sender, EventArgs e)

{

textBox2.Text = Int16.Parse(textBox1.Text).ToString(“X”);   // integer to hex

}

privatevoid button2_Click(object sender, EventArgs e)

{

textBox3.Text = ( int.Parse(textBox2.Text ,System.Globalization.NumberStyles.HexNumber)).ToString();

}

methode ToString()  digunakan untuk merubah  type data bilangan (integer,desimal dll) ke string supaya bisa ditampilkan di textbox