Quantcast
Channel: Programmering och digitalt skapande | SweClockers
Viewing all 6000 articles
Browse latest View live

App för att styra RGB LED-slingor via arduino?

$
0
0

Tja,

Vet inte riktigt om den passar bäst här eller i forumdelen för Egna Konstruktioner. Men, i alla fall. Skulle vilja dra upp lite LED-slingor i lägenheten, och har kikat på en del färdiga lösningar. Philips Hue föll bort p.g.a. priset. Resterande alternativ verkar skicka med en liten fjärrkontroll med 16 förprogrammerade färger, vilket inte är speciellt intressant av främst 2 anledningar. Att jag gärna vill kunna styra det via telefonen och att det känns lite dåligt att bara ha 16 färger tillgängliga av 16,7 miljoner.

Så, jag har funderat på att istället köpa en liten arduino och koppla slingor till den. Men har inte hittat speciellt mycket ang. hur man skickar signaler till en arudino via en app, räcker för min del om det går över WiFi.

Någon som har pillat med något liknande och har något tips om källor?

Edit: Alt. tips på billigare konkurrenter till Hue.


Adobe LiveCycle hjälp med redigering

$
0
0

Hej!
Jag ska tagga blanketter som är skapade i Adobe LiveCycle.
Aldrig använd programmet innan, så jag behöver lite hjälp :)

Vad jag vill uppå är att att lägga in en redigerbar tagg (ser ut typ <<namn>>) i en text field. Jag har lyckats med att få in taggen, men den skrivs in över när systemet skapar om blanketten.

Detta fungerar när man förbereder formulär via Adobe Acrobat DC, så det borde gå även i LiveCycle?

Just nu har jag testat att: Markera textfältet - under fliken Object har jag valt Value och skrivit taggen i Default:

Detta lägger in taggen på rätt plats och den går att ändra, men när man klicka i textfältet måste man först sudda taggen tecken för tecken och som sagt, systemet ersätter inte taggen.

Stort(!) tack!

Kritik på mitt första tillägg för Google Chrome

$
0
0

Hej!

Trots tjock i halsen, orkade jag att fixa det sista för mitt allra första tillägg till Google Chrome, och publicera den till Chrome Web Store. Nu vill jag veta vad ni tycker om tillägget. Har jag missat något? Fungerar den som den ska?

Uppdatering
Till er som är lata och inte vill klicka på länken för att läsa om och titta på tillägget: tillägget ersätter startsidan när man startar webbläsaren, och när man väljer att öppna en ny, tom flik.

vad är det för fel?

$
0
0

hej
jag har gjort en hemsida inte så vacker men det beror på att den finns på arduino och allt blir lite knöligare på den. där bli allt i allt i en fil. det som har slutat funk är att den inte uppdatera sidan med värden från xml filen som kommer från arduino. jag gjorde en liten snyggare lösning på hur den skulle färgsätta knappar innan dess gick det bra. jag har satt // framför mina förnedringar för att få till backa texten till som det var innan men det blev ingen ändring på resultatet utan den vägrar att uppdatera sidan
kan någon ser vad som har hänt?
här kommer korden

<!DOCTYPE html>

<html>

<head>

<title>Värmesytem på Angegatan 6</title>

<style>

.IO_box1 {

position: absolute;
top: 0px;
left: 0px;;

margin: 0 20px 20px 0;

border: none;

padding: 0 5px 0 5px;

width:800px;
height: 60px;
}

.IO_box2 {

position: absolute;
top: 100px;
left: 100px;;

margin: 0 10px 20px 0;

border: 1px solid blue;

padding: 0 5px 0 5px;

width: 120px;

height: 250px;
}

.IO_box3 {

position: absolute;
top: 100px;
left: 450px;;

margin: 0 20px 20px 0;

border: 1px solid blue;

padding: 0 5px 0 5 px;

width: 120px;

height: 250px;
}

.IO_box4 {

position: relative;
top: 10px;
left: 38px;;

border: 0px solid blue;

width: 40px;

height: 30px;
}
.IO_box5 {

position: relative;
top: 40px;
left: 38px;;

border: 0px solid blue;

width: 40px;

height: 30px;
}
.IO_box6 {

position: rela]tive;
top: 100px;
left: 38px;;

border: 0px solid blue;

width: 40px;

height: 30px;
}
.IO_box7 {

position: absolute;
top: 35px;
left: 20px;;
padding: 0 5px 0 5px;
margin: 0 0px 0px 0;
border: 1px solid blue;
width: 130px;
height: 60px;
}

.IO_box8 {

position: absolute;
top: 390px;
left: 100px;;

margin: 10px 20px 20px 0;

border: 1px solid blue;

padding: 0 5px 0 5px;

width:600px;
height: 200px;
}

.IO_box9 {

position: absolute;
top: 150px;
left: 290px;;
border: 1px solid blue;
padding: 0 5px 0 5px;
width: 80px;
height: 110px;
}

.IO_box10 {

position: absolute;
top: 105px;
left: 170px;
padding: 0 5px 0 5px;
margin: 0 0px 0px 0;
border: 1px solid blue;

width:160px;
height: 60px;
}

.IO_box11 {

position: absolute;
top: 35px;
left: 170px;
padding: 0 5px 0 5px;

margin: 0 0px 0px 0;

border: 1px solid blue;

width:160px;
height: 60px;
}

.IO_box12 {

position: absolute;
top: 35px;
left: 370px;;

padding: 0 5px 0 5px;

margin: 0 20px 20px 0;

border: 1px solid blue;

width:180px;
height: 100px;
}

.IO_box13 {
position: absolute;
top: 20px;
left: 5px;;

border: 0px solid blue;

width: 80px;
height: 20px;
}

.IO_box14 {

position: absolute;
top: 25px;
left: 100px;;

border: 0px solid blue;

width:100px;
height: 20px;
}

.IO_box15 {

position: absolute;
top: 50px;
left: 5px;;

border: 0px solid blue;

width:80px;
height: 20px;
}

.IO_box16 {

position: absolute;
top: 55px;
left: 100px;;

border: 0px solid blue;

width:100px;
height: 20px;
}

.IO_box17 {

position: absolute;
top: 250px;
left: 600px;
border: 1px solid blue;

width: 110px;
height: 100px;
}

.IO_box18 {

position: absolute;
top: 300px;
left: 230px;;

border: 1px solid blue;

width: 50px;
height: 2px;
background-color: blue;
}

.IO_box19 {

position: absolute;
top: 120px;
left: 230px;;

border: 1px solid red;

width: 220px;
height: 2px;
background-color: red;
}

.IO_box20 {

position: absolute;
top: 340px;
left: 570px;;

border: 1px solid blue;

width: 30px;
height: 1px;
background-color: blue;
}

.IO_box21 {

position: absolute;
top: 260px;
left: 570px;;

border: 1px solid red;

width: 30px;
height: 1px;
background-color: red;
}

.IO_box22 {

position: absolute;
top: 230px;
left: 570px;;

border: 1px solid #de5c40;

width: 140px;
height: 1px;
background-color: #de5c40;
}

.IO_box23 {

position: absolute;
top: 360px;
left: 100px;;

border: 1px solid blue;

width:100px;
height: 30px;
}

.IO_box24 {

position: absolute;
top: 360px;
left: 210px;;

border: 1px solid blue;

width:100px;
height: 30px;
}

.IO_box25 {

position: absolute;
top: 360px;
left: 320px;;

border: 1px solid blue;

width:100px;
height: 30px;
}

.IO_box26 {

position: absolute;
top: 360px;
left: 600px;;

border: 1px solid blue;

width:100px;
height: 30px;
}

.IO_box27 {

position: absolute;
margin: 0 10px 20px 0;

padding: 0 5px 0 5px;

top: 197px;
left: 600px;;

border: 1px solid blue;

width:50px;
height: 30px;
}

.IO_box28 {

position: absolute;
margin: 0 10px 20px 0;

padding: 0 5px 0 5px;

top: 280px;
left: 280px;;

border: 1px solid blue;

width:40px;
height: 40px;
}

.IO_box29 {

position: absolute;
top: 300px;
left: 330px;;

border: 1px solid blue;

width: 120px;
height: 2px;
background-color: blue;
}

.IO_box30 {

position: absolute;
top: 290px;
left: 295px;;

border: 1px solid blue;

width: 20px;
height: 20px;
background-color: gray;
}

.IO_box31 {

position: absolute;
top: 290px;
left: 150px;;

border: 1px solid blue;

width: 20px;
height: 20px;
background-color: gray;
}

h1 {

font-size: 300%;

color: blue;

margin: 0 0 10px 0;
text-align:center;

}

h2 {

font-size: 100%;

color: #5734E6;

margin: 5px 0 5px 0;

text-align:center;
}

p, form, button {

font-size: 80%;

color: #252525;
text-align:center;

}

.small_text {

font-size: 100%;

text-align: center
}

</style>

<script>
strLED1 = "";
var light=0
function GetArduinoInputs()
{
nocache = "&nocache=" + Math.random() * 1000000;
var request = new XMLHttpRequest();

request.onreadystatechange = function()
{
if (this.readyState == 4) {
if (this.status == 200) {
if (this.responseXML != null) {
// extract XML data from XML file (containing switch states and analog value)
document.getElementById("temptankupp").innerHTML =
this.responseXML.getElementsByTagName('temptankupp')[0].childNodes[0].nodeValue;
document.getElementById("tillpanna").innerHTML =
this.responseXML.getElementsByTagName('tillpanna')[0].childNodes[0].nodeValue;
document.getElementById("temptankmitt").innerHTML =
this.responseXML.getElementsByTagName('temptankmitt')[0].childNodes[0].nodeValue;
document.getElementById("temppanan").innerHTML =
this.responseXML.getElementsByTagName('temppanan')[0].childNodes[0].nodeValue;
document.getElementById("temprokgas").innerHTML =
this.responseXML.getElementsByTagName('temprokgas')[0].childNodes[0].nodeValue;
document.getElementById("temptankner").innerHTML =
this.responseXML.getElementsByTagName('temptankner')[0].childNodes[0].nodeValue;
var spup = this.responseXML.getElementsByTagName('spup')[0].childNodes[0].nodeValue;
var sspan = this.responseXML.getElementsByTagName('sspan')[0].childNodes[0].nodeValue;
document.getElementById("PanTempGrensTill").innerHTML =
this.responseXML.getElementsByTagName('PanTempGrensTill')[0].childNodes[0].nodeValue;
document.getElementById("PanTempGrensfran").innerHTML =
this.responseXML.getElementsByTagName('PanTempGrensfran')[0].childNodes[0].nodeValue;
document.getElementById("soltak").innerHTML =
this.responseXML.getElementsByTagName('soltak')[0].childNodes[0].nodeValue;
document.getElementById("solin").innerHTML =
this.responseXML.getElementsByTagName('solin')[0].childNodes[0].nodeValue;
document.getElementById("solut").innerHTML =
this.responseXML.getElementsByTagName('solut')[0].childNodes[0].nodeValue;
document.getElementById("tid").innerHTML =
this.responseXML.getElementsByTagName('tid')[0].childNodes[0].nodeValue;
document.getElementById("dag").innerHTML =
this.responseXML.getElementsByTagName('dag')[0].childNodes[0].nodeValue;
document.getElementById("datum").innerHTML =
this.responseXML.getElementsByTagName('datum')[0].childNodes[0].nodeValue;
document.getElementById("rad").innerHTML =
this.responseXML.getElementsByTagName('rad')[0].childNodes[0].nodeValue;
document.getElementById("ute").innerHTML =
this.responseXML.getElementsByTagName('temputomhus')[0].childNodes[0].nodeValue;
var PumpDriftlage = this.responseXML.getElementsByTagName('PumpDriftlage')[0].childNodes[0].nodeValue;
var PanaDriftlage = this.responseXML.getElementsByTagName('PanaDriftlage')[0].childNodes[0].nodeValue;
var forinVerme = this.responseXML.getElementsByTagName('forinVerme')[0].childNodes[0].nodeValue;
document.getElementById("BPanTempGrensTill").innerHTML =
this.responseXML.getElementsByTagName('BPanTempGrensTill')[0].childNodes[0].nodeValue;
document.getElementById("BPanTempGrensfran").innerHTML =
this.responseXML.getElementsByTagName('BPanTempGrensfran')[0].childNodes[0].nodeValue;
var AnlagDriftlage = this.responseXML.getElementsByTagName('AnlagDriftlage')[0].childNodes[0].nodeValue;
var knap = document.getElementById("pknap");
if(spup == 0) {
knap.style.backgroundColor = "red";
} else {
knap.style.backgroundColor = "green";
}
var knap = document.getElementById("bknap");
if(sspan == 0) {
knap.style.backgroundColor = "red";
} else {
knap.style.backgroundColor = "green";
}
// var fknap1 = document.getElementById("pumpknapoff");
// var fknap2 = document.getElementById("pumpknapon");
// var fknap3 = document.getElementById("pumpknapauto");
// light= PumpDriftlage
// bytafarg(light)
// var fknap1 = document.getElementById("panaknapoff");
// var fknap2 = document.getElementById("panaknapon");
// var fknap3 = document.getElementById("panaknapauto");
// light= PanaDriftlage
// bytafarg(light) }
var knap = document.getElementById("forinknapon");
if(forinVerme == 1) {
knap.style.backgroundColor = "#ffff4d";
} else {
knap.style.backgroundColor = "#b3b3b3";
}
var knap = document.getElementById("forinknapoff");
if(forinVerme == 0) {
knap.style.backgroundColor = "#ffff4d";
} else {
knap.style.backgroundColor = "#b3b3b3";
} }
// var fknap1 = document.getElementById("AnlagDriftlageOff");
// var fknap2 = document.getElementById("AnlagDriftlageOn");
// var fknap3 = document.getElementById("AnlagDriftlageAuto");
// light= AnlagDriftlage
// bytafarg(light)
}
}
}
}
request.open("GET", "ajax_inputs" + strLED1 + nocache, true);
request.send(null);
setTimeout('GetArduinoInputs()', 1000);
strLED1 = "";

}
// function bytafarg(light)
// {
// if(light == 0) {
// fknap1.style.backgroundColor = "#ffff4d";
// fknap2.style.backgroundColor = "#b3b3b3";
// fknap3.style.backgroundColor = "#b3b3b3";
// }
// if(light == 1) {
// fknap1.style.backgroundColor = "#ffff4d";
// fknap2.style.backgroundColor = "#b3b3b3";
// fknap3.style.backgroundColor = "#b3b3b3";
// }
// if(light == 3) {
// fknap1.style.backgroundColor = "#ffff4d";
// fknap2.style.backgroundColor = "#b3b3b3";
//fknap3.style.backgroundColor = "#b3b3b3";
// }
// }
function GetButton1()
{
strLED1 = "&knap1";
}
function GetButton2()
{
strLED1 = "&knap2";
}
function GetButton3()
{
strLED1 = "&knap3";
}
function GetButton4()
{
strLED1 = "&knap4";
}
function GetButton5()
{
strLED1 = "&knap5";
}
function GetButton6()
{
strLED1 = "&knap6";
}
function GetButton7()
{
strLED1 = "&knap7";
}
function GetButton8()
{
strLED1 = "&knap8";
}
function GetButton9()
{
strLED1 = "&knap9";
}
function GetButton10()
{
strLED1 = "&knap10";
}
function GetButton11()
{
strLED1 = "&knap11";
}
function GetButton12()
{
strLED1 = "&knap12";
}
function GetButton13()
{
strLED1 = "&knap13";
}
function GetButton14()
{
strLED1 = "&knap14";
}
function GetButton15()
{
strLED1 = "&knap15";
}
function GetButton16()
{
strLED1 = "&knap16";
}
</script>
</head>

<body onload="GetArduinoInputs()">
<div class="IO_box1">

<h1>Agnegatan 6 värmesystem</h1>

</div>
<div class="IO_box2">

<h2>Panna</h2>
<p>Från pannan <span id="temppanan">***</span></p>
<p>Rökgas <span id="temprokgas">***</span></p>
<p>Till pannan <span id="tillpanna">***</span></p>

</div>
<div class="IO_box3">

<h2>Tank</h2>
<div class="IO_box4">

<p><span id="temptankupp">**.**</span></p>

</div>
<div class="IO_box5">

<p><span id="temptankmitt">**.**</span></p>

</div>
<div class="IO_box6">

<p><span id="temptankner">**.**</span></p>
</div>
</div>
<div class="IO_box8">
<h2>Instäningar</h2>
<div class="IO_box7">
<H2>förinstäld värme</H2>
<button id="forinknapon" type="button" onclick="GetButton13()"> ON </button>
<button id="forinknapoff" type="button" onclick="GetButton12()"> OFF </button>
</div>
<div class="IO_box10">
<H2>Pump </H2>
<button id="pumpknapon" type="button" onclick="GetButton4()"> ON </button>
<button id="pumpknapoff" type="button" onclick="GetButton5()"> OFF </button>
<button id="pumpknapauto" type="button" onclick="GetButton2()"> AUTO </button>
</div>
<div class="IO_box11">
<H2>Bränare</H2>
<button id="panaknapon" type="button" onclick="GetButton6()"> ON </button>
<button id="panaknapoff" type="button" onclick="GetButton7()"> OFF </button>
<button id="panaknapauto" type="button" onclick="GetButton1()"> AUTO </button>
</div>
<div class="IO_box12">
<H2>När ska bränaren gå</H2>
<div class="IO_box13">
<p>Till <span id="PanTempGrensTill">***</span> (<span id="BPanTempGrensTill">***</span>) </p>

</div>
<div class="IO_box14">
<button type="button" onclick="GetButton8()"> + </button>
<button type="button" onclick="GetButton9()"> - </button>
</div>
<div class="IO_box15">
<p>Från <span id="PanTempGrensfran">***</span> (<span id="BPanTempGrensfran">***</span>)</p>
</div>
<div class="IO_box16">
<button type="button" onclick="GetButton10()"> + </button>
<button type="button" onclick="GetButton11()"> - </button>
</div>
</div>
</div>
<div class="IO_box17">
<p>sol tak <span id="soltak">***</span></p>
<p>sol in <span id="solin">***</span></p>
<p>sol ut <span id="solut">***</span></p>

</div>

<div class="IO_box18">

</div>
<div class="IO_box19">

</div>
<div class="IO_box20">

</div>
<div class="IO_box21">

</div>
<div class="IO_box22">

</div>
<div class="IO_box23">

<p><span id="tid">***</span></p>

</div>
<div class="IO_box24">

<p><span id="dag">***</span></p>

</div>
<div class="IO_box25">

<p><span id="datum">***</span></p>

</div>
<div class="IO_box26">

<p>ute <span id="ute">***</span></p>

</div>
<div class="IO_box27">

<p><span id="rad">***</span></p>

</div>
<div class="IO_box28">

</div>
<div class="IO_box29">

</div>
<div id="pknap" class="IO_box30">

</div>
<div id="bknap" class="IO_box31">

</div>
<div class="IO_box9">
<H2>Körlägen</H2>
<button id="AnlagDriftlageOn" type="button" onclick="GetButton(14)"> LÅG </button>
<button id="AnlagDriftlageOff" type="button" onclick="GetButton(15)">NORMAL</button>
<button id="AnlagDriftlageAuto" type="button" onclick="GetButton(16)">DUSCHA</button>
</div>
</body>

Hitta och matcha en serie nummer

$
0
0

Jag har en textfil där jag skulle vilja identifiera en viss nummerföljd per rad som är unik.
Finns det något enkelt sätt söka och matcha den här serien med något program?
Den måste kunna ignorera innehållet efter numret.

Exempel, kända serien ser exakt ut så här.

1
2
3
4

Hitta och matcha mot det här listan tex,

5 XKK
6 OSD
4 ABC
6 oFJS

1 SMK
2 OJKS
3 SFF
4 SFLS

6 SKF
3 OJIS
7 UIF
8 SOFJ

bash rsync script

$
0
0

Hej jag försöker lära mig scripting i bash genom att göra ett lite avancerat rsync script.
Jag har flera servrar som skall göras backup av vilket läses in från en fil av en while loop. Däremot så skall flera olika mappar göras backup av: /home /etc och på vissa servrar /var

Istället för att ha samma rad på flera ställen i scriptet skulle jag vilja ha en loop som kör igenom en variabel för att ändra vilken mapp som görs backup av. Jag antar också att jag behöver en if sats då backupen inte ska inkludera /var på alla servrar.

Där är min huvudvärk; hur jag använder en till while loop eller for loop som läser en variabel med flera värden, eller en array och även kollar vad värdet på variabeln host har för att utesluta /var när backupen körs på de hosts där den inte ska tas med.

Koden hitils:

while read host
do
for i in
rsync -chazP --fake-super --rsync-path="sudo rsync" --stats backup@$host:/home /var/backup/$host/
done
done < /var/backup/testscripts/hosts

vill alltså ersätta /home med de olika käll mapparna på servrarna

Git: blev det nån merge eller inte...?

$
0
0

Så jag fick mina första konflikter när jag gjorde git merge. Det var bara tre filer och jag kunde lösa de konflikterna och spara de tre filerna.

Git säger (enligt bilden) att jag nu ska göra en commit. Men har alla andra filer mergats? Jag blir lite konfys eftersom header.php finns med på skärmen och den klarade sig utan konflikter, det var en massa andra ändrade filer också som fanns i den branch som mergades in, men de omnämns inte trots att header.php gör det.

Jag är lite osäker på vad som har hänt.
Gick mergen som den skulle förutom konflikterna i de tre filerna?
Om ja, varför finns bara header.php med i outputen och inte alla andra filer som gick bra?
Eller avbröts hela merge-processen efter tre konflikter?

Var hittar man frilansprogrammerare APP

$
0
0

Hej,

Var hittar man apputvecklare som jobbar frilans? Överväger att anställa någon på deltid under en kortare period, men hade velat ha kontakt med någon som man kan ha fortsatt kontakt med efter att uppdraget är klart så att de kan lägga till nya funktioner när det behövs osv.

Studenter osv är en väg att gå som jag förstår det. Vad säger ni? Vill inte jobba med byråer då jag har dålig erfarenhet från dem.


Ansluta SQL Server 2008 R2 vba remote

$
0
0

Hej,

Får inte till anslutningen,

Någon som har erfarenhet?

Servern ligger på en vps
SQL server 2008 R2
Connection detail (från Server management studio)
Server name: IP-0A3AF74C\SQLEXPRESS

Jag antar att jag inte hajar hur Server värdet ska sättas har provat div varianter
& "Server=xxx.xxx.xxx.xxx\IP-0A3AF74C\SQLEXPRESS;
& "Server=xxx.xxx.xxx.xxx\SQLEXPRESS;
& "Server=xxx.xxx.xxx.xxx;

Cn.ConnectionString = "Provider=SQLNCLI10;" _
& "Server=xxx.xxx.xxx.xx\IP-0A3AF74C\SQLEXPRESS;" _
& "Database=MINDATABAS;" _
& "DataTypeCompatibility=100;" _
& "Uid=ANVÄNDARE;" _
& "Pwd=LÖSENORD;"

Hjälp jag blir galen

C++|| openSSL

$
0
0

Hej,

Jag tänkte höra om någon här råka veta om en bra och "trusted" tredje part c++ wrapper av openssl?

Tack för svar!

Få signal när JFrame i annat klass är disposed

$
0
0

Hej alla
Jag har en chat applikation
Chat ska bli 1:1 mellan serverklass och clientklass.

Server kan inbjuda clientklass till samtal via knappen "Inbjuda". Eftersom samtalet blir 1:1, knappen Inbjuda blir låst(Enabled false) om klient är inloggat. Det fungerar jättebra.
Min problem är, när klient är loggat ut, det vill säga clientklass JFrame är "disposed", knappen Inbjuda måste bli användbart igen(Enabled true).
Jag har funderat några dagar men jag kunde hitta någon bra lösning.

De är mina koder:
Serverklass

import java.awt.*;
import java.awt.event.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.swing.*;

public class Chat_Server extends JFrame implements ActionListener {
JButton jb1 = new JButton("Inbjuda"); //jbutton för att inbjuda client
JButton Name = new JButton("Name");
JButton Enter = new JButton("Enter");
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
static JTextArea textarea = new JTextArea(25,40);
JTextField textfield = new JTextField(35);
static ServerSocket SS;
static Socket S;
static DataInputStream DIS;
static DataOutputStream DOS;
String name;
String Servername;
Chat_Client CC;
final ExecutorService threadExecutor = Executors.newSingleThreadExecutor();

public Chat_Server(){
jp1.setLayout(new FlowLayout());
jp1.add(jb1);jp1.add(Name);
jb1.addActionListener(this);
Name.addActionListener(this);
jp2.add(textarea);
jp3.setLayout(new FlowLayout());
jp3.add(textfield); jp3.add(Enter);
Enter.setEnabled(false);
add(jp1, BorderLayout.NORTH);
add(jp2, BorderLayout.CENTER);
add(jp3, BorderLayout.SOUTH);
textfield.setText("Klicka på knappen Number och skriv ditt namn först. Texten tas bort automatiskt");
Enter.addActionListener(this);
setSize(500,500);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e){

if(e.getSource()==jb1){
CC= new Chat_Client();
threadExecutor.submit(CC);
textarea.setText("Användaren2 har loggat in");//visar att client klass startades
jb1.setEnabled(false);

}

if(e.getSource()==Name){
name = JOptionPane.showInputDialog("Skriv ditt namn");
Servername= name;
if((name!=null)&&(!name.isEmpty())){
Enter.setEnabled(true);
textfield.setText("");
}
if(name.isEmpty())
JOptionPane.showMessageDialog(null,"Måste ange namn!!");
}
if(e.getSource()==Enter){

try{
String MessageOut= "";
MessageOut = textfield.getText();
DOS.writeUTF(Servername+": " + MessageOut);

}catch( Exception ex){
System.out.println("ERROR!");
ex.getStackTrace();

}
}
}
//Rad 91 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

public static void main (String[] args){
Chat_Server cs = new Chat_Server();
String MessageIn = "";
try{
SS = new ServerSocket(1337);
Socket S = SS.accept();
DIS = new DataInputStream(S.getInputStream());
DOS = new DataOutputStream(S.getOutputStream());
while (!MessageIn.equals("Stop the chat")){
MessageIn = DIS.readUTF();
textarea.setText(textarea.getText()+"\n"+MessageIn);
}

}
catch(Exception e){
System.out.println("ERROR!!");
}
}
}

Clientklass

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Chat_Client extends JFrame implements ActionListener, Runnable{
JButton Name = new JButton("Name");
JButton Enter = new JButton("Enter");
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
static JTextArea textarea = new JTextArea(25,40);
JTextField textfield = new JTextField(35);
static ServerSocket SS;
static Socket S;
static DataInputStream DIS;
static DataOutputStream DOS;
String name;
String Clientname;
Chat_Server serv;
String MessageOut="";
public Chat_Client(){
jp1.add(Name);

Name.addActionListener(this);
jp2.add(textarea);
jp3.setLayout(new FlowLayout());
jp3.add(textfield); jp3.add(Enter);
Enter.setEnabled(false);
add(jp1, BorderLayout.NORTH);
add(jp2, BorderLayout.CENTER);
add(jp3, BorderLayout.SOUTH);
Enter.addActionListener(this);
// addWindowListener(w);
setSize(500,500);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);

}
/*WindowListener w = new WindowAdapter(){ Rad54
public void WindowClosed(WindowEvent e) throws IOException{
serv.jb1.setEnabled(true);
MessageOut = "Användare2 har loggat ut";
DOS.writeUTF(MessageOut);
}
};*/
public void actionPerformed(ActionEvent e){

if(e.getSource()==Name){
name = JOptionPane.showInputDialog("Skriv ditt namn");
Clientname = name;

if((name!=null)&&(!name.isEmpty())){
Enter.setEnabled(true);
textfield.setText("");
}
if(name.isEmpty())
JOptionPane.showMessageDialog(null,"Måste ange namn!!");
}
if(e.getSource()==Enter){
try{
MessageOut = textfield.getText();
DOS.writeUTF(Clientname+": " + MessageOut);
}catch( Exception ex){
System.out.println("ERROR!");
}
}
}

@Override

public void run() {

String MessageIn = "";
try{
S = new Socket("127.0.0.1",1337);
DIS = new DataInputStream(S.getInputStream());
DOS = new DataOutputStream(S.getOutputStream());

while (!MessageIn.equals("Stop the chat")){
MessageIn = DIS.readUTF();
textarea.setText(textarea.getText()+"\n" +MessageIn);
}
}
catch(Exception e){
System.out.println("ERROR!!");
}
}
}

Om ni tittar på raden 54 i Clientklass, ni kan se att jag har försökt att använda WindowListener men ändrades ingenting med resultat. Därför jag tänkte att använda WindowListener i Serverclass efter actionPerformed på raden 91

CC.WindowListener w1...

men de hittar inte package CC
Någon har bra ide? Måste man anropa det windowlyssnare som jag skrev i clientklass ?

Bygga en epost migrering verktyg!

$
0
0

Hej jag håller på att bygga en epost migrerings verktyg men jag har kört fast.
Jag bygger det i PHP.

Men stora problemet är att jag har lyckats logga in och se map strukturen men jag kommer inte vidare därifrån. Jag har lyckats läsa mailen med curl cli men jag har ingen aning hur man ska konvertera det commandot till PHP-code.

Är det någon som är duktigt på det här?

Vilka metoder använder man sig av för att skapa egna typer av "antialiasing"

$
0
0

Inom parentes eftersom jag inte försöker göra någonting som har med kantutjämning att göra..
Bara att varje pixel ska jäföra sig med med angränsande pixlar enligt en algoritm som är likheten, men den algoritmen bryr sig inte om medelvärden och att jämna ut linjer.
En till mycket viktig skillnad är att när en bild är färdig ska arbetet med nästa bild utgå ifrån den förra istället för en obearbetad bild. Tänk om det var antialiasing skulle det bli jämnare och jämnare, sen suddigarr och suddigare ju längre du höll kameran still, dock ska jag intr göra något suddigt, men jag måste kunna bearbeta en bild i flera steg och visa varje steg på skärmen. Jag har kikat på glsl fragment shaders men det är ett virrvarr och verkar inte ha mycket att göra med min idé. Anti aliasing är välkänt men vart sitter dom metoderna? Är dom inbäddade i firware och drivrutiner eller är de bara färdiga metoder man kan komma åt och utveckla egna varianter utav själv utan specialistkunskap?
Jag håller på med en prototyp på cpu nu som inte är klar och tänkt anlita nån att porta/optimisera den när den är funktionellt färdig, men kan va bra att redan nu ha lite grundkoll på hur nästa steg går till i bakhuvudet så dom inte behöver skriva om skiten från grunden med all problemlösning det innebär. För det har jag inte råd med

Hjälp med att förbättra egenprogrammerat luffarschack

$
0
0

Hej!

Vi har som projekt i skolan att vi ska programmera ett spel (i vårat fall luffarschack), men vi måste sätta en egen tvist på det för att få det unikt. Bomba med kreativa ideér om hur man kan utveckla luffarschacket till något nytt! :D

Programmering C# hjälp

$
0
0

Jag har precis börjat läsa en kurs som heter grundläggande programmering och ska göra ett projekt där vi ska skapa ett register över fotbollsspelare och sedan lite funktioner till detta.

Jag är nästa klar men har fastnat med tre saker...
Första är en sökfunktion där jag vill att det ska räcka att söka på en bokstav för att en viss spelare ska komma upp. Nu måste man skriva in hela namnet på spelaren och stavar man inte rätt så kommer det inte upp någon spelare...
Koden jag använder ser ut såhär:

public static void FindSpelareByNamn()
{
Console.Write("Ange Namn: ");
string searchPhrase = Console.ReadLine();
Spelarinfo foundSpelarinfo = GetSpelareByNamn(searchPhrase);
if (foundSpelarinfo != null)
{
PrintSpelarinfo(foundSpelarinfo);
}
else
{
Console.WriteLine("Hittade ingen spelare med det namnet.");
}
}

public static Spelarinfo GetSpelareByNamn(string namn)
{
Console.WriteLine("Namn" + "\t" + "Ålder" + "\t" + "Position" + "\t" + "Vikt" + "\t" + "Längd" + "\t" + "Nummer" + "\t");

for (int i = 0; i < spelare.Length; i++)

{
if (spelare[i].namn.Equals(namn))
{
return spelare[i];
}
}

return null;
}

Hade velat alltså att det ska gå att söka på enbart t.ex. Z så kommer Zlatan Ibrahimovic upp...

Det andra är att när jag sedan får upp mitt spelarregister så hamnar rubrikerna helt galet...
Ser ut såhär nu:

Namn Ålder Vikt Längd Position Nummer
Zlatan Ibrahimovic 28 95 205 Forward 10

De hamnar liksom inte under rubrikerna...

Tack på förhand!


Excel räkna rader inom tidsintervall

$
0
0

Hej!

Jag sitter med stora mängder data, ca 25000 rader som jag måste behandla på ett visst sätt. Jag är inte sugen på att göra detta manuellt, men besitter tyvärr inte den korrekta kunskapen när det kommer till excel.
Jag har en tabell som har följande upplägg:

A B
1: 0 10:08:33
2: 1 10:09:38
3: 2 10:11:04
4: 3 10:11:14
5: 4 10:11:21
6: 5 10:12:36
7: 6 10:15:12
8: 7 10:16:14

A är alltså ett index, medans B är en tidstämpel. Jag behöver nu räkna 'antalet index/rader' som förekommer inom ett intervall på 2 minuter. Alltså, två-minutersintervallet 10:08:33 - 10:10:33 måste ge 2 (alltså två rader, 1 och 2). Vidare ska nästa tvåminutersintervall, 10:10:33 - 10:12:33 ge 3 (rad 3,4,5). Detta ska sedan presenteras i en ny tabell enligt följande:

A B
1: 2 2
2: 4 3

Där A är antalet minuter sedan start, och B hur många rader som finns inom det intervallet.

Jag har försökt vara så tydlig som jag kan, men tyvärr är det svårt att beskriva sånt här i text :/ , fråga gärna som jag varit otydlig.

Vore hemskt tacksam ifall någon kunde ta sin tid och hjälpa mig med detta!
Tack på förhand
Artur

VBA hjälp

$
0
0

Hej.
Jag har lite problem med att ändra outputs i Word via macro.
Jag har ett "program" word dokument med bilder och en massa fält där man importerar in värden till. Dessa värden från fälten kommer sedan utföra några beräkningar på. Men nu finns det ett önskemål om att man ska kunna sätta vissa värden i paranteser för att antyda att dessa värden är lite osäkra men beräkningarna då blir lite fel eftersom Word antar att värdet i parantes är negativt.

Så min fråga är kan man ändra så word inte gör detta antagandet eller om det finns en annan lösning förhoppningsvis utan att skapa en ny Sub eftersom det skulle göra programmet långsamt.

Som preliminär lösning har jag maskerat detta genom att göra outputen på de variabler från beräkningarna på detta sätt:
"###0.0;(###0.0)" då blir även dem i parantes eftersom de är negativa egentligen men detta löser ju som sagt inte problemet utan bara döljer det...
Funkar när den bakomliggande beräkningen är division men om det är + eller minus så uppstår det ju fel igen.

Alla tips och råd är uppskattade.

Python Tkinter listbox hjälp

$
0
0

Hej!

Håller på att komma igång och lära mig Tkinter i Python och har kommit till delen om listbox. Försöker nu få till så att det jag har valt i min listbox sparas i en variabel som jag sedan ska använda för att skriva ut innehållet till en textfil, men jag får inte till detta. Är det någon som vet som har koll och kan ge en enkel förklaring på en lösning?

C++14 || unique_ptr || memory leak?

$
0
0

Hej

jag har en fundering kring unique_ptr och reset det står som dokumentationen "reset destroys the object" så behöver jag använda delete i exempel klassen nedan?
exemple:

class A{
public:
a():test(new char[100]){}
~a(){
test.reset();
}
private:
std::unique_ptr<char []> buffer;
};

Tack för svar!

Delete funktion C# fungerar ej...

$
0
0

Hej!
Vi är en grupp som läser programmering i C# och har en metod som inte vill fungera...
Vårt program är ett spelarregister över spelare i Manchester United.
Vi har en delete metod som tar bort spelare genom att vi skriver i det numret spelaren har.

Koden för detta ser ut såhär:

public static void DeleteSpelare(int nummer)
{
Spelarinfo[] nyVector = new Spelarinfo[spelare.Length - 1];
for (int i = 0; i < nummer; i++)
{
nyVector[i] = spelare[i];
}
for (int i = nummer + 1; i < spelare.Length; i++)
{
nyVector[i - 1] = spelare[i];
}
spelare = nyVector;

}

Sedan skriver vi i i vårat menyval såhär för att anropa metoden:

else if (choice == 4)
{

Console.WriteLine("Skriv in numret för spelaren du vill ta bort:");
int nummer = int.Parse(Console.ReadLine());
DeleteSpelare(nummer);

}

Problemet är att det kommer inget på errorlist men när vi ska ta bort en viss spelare kommer det sedan upp:

An unhandled exception of type 'System.IndexOutOfRangeException' occurred in ManU3.exe

Additional information: Indexet låg utanför gränserna för matrisen.

Förstår inte riktigt problemet..

Tack på förhand!

Viewing all 6000 articles
Browse latest View live