Monday, October 26, 2009

How to enable TATA Photon whiz on Ubuntu 9.04/Fedora 11


For all those who are using TATA Photon whiz (Hauwei -EC121 or others) these is small - "How to for Ubuntu 9.04 Jaunty Jackalope & Fedora 11" ,which by default can't Plug n play (atleast for me on Ubuntu :))even with Network Manager Applet -->Mobile broadband --> Country = India --> Provider -->Tata indicom ( Plug2Surf) -->Uname: internet,Password=internet,Ph =#777 ( As its CDMA).

# Ubuntu 9.04 Photon Whiz set up

1)By default Ubuntu 9.04 doesn't have wvdial ,so you can install it via #Synaptic Package Manager -->search for wvdial

---OR--
Insert original Ubuntu Cd

Go to System->Administration->software sources. add cd as a source and close . It will update itself, Then on terminal type,

sudo apt-get install wvdial .

2) Type lsusb command and see what it gives (for me below was result)


binnishah@google:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 045e:00a4 Microsoft Corp.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 005: ID 12d1:1411 Huawei Technologies Co., Ltd. ---------> ( Model #,vendor# & product# to trace for modprobe just in case your OS can't catch it plug n play)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub


3)I have Huawei Mobile connect whose model # is EC121 and vendor = 12d1 & product=1411
next,

modprobe usbserial vendor=0xAAAA product=0xBBBB ,

Where AAAA is 12d1 and BBBB is 1411 in my case.

4)Open terminal and give command ( pl.give these while inserting USB photon drive in lap/Server)

sudo wvdialconf /etc/wvdial.conf ---> (These will detect the modem and install it for internet connection by inserting appropriate modem configuration into /etc/wvdial.conf)

** Pl.dont forget sudo or else you will be trapped into permission issues of /usr/sbin/pppd & chap-secrets & pap-secrets permissions and worse would be wvdial.conf wont get Baud speed rate self detected ,neither exact location of modem would be traced

5) Open wvdial.conf in /etc with :-

sudo vi /etc/wvdial.conf ,it has some entries by default add some new & match it as belows:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CRM=1
Stupid Mode = 1
New PPPD = Yes
Modem Type = USB Modem
Phone = #777
ISDN = 0
Password = internet ---> Your ph number of tata/password
Username = internet --> Your uname /#
Modem = /dev/ttyUSB0
Baud = 9600 -->Baud rate would be decided by 4rth command and written automatically into wvdial.conf script

Now save & exit vi,

6)type sudo wvdial

It may give you something like these:--

binnishah@google:~$ sudo wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
CONNECT 153600
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Sun Oct 18 17:47:48 2009
--> Pid of pppd: 13130
--> Using interface ppp0
--> local IP address 121.245.189.171
--> remote IP address 172.23.119.14
--> primary DNS address 202.54.29.5
--> secondary DNS address 202.54.10.2
^CCaught signal 2: Attempting to exit gracefully...
--> Terminating on signal 15
--> Connect time 5.1 minutes.
--> Disconnecting at Sun Oct 18 17:52:50 2009

7)Command tail -f /var/log/messages --> Just immediately aft.connection gives following:

binnishah@google:~$ tail -f /var/log/messages
Oct 18 17:47:48 google pppd[13130]: Warning - ***
Oct 18 17:47:49 google pppd[13130]: CHAP authentication succeeded
Oct 18 17:47:49 google pppd[13130]: CHAP authentication succeeded
Oct 18 17:47:49 google pppd[13130]: local IP address 121.245.189.171
Oct 18 17:47:49 google pppd[13130]: remote IP address 172.23.119.14
Oct 18 17:47:49 google pppd[13130]: primary DNS address 202.54.29.5
Oct 18 17:47:49 google pppd[13130]: secondary DNS address 202.54.10.2
Oct 18 17:52:50 google pppd[13130]: Terminating on signal 15
Oct 18 17:52:50 google pppd[13130]: Connect time 5.1 minutes.
Oct 18 17:52:50 google pppd[13130]: Sent 158772 bytes, received 741237 bytes.

8)If you dont want to fall in hassles of pwd ( I wouldn't recommend to do so ,though)

sudo vi /etc/sudoers

# User privilege specification
username machine_name = NOPASSWD: /usr/bin/wvdial

So next time when you give wvdial you dont need to type in password


*For Fedora-11 - TATA Photon Whiz :- ==========================

It came to me as surprise that Fed-11 took it in plug n play ie:- just some tweak with Network manager applet and I was sorted out with live n kicking
tata photon whiz USB Mobile broadband

1)Open Network manager applet
2)In that,there's option of --> Mobile Broadband -->Add ( By default you will have Huawei Technologies or your preferable qualcom or whatever) -->Select it -->Forward -->Country - India -->Forward --> Select Tata Indicom(Plug2Surf) if you have photon whiz -->Forward ->Commit changes by pressing apply
3)In Popup of Editing tata Indicom
Add your username & password
and simply press apply
4)Left click Network manager applet and you will have option of Tata Plug2surf ,select it and you are all set

Hope that helps !!!

*Image courtesy

Thursday, October 8, 2009

Determine Grade of steel

/*A certain grade of steel is graded according to the following conditions:
*1)Hardness must be greater than 50
*2)Carbon content must be less than 0.7
*3)Tensile strength must be greater than 5600
*
*The grades are as follows:
*
*Grade is 10 if all three conditions are met
*Grade is 9 if condition 1 & 2 are met
*Grade is 8 if condition 2 & 3 are met
*Grade is 7 if condition 1 & 3 are met
*Grade is 6 if only one condition is met
*Grade is 5 if none of the conditions are met
*
*Write a program which will require the user to give values of hardness,carbon content and tensile

*strength of the steel under consideration and output the grade of the steel*/

# Solution code :

==========

#include <stdio.h>
int main(void)
{
int hard,ts; // hard = hardness ; ts = tensile strength
float cc; //cc -- Carbon content

printf("\nEnter hardness of steel: ");
scanf("%d",&hard);
printf("\nEnter Carbon content of steel : ");
scanf("%f",&cc);
printf("\nEnter Tensile strenght of steel : ");
scanf("%d",&ts);

if ( (hard > 50) && (cc < 0.7) && (ts > 5600))
printf("Steel is of 10th Grade");
else if ( (hard > 50) && (cc < 0.7))
printf("Steel is of 9th Grade");
else if ( (cc < 0.7) && (ts > 5600 ))
printf("Steel is of 8th Grade");
else if (( hard > 50) && (ts > 5600 ))
printf("Steel is of 7th Grade");
else if ( (hard > 50) || (cc < 0.7) || (ts > 5600))
printf("Steel is of 6th Grade");
else
printf("Steel is of 5th Grade");
return 0;
}

Determine if eligible for premium & Policy

/*An Insurance company follows rules to calculate premium

1)If a person's health is excellent and the person is btw. 25 & 35 years of age and lives in city and is a male then the premium is Rs 4 per thousand and his policy amount cannot exceed Rs 2 lakhs.

2)If a person satisfies all the above conditions except that the sex is female then the premium is Rs 3 per thousand and her policy amount cannot exceed Rs 1 lakh.

3)If a person's health is poor and the person is btw. 25-35 and lives in village and is male ,the premium is Rs 6 per thousand and his policy cannot exceed Rs 10,000

4)In all other cases the person is not insured

Write a program to output whether the person should be insured or not ,his/her premium rate and maximum amount for which he/she can be insured.*/

#Solution
=======

#include <stdio.h>
int main(void)
{
int age,pre,policy_amt;
char sex,live,health;
printf("Enter your age : ");
scanf("%d",&age);
if ( age <= 35 && age >= 25)
{
printf("\nPl.enter your health status ( h/p- h(healthy),p(poor health): ");
scanf(" %c",&health);
printf("\nDo you live in city/Village(c=city)(v=village): ");
scanf(" %c",&live);
printf("\nAre you Male/Female(m=male,f=female : ");
scanf(" %c",&sex);

if ( health == 'h')
{
if ( sex == 'm'&& live == 'c')
printf("\nYou are opt for Rs 4/- Preminum over 1000 Rs & Policy not greater than 2 lakh");
else if ( sex == 'f'&& live == 'c')
printf("\nYou are opt for Rs 3/- Preminum over 1000 Rs & Policy not greater than 1 lakh");
}
else if ( live == 'v' && sex == 'm')
printf("\nYou are opt for Rs 6/- Preminum over 1000 Rs & Policy not greater than 10,000 Rs/-");

if ( sex == 'm' && live == 'c' && health == 'p')
printf("\nSorry no premium or Policy for you");
if ( sex == 'm' && live == 'v' && health == 'h')
printf("\nSorry no premium or Policy for you");
if ( sex == 'f' && live == 'v' && ((health == 'h') || (health == 'p' )))
printf("\nSorry no premium or Policy for you");
if ( sex == 'f' && live == 'c' && health == 'p')
printf("\nSorry no premium or Policy for you");
}

else
printf("\nYou are not eligible for Premium or Policy");

return 0;
}






Determine character input if its Capital,small,decimal or special character

/*Any character is entered through the keyboard ,write a program to determine whether the character entered is a capital letter,a small case letter,a digit or a special symbol

Following is Range of Ascii values for various characters:-

Characters                                           Ascii Values

A-Z                                                        65-90

a-z                                                         97-122

0-9                                                         48-57

Special symbols                                   0-47,58-64,91-96,123-127 */


#1 Solution ( With Value of ASCII characters as integer as input) :-

========================================

#include <stdio.h>
int main(void)
{
int i;
printf("Enter a character to determine its type : ");
scanf("%d",&i);


if ( (i <= 90) && (i >= 65))
printf("\nIts %c whose value is %d ,which belongs to A-Z character type",i,i);
else if ( i <= 122 && i >= 97 )
printf("\nIts %c whose value is %d,which belongs to a-z character type",i,i);
else if ( i <= 57 && i >= 48 )
printf("\nIts %c whose value is %d,which belongs to 0-9 character type",i,i);
else if (( i <= 47 && i >= 0) || ( i <= 64 && i >= 58) || ( i >= 91 && i <= 96) || ( i <= 127 && i >= 123))
printf("\nIts %c whose value is %d,which belongs to specific symbols",i,i);
return 0;
}
 

#2 Solution ( With ASCII Characters as input ) :-

==============================

#include <stdio.h>
int main(void)
{
char i;

printf("Enter a character to determine its type :");
scanf("%c",&i);


if (( i <= 'Z') && (i >= 'A'))
printf("\nIts %c whose value is %d ,which belongs to A-Z character type",i,i);
else if (( i >= 'a') && (i <= 'z' ))
printf("\nIts %c whose value is %d,which belongs to a-z character type",i,i);
else if ( (i >= '0') && (i <= '9'))
printf("\nIts %c whose value is %d,which belongs to 0-9 character type",i,i);
else
printf("\nIts %c whose value is %d,which belongs to *special symbols*",i,i);
return 0;
}


Wednesday, April 15, 2009

Calculate gross salary

/*If his basic salary is less than Rs. 1500, then HRA = 10% of basic
salary and DA = 90% of basic salary. If his salary is either equal to
or above Rs. 1500, then HRA = Rs. 500 and DA = 98% of basic
salary. If the employee's salary is input through the keyboard write
a program to find his gross salary.*/

Solution Code:-
=========


#include <stdio.h>
int main(void)
{
int bs;
float hra,da,gross;
printf("Enter Basic Salary : ");
scanf("%d",&bs);
if ( bs < 1500 )
{
hra = bs * 10 / 100;
da = bs * 90 /100;

}

else
{
hra = 500 ;
da = bs * 98 /100;
}

gross = hra + da + bs ;
printf("\n Your gross salary is %f",gross);
return 0;
}

Tuesday, April 14, 2009

Print a five digit number by adding one to each of its digits

/*If a five-digit number is input through the keyboard, write a
program to print a new number by adding one to each of its
digits. For example if the number that is input is 12391 then
the output should be displayed as 23402.*/


Solution Code :-
=========

#include <stdio.h>
int main(void)
{
int i,temp = 0;
printf("Enter a +ve 5 digit number :");
scanf("%d",&i);
if (( i <= 99999 ) && ( i > 9999 ))
{
printf(" %d",(i/10000) + 1);
printf(" %d",((( i/100) % 100)/10) + 1);
printf(" %d",(( i/100) % 10 ) + 1);
printf(" %d",((i % 100) / 10) + 1 );
printf(" %d",(i % 10) + 1);
}
else
printf("\n Pl.enter +ve five digit number");
return 0;
}

Monday, April 13, 2009

Calculate price of single item

*If the total selling price of 15 items and the total profit earned
on them is input through the keyboard, write a program to
find the cost price of one item.*/

/*Here the query maker ,I suppose seeks for groce price rate of one item ,as groce profit & groce selling price is sought out
sin => single item groce price ; procin => profit on single item ;con => conjugal price (profit + single item price)
*/

Solution Code :-
==========


#include <stdio.h>
int main(void)
{
int price,profit,sin,prosin,con;
printf("Enter price of 15 items : ");
scanf("%d",&price);
printf("\nEnter profit made on 15 items : ");
scanf("%d",&profit);
sin = price / 15 ;
prosin = (profit / 15) - sin;
con = sin + prosin ;
printf("\nSingle item cost is %d",sin);
printf("\nSingle item profit is %d",prosin);
printf("\nSingle item cost price is %d",con);
return 0;
}