Skip to content

Alcatel OXO + Loudspeaker + Power CPU

We just upgraded to the OXO Power CPU because of the issues in the previous post. We use a PA system connected to the Audio out on the CPU to broadcast messages in our office.

On previous models the CPU had an Audio In and Audio out connector on the new powercpu it combines the two into one RJ45 Jack.

Pin’s 1 and 2 are used for audio in (message on hold). Pins 4 and 5 are used for the louadspeaker.

How to crash an Alcatel OXO

I have been trying to get my virtual riverbed to work in-band with not a lot of luck as of yet. I thought I would check if the virtual in-path interface works just like the physical machines i.e. is it a bridge or not.

If it is a bridge it should cause havoc on my network because it will be connecting one switchport back to the same switch causing an arp storm among other things.

And sure enough a couple of seconds after changing the interfaces and vmware did it’s thing I lost connection to the vm and everything came crashing down. I then looked at my phone and noticed the screen was blank, at first I thought it was unrelated and maybe a UPS had failed.

First thing I did was shut down the riverbed vm at the vmware console (vim-cmd vmsc/power.off pid) then I went and looked at the oxo it’s lights where on and it’s not a good idea to turn the oxo off without first checking that it is actually dead (you can corrupt the fs/boot process easily and brick your cpu).

Sure enough by the time I got back to my desk phones where beeping indicating that it was finishing it’s boot process! So the arp storm or whatever happened after I bridged the interfaces killed the oxo causing a reboot.

Good way to cause havoc at an office, plug in to a network boom phones go off.

-Update -10/9/12
OXO has been rebooting every couple of hours all day today (Monday) ordered a new CPU and decided I better upgrade. Not sure what’s going on hope the upgrade will fix it. Ran Wireshark for a while watching packets but couldn’t see anything out of the ordinary (apart from a machine that has some spyware installed and was broadcasting name requests for .pl domains).

C# Form Control Selection without Focus()

I recently came across a problem with some code on a handheld device. The code in question was using reflection to override the normal interface for the app, it looked and worked good except one large problem.

The code was being used on a device that had a barcode reader but the cursor needs to be in the textbox for the program to register new barcodes that are read. This normally wouldn’t be a problem because you can use This.Focus() in your form to give the textbox control focus. In my case because we are using reflection to override the natural form it was a problem.

The solution I came up with is a Hack but it works!

First I init this code at the top of my class.


static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;

Then just before my code looses focus I init my timer.


myTimer.Interval = 100;
myTimer.Start();
myTimer.Tick += new EventHandler(myTimer_Tick);

Then I make the mouse click!


void myTimer_Tick(object sender, EventArgs e)
{
int X = 886;
int Y = 554;
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(X, Y);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
myTimer.Stop();

}

Overloading .Net C# DataGridView For Auto Tabbing

I needed to auto tab across multiple fields in a datagridview we are using in our Epicor ERP system. I found it wasn’t that easy to do so I thought I would paste the code if anyone else has the same problem.

The actual code to do the tabbing is a hack but it works!


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyNameSpace
{
public class MyDataGridView : System.Windows.Forms.DataGridView
{

protected override bool ProcessDialogKey(Keys keyData)
{

if (keyData.Equals(System.Windows.Forms.Keys.Tab))
{
if (this.CurrentCell.ColumnIndex == 7)
{
base.ProcessEnterKey(Keys.Enter);
base.ProcessLeftKey(Keys.Left);
base.ProcessLeftKey(Keys.Left);
base.ProcessLeftKey(Keys.Left);
return false;
}
if (this.CurrentCell.ColumnIndex == 4)
{
base.ProcessTabKey(Keys.Tab);
base.ProcessTabKey(Keys.Tab);
base.ProcessTabKey(Keys.Tab);
}

}

return false;
}

}
}

Epicor Replication

We have just rolled out Epicor Enterprise ERP, it’s a great system and I highly recommend it.

We purchased a tool with it called XL Connect which is a third party product that allows you to view your ERP data in Excel.

The problem we have is that XL Connect requires SQL and SQL Reporting services and we run our Epicor system on Progress. So we had to setup replication between Progress and SQL, which worked fine for a while but then broke.

Here is how I fixed it

  1. Reset replication in Epicor, This clears the tempory replication table and all replication settings including the list of which tables you want replicated so make sure you write these settings down. To Reset go to Sys Mgmt -> Replication -> Replication System Maintenance -> Actions -> Reset.
  2. Shut down the Progress App and Database servers for the epicor instance you are working on.
  3. Record the settings of your Publisher and Subscriber in the Epicor Database Replication console.
  4. Delete your publisher and Subscriber in the Epicor Database Replication Console.
  5. Recreate your publisher and subscriber in the Epicor Database Replication Console.
  6. Start the Progress Database and App Servers
  7. Initialize your subscriber instance tables in Epi DB Rep Console.

Hopefully that should work, if you get errors there might be something wrong with Sonic or the Epi Database Rep Service.

Crystal reports cutting off words on the right

I was finishing off some reports this week and in my footer which shows on a new page i have the terms and conditions. The problem i had was the words on the right hand side of the text box had some letters cut off.

I started playing with the margin thinking it might be the printer chopping the letters off, this did not seem to make much difference.

I then thought maybe its the page margin but this did not fix it either.

Finally after a bit of googling i found a post explaining that you need to change the justification for the paragraph. This worked perfectly.

OpenELEC Install

I’ve been using XBMC for a while using the full linux install from the XBMC website. This was fine but could be a bit slow at times and doesn’t auto update (as far as I know).

A friend told me about OpenELEC the auto updating got me very interested. I use a small ASUS media PC that I’ve had for a while but it doesn’t have any solid state storage (only hdd) and I could get it to boot off USB (following the install off the OpenELEC wiki).

Eventually I got around to trying the manual install, here is the steps I used.

  1. Boot the PC off gentoo-minimal boot disc, no particular reason why it was gentoo I just like it and it’s a small download.
  2. Use cfdisk to partition the disk as per the OpenELEC instructions
  3. formated the partitions created in 2. with mkfs.ext4 /dev/sdx where x is my partition number, I also created a swap partition but I think this is unnecessary.
  4. copy the SYSTEM and KERNEL files as per the open new SYSTEM partition.
  5. use links (or wget) to get the latest version of the syslinux package off kernel.org
  6. unpack syslinux package (tar -jxvf for bzip2)
  7. install extlinux onto the new OE_SYSTEM partition as per the instructions inside the syslinux package, extlinux boots ext4, syslinux is for booting vfat partitions.
  8. install the mbr as per the sys/extlinux instructions onto the new disk
  9. create a new extlinux.conf on the new disk (wherever you installed extlinux) I installed my extlinux on the root of the disk so my extlinux.conf looks like this.

  10. DEFAULT linux
    PROMPT 0

    LABEL linux
    KERNEL /KERNEL
    APPEND boot=LABEL=OE_SYSTEM disk=LABEL=OE_DATA

  11. unmount disks and reboot.
  12. If you did everything correctly openELEC should boot in a couple of seconds.