Permalänk
Medlem

nummerpresentatör

EDIT
------------------------------------------------
okej, har fått det att funka nu...

lade upp en liten sida på http://www.it.kth.se/~it02_asj
ifall nån är intresserad!
//andy

-------------------------------------------------
Hej!

Är det nån som har byggt en såndär nummerpresentatör till parallellporten, ritningar har förekommit här tidigare bla (den enklaste kretsen med mt8870, ett par motstånd och kondensatorer bla).

Jag har byggt en, men den funkar inte. Reagerar helt enkelt inte, mt8870's portar 15-11 ändras helt enkelt inte. Dessutom verkar StD (pinne 15)vara hög jämt.

Är lite osäker på motstånden, har hittat ritningar med olika värden angivna samt att värden högst får skilja +-1%.

Är det nån som har en sån fungerande nummerpresentatör och vilka värden etc.
Vore snällt om kunde droppa ett mejl eller mess här...

/Andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

Jag har också byggt en sån.

Fick den aldrig att fungera

Visa signatur

DELL Inspiron 8600 1.7 GHz Centrino - 768 MB - 40 GB - DVD+RW
SonyEricsson K750i
Volvo 855 T5-R

Permalänk
Medlem

okej, hur långt kom du i testandet? bara provade ett program, funkade inte, gav upp, eller?
/a

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

Hmm inte problem med Biosinställningarna för paralellpoerten/portIO som brukar vara standardfel med parallelporten

Visa signatur

"Don't you worry, i'm a gamm-M.U.C.K.:ad signalmekaniker."
AMD Athlon 64 3200+ 1024mb ram PC3200, GF6800GT 128Mb, ~800Gb (Dumma D70 som slukar HDD >.<) Hdd SB Audigy2 platinum
Atmel ATmega8515 @ 4mhz, 5v core. Har full koll på 8 LED iallafall

Permalänk
Medlem

hmm..tror inte det... kan läsa och skriva ok med outb och inb i c. har andra byggen för parallellport som funkar. tack ändå! inga andra som har byggt denna eller känner sig sporrade nu
har högtflygande planer för mjukvara till denna...
/andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

har nummerpresentatör på en av våra telefoner här hemma men för att få det att funka så måste man beställa de hos tele leverantören,

Permalänk
Medlem

funkar nu...

okej, har fått det att funka nu...

lade upp en liten sida på http://www.it.kth.se/~it02_asj
ifall nån är intresserad!
//andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

Med den hårdvaran är det fortfarande ett krav på att man måsste ha tjänsten aktiverad hos leverantören?

Visa signatur

Besök JimNelin.com eller Jim Nelin på LinkedIn

Permalänk
Medlem

JApp, man måste aktivera tjänsten nummerpresentation.

Visa signatur

"Don't you worry, i'm a gamm-M.U.C.K.:ad signalmekaniker."
AMD Athlon 64 3200+ 1024mb ram PC3200, GF6800GT 128Mb, ~800Gb (Dumma D70 som slukar HDD >.<) Hdd SB Audigy2 platinum
Atmel ATmega8515 @ 4mhz, 5v core. Har full koll på 8 LED iallafall

Permalänk
Medlem

Får du outb att funka under win nt och senare? hur isånna fall?

Visa signatur

http://p1r.se/dator/ <--Byggen, Guider
http://p1r.se <-- Hemsida

Permalänk
Medlem

Hittade några små fel i komponentlistan.

Linjetransformator har art.nr 56-670-84
100k metallfilmsmotstånd har art.nr 60-745-61

Visa signatur

DELL Inspiron 8600 1.7 GHz Centrino - 768 MB - 40 GB - DVD+RW
SonyEricsson K750i
Volvo 855 T5-R

Permalänk
Medlem

några småfel i artnr,tack för det...
så går det när man inte c-c c-v:ar

jo, man måste nog beställa tjänsten nummerpresentation

appropå, åtkomst till parallellporten i nyare windows (xp&2000) så tillåter inte
operativsystem direkt access till dessa. det gör att man inte, lika enkelt, kan
bara läsa av den eller skriva till den med någon funktion såsom outb eller inb.
man måste ha en drivrutin eller någon åtkomstmetod för att få det att funka. vet inte
så mycket om det eftersom jag inte har kollat på det, men det finns gott om 3:e parts funktioner (dll:er) för detta ändamål. (man måste få in koden i kärnan, eller? rätta mig om jag har fel). trevlig helg

//andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

Jo precis med port95nt så funkar det.
Men för vilket win os kör du?

Visa signatur

http://p1r.se/dator/ <--Byggen, Guider
http://p1r.se <-- Hemsida

Permalänk
Medlem

p1r: näe, hårdvaran kör på linux som sedan multicastar ut till klienter på nätverket
som lagrar i databas alt. poppar upp nummret på skrämen.
/andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

Så det funkar inte till Win XP?

Visa signatur

Jag är jag och du är du?

Permalänk
Medlem

givetvis funkar hårdvaran till xp&2000
men jag tänker då inte skriva några hårdvaruprogram till windows.
(inte för att det är svårt eller krångligt, jag bara inte använder windows)
/andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

Tjena på er!

Jag har tidigare byggt en nummerpresentatör till datorn, men fick den aldrig att fungera som jag ville och nu när jag hittade Andys konstruktion som såg lite säkrare ut med en bla en linjetransformator mellan telenätet och kretsen så blev jag lite sugen på att ge mig på projektet igen och göra ett nytt försök.

Målsättningen är att ha hårdvaran kopplad till en serverdator som står på dygnet runt och när ett inkommande telefonsamtal kommer så skickas ett meddelande ut till husets alla datorer där det står nummer och vem det är som ringer (självklart måste man ju programmera in detta först i en adressbok)

Till skillnad från Andy så använder jag mig av Windows XP och programmeringen sker i det "enkla" programmet Visual Basic som de flesta nog har stött på någon gång.

Jag började med att beställa alla komponenterna ifrån ELFA och detta gick enkelt och smidigt tack vare Andys inköpslista.

http://numpres.minserver.net/01.jpg

Jag rotatde fram en liten bit kretskort och började fundera lite över komponenternas placering och därefter var det bara att fatta lödpennan och löda ihop det hela och såhär blev resultatet:

http://numpres.minserver.net/02.jpg
http://numpres.minserver.net/03.jpg

Efter lite provmätningar monterades kretsen i sin sockel och hårdvaran kopplades in till datorn.

VB startades och efter lite knapptryckningar på telefonen så dök det upp lite siffror i programmet, trevligt det visade sig att hårdvaran fungerade!

Nu tog jag kontakt med Andy för att få lite tips angående utläsningen av siffror/bokstäver/tecken ifrån hårdvaran och han var mycket hjälpsam och informativ. Mina kunskaper av bitar mm är lite begränsade, så koden skulle nog gå att optimera något, men det funkar iaf

Skapa ett nytt projekt i VB, lägg in en timer och sätt Interval=40
infoga sedan nedanstående kod:

Option Explicit

'Definierar skrivarportens tre linjer
Dim DataLinje As Integer
Dim StatusLinje As Integer
Dim KontrollLinje As Integer

'Håller decimal data läst ifrån StatusLinjen
Dim InData As Byte

'Håller decimal data läst ifrån Statuslinjen vid förra rutinen
Dim Tidigare As Byte

'Håller Q1-Q4 i decimal form
Dim QData As Byte

'Håller de siffror/bokstäver/tecken som hämtats in mha QData och tabellen
Dim Nummer As String

'Håller tabellen som beskriver alla siffror/bokstäver/tecken som kan förekomma
Dim nummerdata(15) As String

'Inp and Out declarations for direct port I/O
'in 32-bit Visual Basic 4+ programs.
Private Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal Portadress As Integer) As Integer
Private Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal Portadress As Integer, ByVal Value As Integer)

Private Sub Form_Load()
'Adresserar skrivarportens tre linjer till LPT 1
DataLinje = 888 'basadress+0 eller &H378 i hex
StatusLinje = 889 'basadress+1 eller &H379 i hex
KontrollLinje = 890 'basadress+2 eller &H37A i hex

'Spänningsmatar kretsen igenom att dra pin 2+3+4 höga (binär 1+2+4=7)
'alla andra datapin är låga
Out DataLinje, 7

'Kontrollinjen används inte i detta projekt, men vi kan lika gärna sätta alla dessa
'pinnar låga (de flesta på kontrollinjen är inverterade, därav värdet 203)
Out KontrollLinje, 203

'Ger fönstret en rubrik och sätter mått så att rubriken får plats
Form1.Caption = "Här kommer siffor/bokstäver/tecken om allt fungerar som det ska"
Form1.Width = 8000
Form1.Height = 1000

'Tabellen som beskriver alla siffror/bokstäver/tecken som kan förekomma
nummerdata(0) = "D"
nummerdata(1) = "1"
nummerdata(2) = "2"
nummerdata(3) = "3"
nummerdata(4) = "4"
nummerdata(5) = "5"
nummerdata(6) = "6"
nummerdata(7) = "7"
nummerdata(8) = "8"
nummerdata(9) = "9"
nummerdata(10) = "0"
nummerdata(11) = "*"
nummerdata(12) = "#"
nummerdata(13) = "A"
nummerdata(14) = "B"
nummerdata(15) = "C"
End Sub

Private Sub Timer1_Timer()

'Läser data ifrån statuslinjen
InData = Inp(StatusLinje)

'Om datan är oförändrad mot tidigare, återgå till att vänta.
'Skulle vi inte ha med denna rad skulle rutinen nedan köras varje gång, även om
'datan på statuslinjen vore oförändrad, och det vore ju onödigt + att det skulle ta
'onödigt med CPU
If InData = Tidigare Then Exit Sub

'Om nu datan skulle vara förändrad mot tidigare så fortsätter vi i rutinen nedan

'Nollställer variabeln QData som motsvarar Q1-Q4 i decimal form
QData = 0

'Kontrollerar pin 13 (bitvärde 16) som är kopplat till StD
'Är inte StD hög så går vi till slutet på rutinen, skulle vi inte ha med denna rad
'så skulle tex en siffra/bokstav/tecken kunna läsas av flera gånger trots att den
'igentligen bara förekom en gång.
'
'Denna hindrar också att någon skräpdata tas emot första gången rutinen körs och
'inget har hunnit hända än.
If Not InData And 16 Then GoTo slut

'Här nedan kontrollerar vi de fyra utgångarna ifrån MT8870 (Q1-Q4) och omvandlar
'det binära värdet som vi får in till ett värde i decimal form som vi senare kan
'använda oss av för att få reda på vilken siffra/bokstav/tecken som har tagits emot
'genom att jämföra det decimala talet med tabellen.

'Bitvärde: 1 2 4 8 16 32 64 128
'Pin LPT: X X X 8 13 12 10 11
'MT8870: X X X Q3 StD Q2 Q1 Q4

'Kontrollerar pin 10 (bitvärde 64) som är kopplat till Q1
If InData And 64 Then QData = QData + 1

'Kontrollerar pin 12 (bitvärde 32) som är kopplat till Q2
If InData And 32 Then QData = QData + 2

'Kontrollerar pin 15 (bitvärde 8) som är kopplat till Q3
If InData And 8 Then QData = QData + 4

'Kontrollerar pin 11 (bitvärde 128) som är kopplat till Q4
If Not InData And 128 Then QData = QData + 8

'Nu är Q1-Q4 kontrollerade och vi har fått ut ett decimalt tal, vi använder detta
'talet mot tabellen nummerdata för att få fram vilken siffra/bokstav/tecken det var
'som togs emot och därefter lägger vi till den siffran i variabeln nummer.
Nummer = Nummer + nummerdata(QData)

'Visar numret i Statusbaren
Form1.Caption = Nummer

slut:
'Sparar läst data ifrån StatusLinjen för att kunna hålla reda på om den ändrats
'eller ej nästa gång timern körs.
Tidigare = InData
End Sub

Direktåtkomsten till skrivarporten är som sagt lite begränsad, därför måste en DLL som heter inpout32.dll läggas i c:\windows\system32 för att projektet ska fungera, denna fil finns att ladda ned lite här och var på nätet (kommer inte ihåg någon adress just nu)

Programmet är mycket enkelt och avsett som en grund att bygga vidare på, alla inkommande / utgående data presenteras i statusbaren för att man ska se att hårdvaran fungerar som den ska.

Detta kanske gav XP användarna lite mera kött på benen angående nummerpresentatör till datorn. Jag slänger kanske upp en helt egen sida med lite mera programexempel mm vid senare tillfälle.

Permalänk
Medlem

Någon som provat med den billigare linjetrafon CWC9000 istället för CWC9004? Det skiljer nästan 50 kr i pris så ifall den billigare funkar vore det fint.

Den har lite högre dämpning enligt databladet, men det kanske inte påverkar detekteringen av DTMF-signalerna märkvärt.

Visa signatur

The only reason to be in a fight is to win, always cheat.

Permalänk
Medlem

ix, vet inte... kolla spec. för mt8870 för att se vad den behöver för dektektion.

jsson, lycka till med programmerandet! är dock lite tveksam till valet av visual basic och din approach. om datorn är under lite load är det lätt hänt att någon siffra missas. dessutom verkar du läsa av porten varje bit för sig, vilket är helt onödigt och bara försämrar prestanda. skulle verkligen rekommendera nått i stil med http://www.it.kth.se/~it02_asj/server/dtmf.c. Vet dock att koden är svårläst... förlåt
/andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Medlem

jag undrar om det är någon som håller på att skriva ett program till denna som går att köras i windows.. som fungerar på liknande sätt som den andreiij har skrivit... har inget nätverk till min Linus.. så blir så jobbigt..

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av andreiij

jsson, lycka till med programmerandet! är dock lite tveksam till valet av visual basic och din approach. om datorn är under lite load är det lätt hänt att någon siffra missas. dessutom verkar du läsa av porten varje bit för sig, vilket är helt onödigt och bara försämrar prestanda. skulle verkligen rekommendera nått i stil med http://www.it.kth.se/~it02_asj/server/dtmf.c. Vet dock att koden är svårläst... förlåt
/andy [/B]

Visual Basic är den plattformen som jag kan, så varför inte utnyttja den? Visst finns det andra programmeringsspråk som är effektivare och kraftfullare, men till denna applikation verkar det fungera bra vad jag har sett hitintills iaf!

Jag skrev att jag inte var så insatt i bitar, och lyckades inte riktigt göra omvanlingen "direkt", sedan låg ju Std pinnen mitt i alltihopa så det krånglade till det lite och därav valde jag att läsa av varje bit för sig (själva porten läses ju bara av en gång per event) och därefter göra omvanlingen, vet att det inte är helt optimalt, funderar på att posta koden på ett VB forum för att få den lite mera effektiv.

Permalänk

Det vore ju tufft om man kunde då upp vem som ringer också... inte bara numret.

Permalänk
Medlem

Ville bara tipsa om en tråd som diskuterar nummeruppslag mot privatpersoner.eniro.se kanske kan ge er lite ideer.

Permalänk
Medlem

Borde ju inte vara så svårt att knåpa ihop ett program som kör nummret mot eniro.se och kollar vem nummret tillhör? Hur mycket blev totalkostnaden för alla komponenter?

Permalänk
Medlem

Detta är riktigt ballt...

Fick totalkostnad på 180:- inkl moms, då har jag inte räknat in kabel, kontakter, kretskort.

Lite utveckling på detta så går det ju att få ännu ballare. Som någon nämde kanske det går att få in följande grejer i databasen:
Samtalslängd, namn hämtat från ex. eniro, etc

Keep up the good work andreiij!

Permalänk
Medlem

sorry jsson, var inte meningen att trampa någon på tårna... (hur går det?)
om porten bara läses av en gång per siffra så läste jag din kod fel sist jag kollade på den och
då är den inte så illa som jag (lite elakt) antydde...

jodå, den slår upp i hitta.se vem som ringer...

efter tentorna å så tänkte jag arbeta om koden helt.
bla. skriva en interrupt-styrd-modul (linux).
då måste ritningen göras om eftersom jag var snål (pga de binära operationerna)
nog att byta pin 13 och 10 (på parallellporten) och
parallellportens interrupt pinne är no 10 och den måste få mt8870's pinne 15, men det är ju bara två lödningar
som måste göras om (något att tänka på för er som håller på å bygger).
nån som vill vara med å koda detta?
nån som har en exekverbara windows-version av servern än som jag
kan länka min sida (om jag får
/andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk
Citat:

OBSERVERA! Det är olagligt att koppla in olicensierad utrustning till allmänna telenätet!

Så det är alltså olagligt att använda en sån där?

Permalänk
Medlem

typ, ja..

Visa signatur

jo..

Permalänk
Medlem

ja det väl olagligt att koppla på nått som inte är licensierat. men den följer telias regler
för hur det som kopplas in ska se ut... inte för höga strömuttag, ej direkt inkopplat på nätet etc.

tänkte på en ny del som skickar sms vid inkommande samtal; nått som man kan sätta på när man inte är hemma t.ex.
nån som vet någon bra gratis site där man får typ 5 gratis sms per dag? sånna växer inte på träd någotmer direkt... annars finns ju www.frog2frog.com som tar 9 öre för sms, det är väl okej... blir ju över 1000 sms för 100 kr, vilket borde räcka ett år eller så..

/andy

Visa signatur

And because it was not possible to solve this equation in any ways, I worked to reduce the solution to an approximation.

| AMD 64 X2 4400+ Toledo @ 330x8 | Tuniq Tower 120 | 2048 Corsair 3500LLPRO Dual @ 330*5/6 3-3-3-6 | Antex P180 | Tagan Easyconn 480W | XFXorce 7600 GT XXX

Permalänk

Hade också problem med att få dessa konstruktioner att fungera, dessutom känns det inte så kul att man egentligen inte får koppla in dem... så jag köpte en begagnad helt vanlig presentatör för 25:- på Tradera. Sedan försökte jag koppla utgången på dess MT8870-krets till datorn, men fick massa problem, antagligen beroende på olika jordnivåer. I den senaste varianten har jag använt optokopplare, men tyvärr har projektet blivit liggande och inte testats. Undrar om det egentligen är lagligt att koppla in en sådan variant?

Visa signatur