رفتن به مطلب
  • 0

ارتباط بین سخت افزار و اندروید و مطابقتش با متغیر ها


dr.mohammad

سوال

با سلام وعرض خسته نبا شد

من هم با اندروید کار می کنم و هم با اردینو که سخت افزار است و در صدد این شدم که درپروژه ای از هردو استفاده کنم ودر سطح ابتدایی هستم و به مشکل در اندروید برخوردم

من با استفاده از سخت افزار قد افراد را اندازه گیری کرده و عددش را به اندروید ارسال می کنم در ابتدای امر فط می خواستم ارسال انجام شود و عدد را در اندروید نمایش دهد که موفقم شدم ولی برای پیشرفته شدن پروژه ایده های دیگری دادم که مشکل من است وبلد نیستم هیچ کدامشان را انجام دهم

من می خواهم که در برنامه قابلیتی باشد ه یک سرساز افراد را برای اندروی معرفی کنم برای مثال:

قد حسن125 است و میخواهم زمانی که داده 125 از سخت افزار دریافت می شود دستگاه نام حسن را نشان دهد

و میخواهم این معرفی افراد محدود نباشد ودر کد نویسی نباشد یعنی متغیر باشد و هر چند نفر را که می خواهیم بتوانیم معرفی کنیم وصفحه ای می خواهم که افراد معرفی شده را نمایش  دهد اما نمی تونام این کار را انجام دهم اگر می شود راهنمایی کنید اگر در قالب فیلم بتوانید بگویید خیلی ممنون میشم چون در خواست هایم زیاد است

امیدوارم متوجه شده باشید ببخشید سرتان درد آوردم و با توضیحات کامل گفتم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ارسال‌های توصیه شده

سلام

دوستم فک نکنم ریپورت شده باشید

ببینید، این یه ذره اشتباهه که شما کد میخوای

یکم باید تلاش کنی کدت رو بنویسی خودت

من مشکلی با کد دادن ندارم، اما خودت برات سخت میشه، یه ذره خلاقیت و تفکر بیشتری روی بحث اجام بدی، اصلا نیاز نمیشه پست بزنی

 

متوجه توضیح شما نشدم

شما میگید اطلاعات رو ذخیره کردید

بعد وقتی از اردینو چیزی میاد

چکش کنه ببینه تو بانک هست و نمایشش بده

بعد توی یه اکتیویتی دیگه سیوش کنه؟

خوب این که سیو هست الان

 

اما برای نمایش تمام افرادی که قدشون برابر عدد دریافت شده از اردینو هست 

dim sql as sql
dim cur as cursor

cur = sql.exequery("SELECT * FROM tbl_name WHERE height = '&t&'")
for i = 0 to cur.rowCount - 1

cur.position = i
List1.addSinleLine2(cur.getstring("name") , cur.getint("id"))

next

یه تست بکنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

درک می کنم چون بد توضیح دادم

من در بانک خودم ده نفر انسان با قد و اسمشون در اختیار دارم اما من هدفم از این برنامه تشخیص هویت که به جای تشخیص چهره از تشخیص قد استفده کرد بع متغیر تی من همیشه در حال تغییر و اعداد مختلفی نشون میده حالا اگر شخصی به نام حسن که قدش ۲۵هستش بره زیر دستگاه دستگاه عددو با بانک مطابقت میده و اسم حسن رو میگه که در زیر پستگاه قرار گرفته لیست ویو دوم اسم افرادی است که در زیر دستگاه قرار گرفتند نه صرفا فقط کل افراد بعد من می خواستم اگر مثلا حسن دوبار رفت زیر دستگاه لیست ویو دوبار حسن رو نشون بده و اگر میشد که ساعت قرار گرفتنم جلوش می نوشت عالی میشد اون رو هم اگه زحمتشو بکشید ممنون میشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

خواهش میکنم دوست عزیزم

ببین

شما مثلا مقدار قد طرف رو در متغیری از نوع integer ذخیره کردی

مثال میزنم

dim ghadde_taraf as int

خوب

حالا شما یه دکمه نیاز داری که وقتی روش کلیک شد، اطلاعات رو در بانک ذخیره کنه

این از این

حالا برای بهتر شدن کارتون میتونید بیاید و اول چک کنید که آیا قبلا قدی ثبت شده تو برنامه؟

اگه ثبت شده بود، یه لایه (که توش دو تا ادیت تکست هست (برای نام و نام خانوادگی) و یک دکمه(برای ثبت) و یک لیست ویو(برای نمایش دادن قد های ثبت شده قبلی) مثلا save_listView و لود کنید که هم اطلاعات نمایش میده

هم میتونید ثبت کنید

 

اگر هم چیزی ذخیره نشده بود، یه لایه به اسم justSave (که فقط 2 تا ادیت تکست برای گرفتن نام و نام خانوادگی و یک دکمه برای ثبت داره ) رو لود میکنید

ساختار جدولتون زیاد پیچیده نیست

(یک ستون به اسم id از نوع اینتیجر و کلید دار، یک ستون از نوع text به اسم fname، یک ستون از نوع text به اسم lname، و یک ستون به اسم height از نوع Integer یا تکست و اسم جدول هم tbl_height)

خوب

(با اردینو کار نکردم اما وقتی دیتابی ارسال میشه یا وقتی برنامه باز میشه، کد زیر باید چک کنه که ایا قبلا چیزی ثبت شده یا نه)

اول که مثل همیشه

	If File.Exists(File.DirInternal,"dbname.db") = False Then
		File.Copy(File.DirAssets,"dbname.db",File.DirInternal,"dbname.db")
	End If
	If sql.IsInitialized = False Then
		sql.Initialize(File.DirInternal,"dbname.db",True)
	End If

بعد میام چک میکنم که ایا چیزی توی دیتابیس ذخیره شده یا نه(قسمت پایین که برات توضیح دادم اختیاریه و باعث میشه کارت منطقی تر و زیبا تر بشه)

اگر نه که لایه ای که بالا توضیح دادم رو لود میکنم

اگه بود هم باز لایه ای که توضیح دادم رو لود میکنم و با این تفاوت که مقدار های ذخیره شده هم توی لیست ویو ، نمایش میدم :)

cur = sql.ExecQuery("SELECT * FROM tbl_height")
	hasData = cur.RowCount
	If hasData = 0 Then ' yani hich chizi too bank nist-> esme laye ye daraye edit text va button'
		
		Activity.LoadLayout("justSave")
		
	Else 
		
		Activity.LoadLayout("save_listView")' daraye meghdar '
		'namayeshe meghdar haye mojood dar bank ke dar soorat lozoom , entekhab shavand'
		cur = sql.ExecQuery("SELECT * FROM tbl_height")
		For i = 0 To cur.RowCount - 1
			cur.Position = i
			listView1.AddSingleLine2(cur.GetString("fname") & "--" & cur.GetString("lname") & "--" & cur.GetInt("height"),cur.GetInt("id")
		Next
	End If

این قسمت تمومه

(از حالا به بعد مربطو به سوال شماست)

توی رویداد کلیک اون دکمه ی ذخیره (که توی هر دو لایه هست ) کد های زیر رو بنویس

Sub save_btn_Click
	
	sql.ExecNonQuery("INSERT INTO tbl_height (id,fname,lname,height) VALUES (null,'"&edittext_fname.Text&"','"&edittext_lname.Text&"','"&ghadde_taraf&"')")
	ToastMessageShow("save successFully",False)
	
End Sub

سعی کردم مطلب رو خوب برات باز کنم

اگر مشکلی داشتی، بپرس

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب 

ببین

شما وقتی یه نفر رو تو دیتابیس داری

یعنی قبلا دستگاه شناخته اونو دیگه

یا نه

شما از قبل اودی یه تعداد وارد کردی

حالا میخوای ببینی مثلا اگه قد 25 اومد

شهاب رو نشون داد

چکش کنی در کل

 

خوب

شما برای اینکه ببینی این شخصی که الان رد شد، هستش یا نه

sql.exequery("SELECT * FROM tbl_name WHERE height = '&height&'")

for i = 0 to cur.RowCount - 1
cur.position = i
list1.addSingleLine2(cur.getstring("name"),cur.getint("id"))
next

توی رویداد کلیک بیاین و به متغیری که قبلا در پراسس گلوبالز تعریف کردید

dim meghdar as string
click list view shoma
meghdar = value
startActivity(matn)

توی اون اکتیوتی هم به شکل زیر

اطلاعاتش رو بگیر

main.cur = main.sql("SELECT * FROM tbl_name WHERE id = "&main.meghdar)
cur.position = 0
msgbox(cur.getstring("name") & cur.getstring("fname"))

حالا اینکه اگر کسی یه بار شناسایی شد و خواستید بره تو لیست شناسایی شده ها

بیا و یه ستون به دیتابیست اضافه کن به اسم check

مقدارشون رو بذار 0

بعد اگه کسی رو شناسایی کردی، بیا و به شکل زیر مقدارش رو عوض کن

sql.exenonquery("UPDATE tbl_name SET check = '1' WHERE height = '"&height&"'")

بعد هم برای اینکه ببینید کیا قبلا شناسایی شدن

cur = sql.exequery("SELECT * FROM tbl WHERE check = 1")
for i = 0 to cur.rowCount - 1 
cur.position = i
list1.addSingleLine2(cur.getstring("name") , cur.getint("id"))

next

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنونم چیز هایی دستگیرم شد ابتذا من میرم در دیتا بیس چند ستونه به نام هایی که گفتید می سازم

۱_اون ستون ld که گفتید دقیقا کار بردش چیه؟

۲_اون کد دوم که دادید برا فراخوانی دیتا بیسه در برنامه؟

ممنون میشم

در ضمن من کاری با اردینو ندارم چون اطلاعات رو دقیق دارم دریافت می کنم و در ار دینو مشکلی ندارم اطلاعات و می گیرم الان تقریبا دارم اون عددو سازماندهی می کنم اردینو را برای توضیحات کارم گفتم بهتر متوجه شوید

ممنونم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

قربانت، خدارو شکر که متوجه شدید نسبتا

1- ستون ای دی میشه گفت وجه تمای بین هر کدوم از ردیف های دیتابیستون هست

مثلا میگم، شاید بخواین برید و اطلاعات شهاب با قد 180 رو ببرید تو یه صفحه دیگه

خوب، 3 تا شهاب تو برنامه هست، 50 تا قد 180 اما این شهاب با این قد یه ای دی داره که مثلا مقدارش 22 هست :)

2- اون کد برای زیبایی و دقت کاره

من اومدم چک کردم که اگه هیچ قدی ثبت نشده، یه فرم ثبت خالی بیاره اما اگه قبلا قدی ثبت شده، علاوه بر فرم ثبت، یه لیست ویو هم بیاره که قدای ثبت شده رو نشون بدن 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

http://s3.picofile.com/file/8225974084/ghad.zip.html

این لینک برنامست

ممنون میشم از کمکتون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب

این سورستون یه ایراد خیلی خیلی کوچیک داره

اونم اینه که اصن دیتابیس نساختید همین فقط :D :D :gol:

بعد یه چیزی رو به من بگید

شما قدی که میگیرید از اردینو رو کجا میریزید

توی کدوم متغیر؟

 

اینم دیتابیس 

براتون ساختم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دیتا بیسو من ساخته بودم و یه سوالم داشتم که یادم رفت بپرسم که آیا این دیتا بیسو باید تو فایل برنامه بریزم ؟

عدد حاصل از اردینو رو هم در متغیر t میریزم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اره دوستم

دیتابیس رو باید بریزید توی پوشه files در محل نصب برنامه

 

من متغیری به اسم t پیدا نکردم

متغیر هایی که تعریف کردید اینا هستن

Sub Process_Globals
	Dim s1 As Serial
	Dim cur As Cursor
	Dim SQL As SQL
End Sub

Sub Globals

	Private btnConnect As Button
	Private btnBluetoothOn As Button
	Private btnDisconnect As Button
	
	Private lblShowData As Label
	
	
	
	
	Dim tr As TextReader
	Dim tw As TextWriter
	Dim turn_bluetooth As Toggle
	
	
	Dim thread1 As Thread
	Dim check As Boolean : check = True
	Dim verify As Boolean : verify = False
	Dim temp As Int
	
	
	Private btnTimerOn As Button
	Private Label2 As Label
    
	
	Private save As Button
End Sub

بگید کدومه تا من راهنماییتون کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست من من تعریف نکردم این کدو خودم از یه دوست دیگه گرفتم خوم تعریف کردم tرا ولی ارور میداد پاکش کردم t در اخر اکتیوتی اول میتونی پیداش کنید حتی بدون تعریف هم که من امتحان کردم عددو نشان می داد

 

--------------------------------------------------------------------------

 

یه چیزی الان دیدم تعجب کردم اون temp که من تعریف کردم یادم نمی یاد جایی ازش استفاده کرده باشم خودتنونم یه چک کنید شاید همون t باشه که اشتباه نوشته شده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اره فک کنم همون Temp باشه

امکان تست سورستون برای من وجود نداره

من فرض کردم متغیر تمپ اون مقدار هست

ریختشم توی یه متغیر به اسم ghad که توی پراسس گلوبالز تعریف شده

توی اکتیویتی بعدی هم ازش استفاده کردم

سورس رو پیوست میکنم، یه تست بزنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون

چرا نتونستید تست کنید؟

الان تموم برنامه تکمیل شد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

والا از توضیحات شما اینو فهمیدم که مقدار رو از رادینو توی اکتیویتی اولی میگیرید

میخیواید توی اکتیویتی دومی ذخیره اش کنید

ان کار رو احتمالا انجام میده براتون

اگر مقدار قد از اردینو توی متغیر temp ریخته بشه، 100 درصد توی اکتیویتی بعدی ذخیره میشه کرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برنامه که مشکلی نداشت لیست ویو هم زخیره میکنه ولی اولین بار که وارد شدم برای زدن اسم اون دو تا لایه بود که گفتید بسازم جفتشو باهم میاره ولی دفعه دوم نیوورد اونی که بدون لیست ویو بود بعد من اسمو زم زخیره نکرد از برنامه رفتم بیرون آمدم داخل دیدم زخیره کرده الانم دستگاه دستم نیست تو مدرسس فردا میرم مدرسه چکش می کنم ان شاءالله که درست باشه

ممنونم از زحماتت

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...