Korisnički alati

Site alati


2018:karlo_siladi:projektni_zadatak

Razlike

Slijede razlike između dviju inačica stranice

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena Novije izmjene na obje strane
2018:karlo_siladi:projektni_zadatak [2018/06/14 00:37]
ksiladi
2018:karlo_siladi:projektni_zadatak [2018/06/14 00:54]
ksiladi kod android aplikacije
Redak 70: Redak 70:
 ==== Komunikacija ==== ==== Komunikacija ====
  
-Komunikacija s modulom se ostvaruje asinkronom serijskom UART komunikacijom. Potrebne su dva digitalna izvoda: Tx i Rx na Arduinu koji se spajaju na Rx i Tx izvode (UOČI: Rx→Tx; Tx→Rx) na mp3 modulu. Za rad mp3 modula potrebno je dovesti i napajanje (GND i +5V) s Arduino Uno razvojne platforme. Na Arduino Uno razvojnoj platformi odnosno na ATmega328p mikrokontroleru postoji sklopovlje za asinkronu serijsku komunikaciju koje je spojeno na USB kako bi se mogla ostvariti komunikacija s računalom. Zbog uhodavanja i nadogradnje sustava asinkrona serijska komunikacija sa mp3 modulom ostvarit će se programski. Pritom će se koristiti ugrađena biblioteka [[https://​www.arduino.cc/​en/​Reference/​SoftwareSerial|SoftwareSerial]] koja se već nalazi u Arduino IDE.+Komunikacija s modulom se ostvaruje asinkronom serijskom UART komunikacijom. Potrebne su dva digitalna izvoda: Tx i Rx na Arduinu koji se spajaju na Rx i Tx izvode (UOČI: Rx→Tx; Tx→Rx) na mp3 modulu. Za rad mp3 modula potrebno je dovesti i napajanje (GND i +5V, može i 3v3) s Arduino Uno razvojne platforme. Na Arduino Uno razvojnoj platformi odnosno na ATmega328p mikrokontroleru postoji sklopovlje za asinkronu serijsku komunikaciju koje je spojeno na USB kako bi se mogla ostvariti komunikacija s računalom. Zbog uhodavanja i nadogradnje sustava asinkrona serijska komunikacija sa mp3 modulom ostvarit će se programski. Pritom će se koristiti ugrađena biblioteka [[https://​www.arduino.cc/​en/​Reference/​SoftwareSerial|SoftwareSerial]] koja se već nalazi u Arduino IDE.
  
 ===== RFID čitač ===== ===== RFID čitač =====
Redak 80: Redak 80:
 ==== MFRC522 ==== ==== MFRC522 ====
  
-MFRC522 modul je RFID čitač/​pisač proizvođača NXP Semiconductors koji je namijenjen za očitavanje pasivnih RFID  oznaka propisanih ISO/IEC 14443 protokolom. Komunikacija između modula i RFID oznaka se odvija na 13.56 MHz. Komunikacija je ostvarena SPI komunikacijom linijama: MISO, MOSI, SS, CLK. Nedostatak: mali domet. Napredak: Zapis info o proizvodima na RFID oznaku (engl. //tag//).+MFRC522 modul je RFID čitač/​pisač proizvođača NXP Semiconductors koji je namijenjen za očitavanje pasivnih RFID oznaka propisanih ISO/IEC 14443 protokolom. Komunikacija između modula i RFID oznaka se odvija na 13.56 MHz. Komunikacija je ostvarena SPI komunikacijom linijama: MISO, MOSI, SS, CLK. Nedostatak: mali domet. Napredak: Zapis info o proizvodima na RFID oznaku (engl. //tag//). Napajanje 5V ili 3v3. S 5V ostvaren nešto veći domet.
  
-<font 12.0pt/​inherit;;​inherit;;​inherit></​font>​+===== Bluetooth modul ===== 
 + 
 +Bluetooth modul HC-06Odabran zbog jednostavnog rukovanja. Serijska komunikacija izvedena softverski. Jednostavno spajanje na Android mobilnoj aplikaciji. 
 + 
 +===== Shema spajanja sustava ===== 
 + 
 +{{:​2018:​karlo_siladi:​shema_sustava2.png?​nolink&​400x285}} 
 + 
 +====== Prototipno kućište ====== 
 + 
 +Uređaj je prenosiv pa je napajanje izvedeno baterijom nazivnog napona 9V. Napredak: punjive baterije, prekidač 
 + 
 +Za lakše rukovanje sustav je smješten u plastično kućište. Zbog malog dometa RFID čitača isti je postavljen izvan kućišta. Također izvan se nalaze i slušalice. 
 + 
 +{{:​2018:​karlo_siladi:​kuciste.jpg?​nolink&​300x400}}
  
 ====== Komunikacija s vanjskim sustavima ====== ====== Komunikacija s vanjskim sustavima ======
Redak 90: Redak 104:
 Ako dođe do greške prilikom povezivanja preko bluetooth veze, sustav može komunicirati izravno nakon očitavanja jedinstvenog koda proizvoda preko .mp3 modula odnosno reproducirati glasovni zapis s informacijama o proizvodu. Napredak: baza glasovnih zapisa na vanjskom poslužitelju. Snimanje zapisa na samom uređaju. Ako dođe do greške prilikom povezivanja preko bluetooth veze, sustav može komunicirati izravno nakon očitavanja jedinstvenog koda proizvoda preko .mp3 modula odnosno reproducirati glasovni zapis s informacijama o proizvodu. Napredak: baza glasovnih zapisa na vanjskom poslužitelju. Snimanje zapisa na samom uređaju.
  
-====== ​  ​======+====== ​Android aplikacija ====== 
 + 
 +Struktura aplikacije je prikazana na slici: 
 + 
 +{{:​2018:​karlo_siladi:​struktura_apk.png?​nolink&​500x384}} 
 + 
 +===== Android Studio ===== 
 + 
 +[[https://​developer.android.com/​studio/​|Za izradu Android aplikacije potrebno je instalirati razvojni alat Android Studio. Najnovija verzija trenutno je 3.1.3. a dostupna je za preuzimanje na sljedećoj poveznici: https://​developer.android.com/​studio/​]] ​ . 
 + 
 +<font 12pt/​inherit;;​blue;;​inherit>​Detaljne upute za instalaciju razvojnog alata Android Studio</​font>​ 
 + 
 +[[https://​developer.android.com/​studio/​install|https://​developer.android.com/​studio/​install]] 
 + 
 +==== Kreiranje projekta ==== 
 + 
 +<font 12pt/​inherit;;​blue;;​inherit>​Nakon uspješne instalacije razvojnog alata potrebno je kreirati novi Android projekt. Kod stvaranja projekta potrebno je unijeti proizvoljno ime projekta. Korišteno ime je  CKGE_TMP_i SPVP_projekt CKGE_TMP_i . Stvara se novi direktorij istog imena u kojeg se spremaju programski kodovi, biblioteke te resursi potrebni za aplikaciju. Nakon toga potrebno je unijeti verziju platforme za koju se projekt izrađuje. Odabrana je verzija ​ CKGE_TMP_i API: 19 Android 4.4 (KitKat) CKGE_TMP_i ​ što je relativno stara verzija Android operacijskog sustava, ali je time omogućeno da se aplikacija može pokretati na većini mobilnih uređaja jer je pokretanje moguće i na svim novijim verzijama Androida.</​font>​ 
 + 
 +<font 12.0pt/​inherit;;​inherit;;​inherit>​Pri kreiranju novog projekta, stvoren je novi  CKGE_TMP_i Activity CKGE_TMP_i ​ koji prikazuje grafičko sučelje koje vidi korisnik pri pokretanju aplikacije. Potrebno je odabrati ​ CKGE_TMP_i Empty Activity CKGE_TMP_i ​ i dodijeliti mu naziv  CKGE_TMP_i MainActivity. CKGE_TMP_i</​font>​ 
 + 
 +===  AndroidManifest.xml ​ === 
 + 
 +<font 12pt/​inherit;;​inherit;;​inherit>​Kako bi aplikacija ispravno radila potrebno je u datoteku ​ CKGE_TMP_i AndroidManifest.xml CKGE_TMP_i ​ dodati potrebne dozvole za korištenjem ​ CKGE_TMP_i Bluetooth CKGE_TMP_i ​ sučelja.</​font>​ 
 + 
 +<font 9pt/​inherit;;​inherit;;​inherit><​uses-permission android:​name="​android.permission.BLUETOOTH"​ /></​font>​ 
 + 
 +<font 9pt/​inherit;;​inherit;;​inherit><​uses-permission android:​name="​android.permission.BLUETOOTH_ADMIN"​ /></​font>​ 
 + 
 +<font 12.0pt/​inherit;;​inherit;;​inherit>​Potrebno je i navesti sve  CKGE_TMP_i Activity CKGE_TMP_i ​ java razrede koji se koriste u aplikaciji. Korišteni su  CKGE_TMP_i MainActivity CKGE_TMP_i ,  CKGE_TMP_i ProductInfoActivity CKGE_TMP_i ​ i  CKGE_TMP_i ProjectAboutActivity. CKGE_TMP_i</​font>​ 
 + 
 +<font 12.0pt/​inherit;;​inherit;;​inherit>​Oznakom ​ CKGE_TMP_i intent-filter ​ CKGE_TMP_i daje se do znanja Androd OS-u koju Activity treba pokrenuti prilikom pokretanja aplikacije. U manifestu se još navode i korištene ikone.</​font>​ 
 + 
 +<​code><​font inherit/​inherit;;#​e8bf6a;;​inherit><?</​font><​font inherit/​inherit;;#​bababa;;​inherit>​xml version=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​1.0"</​font><​font inherit/​inherit;;#​bababa;;​inherit>​encoding=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​utf-8"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>?></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​manifest</​font><​font inherit/​inherit;;#​bababa;;​inherit>​xmlns:</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>​=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​http://​schemas.android.com/​apk/​res/​android"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​bababa;;​inherit>​package=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​com.example.karlosiladi.bazapodataka"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​uses-permission</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.permission.BLUETOOTH_ADMIN"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​uses-permission</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.permission.BLUETOOTH"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​application</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​allowBackup=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​true"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​icon=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@mipmap/​ic_launcher_spvp"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​label=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@string/​app_name"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​roundIcon=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@mipmap/​ic_launcher_spvp_round"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​supportsRtl=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​true"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​theme=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@style/​AppTheme"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​activity</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​.ProductInfoActivity"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​activity</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​.MainActivity"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​label=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@string/​title_activity_main"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​screenOrientation=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​landscape"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​theme=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@style/​AppTheme.NoActionBar"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​intent-filter></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​action</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.intent.action.MAIN"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​category</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.intent.category.LAUNCHER"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​intent-filter></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​activity></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​activity</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​.ProjectAboutActivity"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​application></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​manifest></​font></​code>​ 
 + 
 +=== Struktura proizvoda === 
 + 
 +<​code><​font inherit/​inherit;;#​cc7832;;​inherit>​public class</​font>​Products { 
 +    <font inherit/​inherit;;#​bbb529;;​inherit>​@NonNull</​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@PrimaryKey</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private</​font>​String <font inherit/​inherit;;#​9876aa;;​inherit>​productId</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private</​font>​String <font inherit/​inherit;;#​9876aa;;​inherit>​productName</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private</​font>​String <font inherit/​inherit;;#​9876aa;;​inherit>​productPrice</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​public</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​Products</​font>​() { 
 +    } 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public</​font>​String <font inherit/​inherit;;#​ffc66d;;​inherit>​getProductId</​font>​() { <font inherit/​inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productId</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​setProductId</​font>​(String productId) { <font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.<​font inherit/​inherit;;#​9876aa;;​inherit>​productId</​font>​= productId<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public</​font>​String <font inherit/​inherit;;#​ffc66d;;​inherit>​getProductName</​font>​() { <font inherit/​inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productName</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​setProductName</​font>​(String productName) { <font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.<​font inherit/​inherit;;#​9876aa;;​inherit>​productName</​font>​= productName<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public</​font>​String <font inherit/​inherit;;#​ffc66d;;​inherit>​getProductPrice</​font>​() { <font inherit/​inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productPrice</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​setProductPrice</​font>​(String productPrice) {<font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.<​font inherit/​inherit;;#​9876aa;;​inherit>​productPrice</​font>​= productPrice<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} 
 + 
 +
 +</​code>​ 
 +=== Baza podataka === 
 + 
 +<​code><​font inherit/​inherit;;#​bbb529;;​inherit>​@Database</​font>​(<​font inherit/​inherit;;#​d0d0ff;;​inherit>​entities</​font>​= {Products.<​font inherit/​inherit;;#​cc7832;;​inherit>​class</​font>​}<​font inherit/​inherit;;#​cc7832;;​inherit>,</​font><​font inherit/​inherit;;#​d0d0ff;;​inherit>​version</​font>​= <font inherit/​inherit;;#​6897bb;;​inherit>​1</​font><​font inherit/​inherit;;#​cc7832;;​inherit>,</​font><​font inherit/​inherit;;#​d0d0ff;;​inherit>​exportSchema</​font>​= <font inherit/​inherit;;#​cc7832;;​inherit>​false</​font>​) 
 +<font inherit/​inherit;;#​cc7832;;​inherit>​public abstract class</​font>​ProductDatabase <font inherit/​inherit;;#​cc7832;;​inherit>​extends</​font>​RoomDatabase { 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​private static final</​font>​String <font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​DATABASE_NAME</​font>​= <font inherit/​inherit;;#​6a8759;;​inherit>"​products_db"</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private static</​font>​ProductDatabase <font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​public abstract</​font>​DaoAccess <font inherit/​inherit;;#​ffc66d;;​inherit>​daoAccess</​font>​() <font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​public static</​font>​ProductDatabase <font inherit/​inherit;;#​ffc66d;;​inherit>​getProductDatabase</​font>​(Context context) { 
 +   ​<font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(<​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font>​== <font inherit/​inherit;;#​cc7832;;​inherit>​null</​font>​) { 
 +   <​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font>​= 
 +   ​Room.<​font inherit/​inherit;;​inherit;;​inherit>​databaseBuilder</​font>​(context.getApplicationContext()<​font inherit/​inherit;;#​cc7832;;​inherit>,</​font>​ProductDatabase.<​font inherit/​inherit;;#​cc7832;;​inherit>​class,</​font><​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​DATABASE_NAME</​font>​) 
 +   ​.allowMainThreadQueries() 
 +                            .build()<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​} 
 +   <​font inherit/​inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​} 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public static void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​destroyInstance</​font>​() { 
 +   <​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font>​= <font inherit/​inherit;;#​cc7832;;​inherit>​null;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​} 
 +
 +</​code>​ 
 +=== Sučelje za slanje upita na bazu === 
 + 
 +<​code><​font inherit/​inherit;;#​cc7832;;​inherit>​public interface</​font>​DaoAccess { 
 +    <font inherit/​inherit;;#​bbb529;;​inherit>​@Insert</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​insertSingleProduct</​font>​(Products product)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Insert</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​insertMultipleProducts</​font>​(List<​Products>​ productsList)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Query</​font>​(<​font inherit/​inherit;;#​6a8759;;​inherit>"​SELECT * FROM Products WHERE productId = :​productId"</​font>​) 
 +    Products <font inherit/​inherit;;#​ffc66d;;​inherit>​fetchProductByProductId</​font>​(String productId)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Query</​font>​(<​font inherit/​inherit;;#​6a8759;;​inherit>"​SELECT * FROM Products"</​font>​) 
 +    List<​Products>​ <font inherit/​inherit;;#​ffc66d;;​inherit>​getProducts</​font>​()<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Update</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​updateProduct</​font>​(Products product)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Delete</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​deleteProduct</​font>​(Products product)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} 
 +</​code>​ 
 +=== Bluetooth handler i reprodukcija zapisa ​===
  
-====== ​Plan projekta ​======+<​code><​font inherit/​inherit;;#​9876aa;;​inherit>​h</​font>​<font inherit/​inherit;;#​cc7832;;​inherit>​new</​font>​Handler() { 
 +    <font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​handleMessage</​font>​(android.os.Message msg) { 
 +   <​font inherit/​inherit;;#​cc7832;;​inherit>​switch</​font>​(msg.<​font inherit/​inherit;;#​9876aa;;​inherit>​what</​font>​) { 
 +   <​font inherit/​inherit;;#​cc7832;;​inherit>​case</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​RECIEVE_MESSAGE</​font>:​ 
 +   <​font inherit/​inherit;;#​cc7832;;​inherit>​byte</​font>​[] readBuf ​(<font inherit/​inherit;;#​cc7832;;​inherit>​byte</​font>​[]) msg.<​font inherit/​inherit;;#​9876aa;;​inherit>​obj</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​String strIncom ​<font inherit/​inherit;;#​cc7832;;​inherit>​new</​font>​String(readBuf<​font inherit/​inherit;;#​cc7832;;​inherit>,</​font><​font inherit/​inherit;;#​6897bb;;​inherit>​0</​font><​font inherit/​inherit;;#​cc7832;;​inherit>,</​font>​msg.<​font inherit/​inherit;;#​9876aa;;​inherit>​arg1</​font>​)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.append(strIncom)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​int</​font>​endOfLineIndex ​<font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.indexOf(<​font inherit/​inherit;;#​6a8759;;​inherit>"</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​\r\n</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"</​font>​)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(endOfLineIndex > <font inherit/​inherit;;#​6897bb;;​inherit>​0</​font>​) { 
 +   ​String sbprint ​<font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.substring(<​font inherit/​inherit;;#​6897bb;;​inherit>​0</​font><​font inherit/​inherit;;#​cc7832;;​inherit>,</​font>​endOfLineIndex)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.delete(<​font inherit/​inherit;;#​6897bb;;​inherit>​0</​font><​font inherit/​inherit;;#​cc7832;;​inherit>,</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.length())<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​808080;;​inherit>//​Toast.makeText(MainActivity.this,​ "From Arduino: " + sbprint, Toast.LENGTH_SHORT).show();</​font><​font inherit/​inherit;;#​808080;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(<​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​!<font inherit/​inherit;;#​cc7832;;​inherit>​null</​font>​) { 
 +   <​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​.stop()<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​} 
 +   ​Products product ​<font inherit/​inherit;;#​9876aa;;​inherit>​db</​font>​.daoAccess().fetchProductByProductId(sbprint)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(product ​== <font inherit/​inherit;;#​cc7832;;​inherit>​null</​font>​){ 
 +   ​Toast.<​font inherit/​inherit;;​inherit;;​inherit>​makeText</​font>​(MainActivity.<​font inherit/​inherit;;#​cc7832;;​inherit>​this,</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​Ne postoji proizvod s ID: "</​font>​+ sbprint +<font inherit/​inherit;;#​6a8759;;​inherit>"​ u bazi proizvoda!"</​font><​font inherit/​inherit;;#​cc7832;;​inherit>,</​font>​Toast.<​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​LENGTH_SHORT</​font>​).show()<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​808080;;​inherit>//​ mPlayer ​MediaPlayer.create(MainActivity.this,​ R.raw.error_sound);</​font><​font inherit/​inherit;;#​808080;;​inherit>//​ mPlayer.start();</​font><​font inherit/​inherit;;#​808080;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​MediaPlayer.<​font inherit/​inherit;;​inherit;;​inherit>​create</​font>​(MainActivity.<​font inherit/​inherit;;#​cc7832;;​inherit>​this,</​font>​R.raw.<​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​nemaubazi</​font>​)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​.start()<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productNameTextView</​font>​.setText(<​font inherit/​inherit;;#​6a8759;;​inherit>"​Skeniraj sljedeći proizvod..."</​font>​)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productPriceTextView</​font>​.setText(<​font inherit/​inherit;;#​6a8759;;​inherit>""</​font>​)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​} <font inherit/​inherit;;#​cc7832;;​inherit>​else</​font>​{ 
 +   <​font inherit/​inherit;;#​9876aa;;​inherit>​productNameTextView</​font>​.setText(product.getProductName())<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productPriceTextView</​font>​.setText(product.getProductPrice())<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​String id product.getProductId()<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​int</​font>​res = MainActivity.<​font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.getResources().getIdentifier(<​font inherit/​inherit;;#​6a8759;;​inherit>"​t"</​font>​+id<​font inherit/​inherit;;#​cc7832;;​inherit>,</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​raw"</​font><​font inherit/​inherit;;#​cc7832;;​inherit>,</​font>​MainActivity.<​font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.getPackageName())<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(res != <font inherit/​inherit;;#​6897bb;;​inherit>​0</​font>​) { 
 +   <​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​= MediaPlayer.<​font inherit/​inherit;;​inherit;;​inherit>​create</​font>​(MainActivity.<​font inherit/​inherit;;#​cc7832;;​inherit>​this,</​font>​res)<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​.start()<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​} 
 +   } 
 +                } 
 +                <font inherit/​inherit;;#​cc7832;;​inherit>​break;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​} 
 +    }<font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​}<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font></​code>​
  
  
2018/karlo_siladi/projektni_zadatak.txt · Zadnja izmjena: 2023/06/19 18:11 (vanjsko uređivanje)